博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
学习笔记---Ubuntu上搭建web服务器
阅读量:6244 次
发布时间:2019-06-22

本文共 7329 字,大约阅读时间需要 24 分钟。

Note from 2014-06-28 17:57:14.400


Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL


利用http://www.linuxidc.com/Linux/2014-05/102351.htm 文档做为安装的参考文档,并录制视频来完成整个安装和测试

============

1 安装前的提示

   修改自己的主机名 并记录下你的IP,方便后面测试使用。

   另外,安装中我们使用root用户,先进行用户切换

   命令:sudo su  (输入密码就可以了,这样做可以减少后面安装软件时经常输入密码)


2 安装mysql 5数据库

   命令是:

    apt-get install mysql-server mysql-client

    安装过程中会访问建立root账号的密码,连续输入两次:

   提示如下:

    New password for the MYSQL "root" user: 输入你的密码

    Repeat password for the MYSQL "root" user:再输入一次


3 安装Nginx

   在安装Nginx前,先检查一下是否安装了apache 2,安装了再删除,命令如下:

     server apache2 stop

    update-rc.d -f apache2 remove

    apt-get remove apache2

    apt-get install nginx


   启动nginx,service nginx start

   测试是否启动成功: 在浏览器里输入

    http://localhost or http://ip ,

    如果出现welcome to nginx! 页面就是安装成功了!!!

   Note:在Ubuntu 14.04中默认的根目录为

    /usr/share/nginx/html


4 安装PHP 5

    我们必须通过PHP-FPM才能让PHP5正常工作,安装命令:

    apt-get install php5-fpm

    php-fpm是一个守护进程


5 配置nginx

    使用vi打开配置文件/etc/nginx/nginx.conf,命令如下:

    vi /etc/nginx/nginx.conf

    配置不是很容易明白,可以参考相关网页,如:

    http://wiki.nginx.org/NginxFullExample

    

    我们调整:工作进程数:

    worker_processes 4;

    keepalive_timeout 2;

    默认虚拟主机设置文件/etc/nginx/sites-available/default 命令如下:

    vi /etc/nginx/sites-available/default

    配置如下:

    server {

        listen 80;

        listen [::]:80 default_server ipv6only=on;


        root /usr/share/nginx/html;

        index index.php index.html index.htm;


        # Make site accessible from http://localhost/

        server_name _;


        location / {

                # First attempt to serve request as file, then

                # as directory, then fall back to displaying a 404.

                try_files $uri $uri/ /index.html;

                # Uncomment to enable naxsi on this location

                # include /etc/nginx/naxsi.rules

        }


        location /doc/ {

                alias /usr/share/doc/;

                autoindex on;

                allow 127.0.0.1;

                allow ::1;

                deny all;

        }


        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests

        #location /RequestDenied {

        #       proxy_pass http://127.0.0.1:8080;

        #}


        #error_page 404 /404.html;


        # redirect server error pages to the static page /50x.html

        #

        error_page 500 502 503 504 /50x.html;

        location = /50x.html {

                root /usr/share/nginx/html;

        }


        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

        #

        location ~ .php$ {

                try_files $uri =404;

                fastcgi_split_path_info ^(.+.php)(/.+)$;

                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini


                # With php5-cgi alone:

                #fastcgi_pass 127.0.0.1:9000;

                # With php5-fpm:

                fastcgi_pass unix:/var/run/php5-fpm.sock;

                fastcgi_index index.php;

                include fastcgi_params;

        }


        # deny access to .htaccess files, if Apache's document root

        # concurs with nginx's one

        #

        location ~ /.ht {

                deny all;

        }

}

    取消同时侦听ipv4 和ipv6的80端口

    erver_name _; 默认主机名 (当然你可以修改,例如修改为: www.example.com).


index主页这一行我们加入 index.php。


PHP 重要配置配置 location ~ .php$ {} 这几行我们需要启动,反注释掉。另外再添加一行:try_files $uri =404。


