lnmp php5fpm.sock,Ubuntu 14.04 LTS 安装 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

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

Mark Do 2014年5月27日 6条评论 阅读 15,966 次

最近在 Ubuntu 14.04 LTS 安装 LNMP 一键安装包的时候出现了问题,PHP 5 服务没有启动,只好使用 Ubuntu 官方源进行安装:

Nginx (读音 “engine x”)免费、开源、高效的 HTTP 服务。Nginx 是以稳定著称,功能丰富,结构简单,低资源消耗。本教程将演示如何在ubuntu 14.04 服务器中安装 nginx、PHP5(php-fpm)、MySQL。

1 安装前提示

本文采用的主机名称: server1.example.com ,IP地址: 192.168.0.100。可能与你的主机有所不同,自行修改。

安装中我们使用root账户,先进行用户切换:

sudo su

2 安装 MySQL 5 数据库

安装 MySQL 运行命令:

apt-get install mysql-server mysql-client

安装过程中会询问建立 Root 账户密码,连续输入两次:

New password for the MySQL “root” user: 

Repeat password for the MySQL “root” user: 

136c5a4ec2b9ebf12612033bc60f290a.png

3 安装 Nginx

在安装 Nginx 之前,如果你已经安装 Apache2 先删除在安装 nginx:

service apache2 stop

update-rc.d -f apache2 remove

apt-get remove apache2

apt-get install nginx

启动 nginx 服务:

service nginx start

试试安装是否成功,在浏览器输入IP或主机地址 (e.g. http://192.168.0.100),如下图所示,说明安装成功:

548c4031535077b66dbdeff8d97420ef.png

在 Ubuntu 14.04  中默认的根目录为 /usr/share/nginx/html.

4 安装 PHP5

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

apt-get install php5-fpm

php-fpm是一个守护进程。

5 配置 nginx

使用Vi打开配置文件/etc/nginx/nginx.conf :

vi /etc/nginx/nginx.conf

我们需要调整工作进程数设置,如下面的值设置:

[...]

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端口。

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

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

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

保存文件并重新加载 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

phpinfo();

?>

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

ece56d9cd3b149557f1ec3d9fd9ddf04.png

正如你看到的 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://192.168.0.100/info.php 向下滚动看看模块是否支持:

ece56d9cd3b149557f1ec3d9fd9ddf04.png

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

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

9 相关参考链接:

投稿作者

作者网站

订阅

提醒

新跟进评论

我评论的新回复

4a9528a9d16aa2a2d382ba150b860094.png

{}

[+]

名字*

Email*

Website

4a9528a9d16aa2a2d382ba150b860094.png

{}

[+]

名字*

Email*

Website

6 评论

最老的

最新

得票率最高的

直线反馈

查看所有评论

891eb5a731235b2def3f4e77a256f3d2.png

6 年 之前

不错的教程,如果能介绍编译安装就是更好的福利了.我已经编译好了,过程中有很多小问题需要,煞费苦心啊.

0

回复

891eb5a731235b2def3f4e77a256f3d2.png

妈妈的

分享一下啊

0

回复

9ead8d5b1aa176b1d8bae85156a7c41f.png

6 年 之前

完全按照步骤来的,在访问info.php时,为什么会出现这个错误:An error occurred.Sorry, the page you are looking for is currently unavailable.Please try again later.

0

回复

891eb5a731235b2def3f4e77a256f3d2.png

溚溚

答复

排骨

6 年 之前

我也遇到了,你现在解决这个问题了吗?

0

回复

9ead8d5b1aa176b1d8bae85156a7c41f.png

答复

溚溚

6 年 之前

NO

0

回复

891eb5a731235b2def3f4e77a256f3d2.png

Zeratul_J

答复

排骨

6 年 之前

$sudo ps aux |grep nginx 查看nginx以什么用户运行,例如默认是www-data$sudo vim /etc/php5/fpm/pool.d/www.conf反注释listen.owner = www-datalisten.group = www-datalisten.mode = 0660因为ubuntu下service/upstart的配置都有bug不能正常stop/reload$sudo kill -9 $sudo service php5-fpm start

0

回复

为您推荐

请支持IMCN发展!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值