全球主机交流论坛

标题: 抛弃一键包,一起学Ubuntu上apt-get配置Nginx+PHP5+PHP5-FPM+MySQL [打印本页]

作者: HXS    时间: 2016-4-4 20:38
标题: 抛弃一键包,一起学Ubuntu上apt-get配置Nginx+PHP5+PHP5-FPM+MySQL
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/的文件夹下面也可以。
作者: 月痕    时间: 2016-4-4 20:39
还是一键包适合我
作者: lovejohn    时间: 2016-4-4 20:43
还是一键包适合我
作者: 倾城翻翻    时间: 2016-4-4 20:44
debian 就是这么配置的 差不多
作者: reizhi    时间: 2016-4-4 20:44
我放弃了
作者: 粉红色星期五    时间: 2016-4-4 20:45
还是一键包适合我
作者: evanvane    时间: 2016-4-4 20:48
..一键包不仅简单还自带优化
作者: HXS    时间: 2016-4-4 20:51
evanvane 发表于 2016-4-4 20:48
..一键包不仅简单还自带优化

所谓优化不过是修改几个参数而已
作者: liwentao0705    时间: 2016-4-4 20:55
还是一键包适合我
作者: evanvane    时间: 2016-4-4 21:04
HXS 发表于 2016-4-4 20:51
所谓优化不过是修改几个参数而已

反正没在你冗长的教程里看见
而且人家又不是随便什么配置就改一种参数
作者: rongdede    时间: 2016-4-4 21:09
这是吃饱了撑着么.哈哈
作者: cxyqth    时间: 2016-4-4 21:12
自己装固然很好,不过我还是选择一键包,至少出问题,百度搜索解决快。
作者: ivmm    时间: 2016-4-4 21:19
php70才是王道。

你这样一个一个的配置参数啥的,一小时就过去了
一键包可能十五分钟就搞定了这些内容
作者: HXS    时间: 2016-4-4 21:23
ivmm 发表于 2016-4-4 21:19
php70才是王道。

你这样一个一个的配置参数啥的,一小时就过去了

学习的过程,折腾的过程
我个人不喜欢用一键包,有洁癖
作者: sense    时间: 2016-4-4 21:24
优势在哪呢?只是能熟悉一下命令
作者: 斜阳晚暮    时间: 2016-4-4 21:24
自己搞一两次,会装就行。
平时还是用一键包。
配置太麻烦。
作者: malong101    时间: 2016-4-4 21:30
还是一件包  可惜我的一件包 不会自动升级
坐等 官方的一键安装包
作者: 秋风下的落叶    时间: 2016-4-5 08:35
好高端的教程
作者: nuet    时间: 2016-4-5 08:45
一键多省事
作者: zrj766    时间: 2016-4-5 08:50
算了,还是一键包吧。
作者: bigexiu    时间: 2016-4-5 09:01
考虑怎么手动设置  PHP多版本选择 。来个教程。
作者: tomcb    时间: 2016-4-5 09:48
就差台小JJ来装了




欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4