(其他配置查看http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP 和 http://forum.nginx.org/read.php?2,88845,page=3).


保存文件并重新加载 nginx 命令:


service nginx reload


如果加载失败,直接用删除所有配置内容,用上面的信息替换。

打开配置文件 /etc/php5/fpm/php.ini… 


vi /etc/php5/fpm/php.ini


… 如下设置 cgi.fix_pathinfo=0:


[...]

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's

; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok

; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting

; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting

; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts

; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.

; http://php.net/cgi.fix-pathinfo

cgi.fix_pathinfo=0

[...]


    重新加载 PHP-FPM:

    service php5-fpm reload

    现在创建一个探针文件保存在 /usr/share/nginx/html目录下

    vi /usr/share/nginx/html/info.php


<?php

phpinfo();

?>

   浏览器下访问探针文件 (e.g. http://localhost/info.php):

    正如你看到的 PHP5 正在运行,并且是通过 FPM/FastCGI,向下滚动,我们看看那些模块已经启动,MySQL是没有列出这意味着我们没有MySQL支持PHP5。


6 下面让 PHP5 支持 MySQL


    先搜索一下,看看那些模块支持:

    apt-cache search php5

    然后使用下面的命令安装:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl


    APC是一个自由和开放的PHP操作码缓存器缓存和优化PHP的中间代码。这是类似于其他PHP操作码cachers,如eAccelerator、XCache。这是强烈建议有一个安装加速你的PHP页面。

    使用下面的命令安装 APC:

    apt-get install php-apc

    现在重新加载 PHP-FPM:

    service php5-fpm reload


    刷新 http://localhost/info.php 向下滚动看看模块是否支持:


7 让 PHP-FPM 使用 TCP 连接

   默认情况下 PHP-FPM 侦听的是 /var/run/php5-fpm.sock,要让 PHP-FPM 使用 TCP 连接,需要打开编辑配置文件 /etc/php5/fpm/pool.d/www.conf…

    vi /etc/php5/fpm/pool.d/www.conf

按照下面的修改信息


[...]

;listen = /var/run/php5-fpm.sock

listen = 127.0.0.1:9000

[...]


    这将使php-fpm侦听端口9000上的IP 127.0.0.1(localhost)。确保你使用的端口不在你的系统上使用。


    重新加载 PHP-FPM:

    service php5-fpm reload

    下面通过配置 nginx 修改主机,更改这一行注释掉 fastcgi_pass unix:/var/run/php5-fpm.sock; 这一行反注释 fastcgi_pass 127.0.0.1:9000;,按照下面的设置:

    vi /etc/nginx/sites-available/default

[...]

        location ~ .php$ {

                try_files $uri =404;

                fastcgi_split_path_info ^(.+.php)(/.+)$;

                # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini


                # With php5-cgi alone:

                fastcgi_pass 127.0.0.1:9000;

                # With php5-fpm:

                #fastcgi_pass unix:/var/run/php5-fpm.sock;

                fastcgi_index index.php;

                include fastcgi_params;

        }

[...]


    重新加载 nginx:

    service nginx reload


8 CGI/Perl Scripts

    如果你想 Nginx支持 CGI/Perl 脚本服务,可阅读此教程 Serving CGI Scripts With Nginx On Debian Squeeze/Ubuntu 11.04

    推荐的方法是使用fcgiwrap(4章)

-------------------------------

另外收藏ubuntu 12.04 下lamp安装配置教程,这个我在32位的14.04上安装成功:

 参考:http://www.linuxidc.com/Linux/2012-05/61079.htm

命令如下:

1 lamp 安装:

    sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql 

    根目录在/var/www

    修改目录权限:sudo chmod 777 /var/www/

2 phpmyadmin 安装:

    sudo apt-get install phpmyadmin

     安装过程中web server:apache2

    配置密码

    建立与apache2的连接:

    sudo ln -s /usr/share/phpmyadmin /var/www

    测试:http://localhost/phpmyadmin

3 Apache 配置:

    启用mod_rewirte模块: sudo a2enmod rewrite 

    重启:sudo /etc/init.d/apache2 restart

    测试:test.php

    内容如下:

    <?php

    $link=mysql_connect("localhost","root","mysql_password");

    if(!$link){

    die('could not connect:',mysql_error());

    }

    else echo "mysql已经正确配置";

    mysql_close($link);

    ?>

    测试时出现中文乱码解决方法如下:

    sudo gedit /etc/apache2/apache2.conf

    在最后添加: addDefaultCharset UTF-8

    保存,并重启apache 就可以了

===========================

Ubuntu+Nginx+Mysql+Php(ubuntu 12.04)

来自:http://forum.ubuntu.org.cn/viewtopic.php?f=54&t=241301&sid=65af77cf69180787da232f3343ca2fb8

-------------------

由于最新的php集成了fpm,ubuntu12.04及以上版本安装更简单了,安装过程如下:

1、安装网站系统

代码:

sudo apt-get install nginx php5-common php5-fpm php-apc php5-mysql php5-gd mysql-server


2、修改nginx配置文件

代码:

sudo vi /etc/nginx/sites-enabled/default


把其中的:

代码:

        location / {

                root   /var/www;

                index  index.html index.htm;

        }


改为:

代码:

        location / {

                root   /var/www/nginx-default;

                index  index.php index.html index.htm;

        }


其中的:

代码:

   #location ~ \.php$ {

   #   fastcgi_pass 127.0.0.1:9000;

   #   fastcgi_index index.php;

   #   include fastcgi_params;

   #}


改为:

代码:

        location ~ \.php$ {

                fastcgi_pass  127.0.0.1:9000;

                fastcgi_index  index.php;

                fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;

                include  fastcgi_params;

        }


3、重启系统、上传文件,网站建立成功!试试吧!


附:系统及部分软件管理操作

1、操作系统:

代码:

sudo reboot now //重启系统

sudo halt //关闭系统


2、nginx配置修改及生效:

代码:

sudo vi /etc/nginx/nginx.conf //修改配置

sudo vi /etc/nginx/sites-enabled/default //修改配置

sudo service nginx restart //重启nginx


3、php配置修改及生效:

代码:

sudo vi /etc/php5/fpm/php.ini //修改配置

sudo service php5-fpm restart //重启fastcgi进程


3、网站目录:

代码:

/var/www/nginx-default

===============================

本文转自孤舟夜航之家博客51CTO博客,原文链接http://blog.51cto.com/cysky/1432038如需转载请自行联系原作者

cysky

你可能感兴趣的文章
DICOM协议中有关打印的内容
查看>>
lsmod
查看>>
server 2003 IIS无法访问asp页面,但是可以访问html静态页面
查看>>
totem成为万能播放器
查看>>
常用CSS记录
查看>>
我的友情链接
查看>>
DNS介绍和原理
查看>>
使用JIRA搭建企业问题跟踪系统3
查看>>
如何定位消耗CPU最多的线程
查看>>
Linux PAM 之cracklib模块
查看>>
buffer && cache
查看>>
Mockito
查看>>
android闹钟实现原理
查看>>
lamp
查看>>
2-12 Linux一些基础练习的实战资料整理
查看>>
在线图片处理的开源项目或开放平台
查看>>
移动设备硬件统计
查看>>
CoreData
查看>>
【step by step构建轻量级web框架】轻量级框架jbeer预览
查看>>
Spring2.5整合ActiveMQ 5.2
查看>>