Ubuntu12和14下apt-get配置Nginx+php5-fpm的注意事项

第一步,安装 Nginx

sudo apt-get install nginx

第二步,安装 php5-fpm

apt-get install php5-fpm php5-gd php5-mysql

或者你需要更齐全的php包:

#apt-get install php5-cgi php5-mysql php5-fpm php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt

php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

第三步,修改配置文件以支持 PHP

#打开配置文件

vi /etc/nginx/sites-available/default

首先,在 index 后添加 index.php:

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

root /usr/share/nginx/html;
index index.php index.html index.htm; #修改这里,在 index 后添加 index.php

# Make site accessible from http://localhost/
server_name localhost;

….

然后,可以再去掉如下注释,看清楚是哪里哦:

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
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;
}

接着进行重启:

#这一句虽然没必要但可以给你检查配置文件的错误
sudo nginx -s reload

#重启 php5-fpm
sudo /etc/init.d/php5-fpm restart

#重启 nginx
sudo /etc/init.d/nginx restart

测试php是否配置成功

#修改权限

sudo chmod 777 /usr/share/nginx/html/

#新建测试文件

vim /usr/share/nginx/html/index.php

在文件中输入以下内容就好:

打开浏览器,再次输入地址,localhost 或 localhost:端口 (我是 localhost:88),看到如下界面则成功:

常见问题:Ubuntu14安装nginx+php5后打开网页时出现 “502 Bad Gateway”

我们先看一下apt-get安装的php版本# php -v

有的同学可能按照网上某些教程安装之后,测试时显示 “502 Bad Gateway”,噢,不要紧张,因为网上的许多教程是过时的而已….

不少教程是比较久之前的,所以在修改配置文件时,会告诉你注释得到这三行:

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}

这里的 fastcgi_pass 变量应该是错的,适用于PHP5.3以及5.3之前的PHP版本,在 PHP5.4 之后,php5-fpm 并不是监听 9000 端口,可
以看一下它的配置文件:

#php5-fpm 的配置文件

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

里面有一段如下,注意最后一行的 listen,原版本是 listen = 127.0.0.1:9000, 但最新的版本是下面的:

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses on a
; specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = /var/run/php5-fpm.sock

所以,所以 502 了…..

解决方法:

打开 nginx 配置文件:

#打开配置文件

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

然后把 9000 的那句注释了,换成新的 fast_pass 变量:

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

这样之后应该是可以正常工作的,不信试试?

另外注意,如果你是在Ubuntu12上apt-get安装的是php5.3版本,那么仍然需要使用如下的老版本的fastcgi_pass变量,否则也会出现502错误。

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}

必要时还需要修改#php5-fpm 的配置文件

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

里面有一段如下,注意最后一行的 listen,但最新的版本是下面的:

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses on a
; specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = /var/run/php5-fpm.sock

修改回老版本 listen = 127.0.0.1:9000

第四步,安装mysql数据库

apt-get install mysql-server mysql-client

apt-get程序会自动下载安装最新的mysql版本。在安装的最后,它会要求里输入root的密码,注意,这里的root密码可不是Ubuntu的root密码啊,是你要给MySQL设定的root密码。

第五步,安装phpmyadmin数据库管理

apt-get install phpmyadmin

按提示输入mysql的账号密码就可以了,可能会提示你选择apache还是lighttpd,因为我们用的是nginx,所以都不用选择,直接确认。

此时,你会发现直接访问http://localhost/phpmyadmin无法使用,

这时我们需要建立一个软连接,执行下面的命令

#sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html/

或者你把phpmyadmin直接复制到 /var/www/的文件夹下面也可以。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注