Ubuntu14.04安装lnmp(nginx+php-fpm+mysql), nginx reload总是fail,附操作步骤,请指点,谢谢。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu14.04安装lnmp(nginx+php-fpm+mysql), nginx reload总是fail,附操作步骤,请指点,谢谢。相关的知识,希望对你有一定的参考价值。

Ubuntu14.04安装lnmp(nginx+php-fpm+mysql), nginx reload总是fail。
操作步骤:
1。安装nginx: sudo apt-get install nginx
2。在 /etc/nginx/sites-available/default中, 将index index.html index.htm修改成index index.php index.html index.htm;
3。去掉 location ~ .php$ 里的注释,更改为:
---------------------------------------------------------

location ~ \.php$
# 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;

----------------------------------------------------------
4。重新加载nginx
root@windows:/etc/nginx/sites-available# service nginx reload
* Reloading nginx configuration nginx [fail]

请问,哪里有错误,为什么总是失败?能详细说下错误的地方,可能的原因以及解决方法么?谢谢!
通过查看/var/log/nginx/error.log,已发现问题。
2015/05/19 00:32:34 [emerg] 4953#0: "fastcgi_pass" directive is duplicate in /etc/nginx/sites-enabled/default:61

正确的应该是:

location ~ \.php$
。。。
# fastcgi_pass 127.0.0.1:9000; (此处和下面重复,注释掉)
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;(此处和上面重复)
。。。

nginx和php配置需要nginx和php-fpm,确保安装php-fpm并正确启动,另外贴出nginx启动日志才能知道具体原因。 参考技术A 试试service nginx restart
不行的话看看/etc/init.d/nginx下的脚本 应该有reload的脚本,打开查看一下

ubuntu下快速搭建LNMP环境图文教程

一、安装nginx

我们首先来安装nginx,使用如下命令:

sudo apt-get -y install nginx

 

技术分享图片

nginx安装完毕后,我们来查看nginx都安装了什么文件。使用如下命令进行查看,如下:

dpkg -S nginx

 

技术分享图片

通过上图,我们可以看出nginx默认的安装位置是/etc/nginx目录,而且nginx的配置文件nginx.conf也是在该目录下。

除此之外,nginx的默认网站目录在/usr/share/nginx/html下,默认nginx网站配置文件为/etc/nginx/sites-available/目录下的default文件。

现在我们来启动nginx,可以使用如下命令:

sudo /etc/init.d/nginx start

sudo service nginx start

以上两条命令都可以启动nginx,我个人比较倾向于使用第一条命令,因为这个是直接通过nginx的启动脚本来启动的。

netstat ?tunlp

sudo lsof -i :80

 

技术分享图片

通过网页进行访问看看实际效果,如下:

 

技术分享图片

或者通过curl命令进行访问,如下:

curl http://192.168.1.9

 

技术分享图片

二、安装php与php-fpm

nginx安装完毕后,我们现在来安装php与php-fpm,使用如下命令,如下:

sudo apt-get -y install php5 php5-fpm php5-cli

 

技术分享图片

查看php版本,如下:

php5 -v

 

技术分享图片

三、nginx与php-fpm集成

nginx与php安装完毕后,我们现在开始把nginx与php集成。其实nginx与php集成是通过fastcgi来实现,而fastcgi我们一般使用的是php-fpm。

php-fpm与nginx通信方式有两种,一种是TCP方式,一种是unix socket方式。

TCP方式就是使用TCP端口连接,一般是127.0.0.1:9000。

Socket是使用unix domain socket连接套接字/dev/shm/php-cgi.sock(很多教程使用路径/tmp,而路径/dev/shm是个tmpfs,速度比磁盘快得多),在服务器压力不大的情况下,tcp和socket差别不大,但是在压力比较满的时候,使用套接字方式,效果确实比较好。

3.1 TCP方式

先来修改nginx的默认网站文件default,如下:

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

location ~ \.php$ {

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

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi_params; }

 

技术分享图片

现在来修改nginx的fastcgi_params文件,添加如下命令。

注意:这个命令一定要添加,否则nginx与php集成后,网页会显示空白。

sudo vi /etc/nginx/fastcgi_params

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

 

技术分享图片

修改nginx的默认主页,如下:

sudo vi /usr/share/nginx/html/index.php

 

技术分享图片

现在我们再来修改php的配置文件php.ini,如下:

sudo vi /etc/php5/fpm/php.ini +758

 

技术分享图片

除此之外,我们还需要修改php-fpm的配置文件www.conf,如下:

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

listen = 127.0.0.1:9000

 

技术分享图片

以上修改完毕后,我们现在来重启nginx与php-fpm,如下:

sudo /etc/init.d/nginx restart

sudo /etc/init.d/php5-fpm restart

 

技术分享图片

现在我们来访问nginx,如下:

http://192.168.1.9/index.php

 

技术分享图片

现在来查看系统的端口,如下:

netstat -tunlp

 

技术分享图片

以上就是php-fpm与nginx的TCP通信方式。

3.2 socket方式

修改nginx的默认网站文件default,如下:

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

location ~ \.php$ {

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

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

fastcgi_index index.php;

include fastcgi_params; }

 

技术分享图片

现在再来修改php-fpm的配置文件www.conf,如下:

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

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

 

技术分享图片

其他的修改和TCP方式连接的是一样的,现在我们再来重启nginx与php-fpm。如下:

sudo /etc/init.d/nginx restart

sudo /etc/init.d/php5-fpm restart

 

技术分享图片

现在我们再来看看,php-fpm是否占用系统端口。如下:

 

技术分享图片

可以看到此时php-fpm并没有占用系统端口。

四、安装mysql

现在来开始安装mysql,如下:

sudo apt-get ?y install mysql-server mysql-client php5-mysql

 

技术分享图片

 

技术分享图片

 

技术分享图片

mysql安装完毕后,我们现在来使用php连接mysql。创建ilanni.php文件,内容如下:

sudo vi /usr/share/nginx/html/ilanni.php

 

$host=‘127.0.0.1‘;

$root=‘root‘;

$pwd=‘123456‘;

$con= mysql_connect($host,$root,$pwd);

if ( $con == false ) {

echo "connect false";

} else{

echo "connect true";

}

?>

 

技术分享图片

现在来通过php来访问mysql,如下:

 

技术分享图片

通过上图,我们可以看到php已经正常连接mysql数据库,这也说明mysql也已经安装成功。

 

原文:https://yq.aliyun.com/ziliao/29524

以上是关于Ubuntu14.04安装lnmp(nginx+php-fpm+mysql), nginx reload总是fail,附操作步骤,请指点,谢谢。的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu14.04搭建LNMP平台

Ubuntu14.04server + LNMP + Zabbix3.4安装教程

ubuntu14.04 安装LNMP

ubuntu 14.04安装nginx+php

ubuntu安装配置LNMP

Ubuntu Nginx实战之LNMP的安装