第一步,安装 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/的文件夹下面也可以。