全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1787|回复: 21
打印 上一主题 下一主题

抛弃一键包,一起学Ubuntu上apt-get配置Nginx+PHP5+PHP5-FPM+MySQL

[复制链接]
跳转到指定楼层
1#
发表于 2016-4-4 20:38:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Ubuntu下安装 Nginx + Php5-fpm

第一步,安装 Nginx

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
  
在文件中输入以下内容就好:

<?php  

phpinfo();  
  
?>

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

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

有的同学可能按照网上某些教程安装之后,测试时显示 “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/的文件夹下面也可以。
2#
发表于 2016-4-4 20:39:47 | 只看该作者
还是一键包适合我
3#
发表于 2016-4-4 20:43:02 | 只看该作者
还是一键包适合我
4#
发表于 2016-4-4 20:44:38 | 只看该作者
debian 就是这么配置的 差不多
6#
发表于 2016-4-4 20:45:13 来自手机 | 只看该作者
还是一键包适合我
7#
发表于 2016-4-4 20:48:28 | 只看该作者
..一键包不仅简单还自带优化
8#
 楼主| 发表于 2016-4-4 20:51:28 | 只看该作者
evanvane 发表于 2016-4-4 20:48
..一键包不仅简单还自带优化

所谓优化不过是修改几个参数而已
9#
发表于 2016-4-4 20:55:41 来自手机 | 只看该作者
还是一键包适合我
10#
发表于 2016-4-4 21:04:54 来自手机 | 只看该作者
HXS 发表于 2016-4-4 20:51
所谓优化不过是修改几个参数而已

反正没在你冗长的教程里看见
而且人家又不是随便什么配置就改一种参数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-11-2 16:32 , Processed in 0.076629 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表