Debian 6 上安装 Nginx+PHP+MySQL

正在使用亚马逊的 VPS,一年的小心翼翼的免费期,选择的是 Debian 6 32 位的系统,因搭建 WordPress 试图在上面安装 Nginx+PHP 的环境。看着在 Nginx 环境下多是使用 php-fpm,而不是 php-cgi,前者与后者的区别是在孤立的 php-cgi 之上又多了一个调度层。

一开始打算一步步纯手工打造,但在执行 apt-get install php-fpm 时总有不可逾越的依赖症,所以转而寻求更傻瓜的一键包安装方式。试过 LNMP,包太大,东西太过于齐全,把人太当傻瓜,虽然如此,我在用它安装时也有些慢,因为它也是采取的编译安装方式,针对本机应该有很好的优化。没装完我就中断了,下次有时间可以再试下。

正好在这期间看到了 Dvid Pennington 制作的 lowendscript lnmp 一键安装脚本,很省事,连安装  WordPress 也考虑到了,这里有介绍,比较详细 lowendscript:最省资源lnmp一键包。我只记录下我自己的安装过程,以备忘。

1. 下载 lowendscript 安装脚本

wget --no-check-certificate https://raw.github.com/Xeoncross/lowendscript/master/setup-debian.sh

2. 添加可执行权限

chmod +x setup-debian.sh

3. 添加 dotdeb 源

sudo ./setup-debian.sh dotdeb

4. 系统准备

sudo ./setup-debian.sh system

5. 安装 php,会告诉你怎么起停 php-fpm, sudo /etc/init.d/php5-fpm restart

sudo ./setup-debian.sh php

6. 安装 Nginx (1.4+), 起停 nginx  用 sudo /etc/init.d/nginx restart

sudo ./setup-debian.sh nginx

7. 安装 MySQL,/root/.my.cnf 中看管理员帐户和密码

sudo ./setup-debian.sh mysql

8. 指定域名建立站点

sudo ./setup-debian.sh site

还能帮你自动搭建 WordPress 站点,用命令 sudo ./setup-debian.sh wordpress [domain],另外 setup-debian.sh 命令还为我们提供了很多工具的便捷安装,运行 sudo ./setup-debian.sh --help 看帮助内容:

Usage: setup-debian.sh [option] [argument]
Available options (in recomended order):
  - dotdeb                 (install dotdeb apt source for nginx 1.2+)
  - system                 (remove unneeded, upgrade system, install software)
  - dropbear  [port]       (SSH server)
  - iptables  [port]       (setup basic firewall with HTTP(S) open)
  - mysql                  (install MySQL and set root password)
  - nginx                  (install nginx and create sample PHP vhosts)
  - php                    (install PHP5-FPM with APC, cURL, suhosin, etc...)
  - exim4                  (install exim4 mail server)
  - site      [domain.tld] (create nginx vhost and /var/www/$site/public)
  - mysqluser [domain.tld] (create matching mysql user and database)
  - wordpress [domain.tld] (create nginx vhost and /var/www/$wordpress/public)
 
... and now some extras
  - info                   (Displays information about the OS, ARCH and VERSION)
  - sshkey                 (Generate SSH key)
  - apt                    (update sources.list for UBUNTU only)
  - ps_mem                 (Download the handy python script to report memory usage)
  - vzfree                 (Install vzfree for correct memory reporting on OpenVZ VPS)
  - motd                   (Configures and enables the default MOTD)
  - locale                 (Fix locales issue with OpenVZ Ubuntu templates)
  - webmin                 (Install Webmin for VPS management)
  - test                   (Run the classic disk IO and classic cachefly network test)
  - 3proxy                 (Install 3proxy - Free tiny proxy server, with authentication support, HTTP, SOCKS5 and whatever you can throw at it)
  - 3proxyauth             (add users/passwords to your proxy user authentication list)

在站点目录中建个 phpinfo.php  文件来测试一下吧,可以看看 php.ini 文件的位置,已启用了哪些 php 组件等。
默认情况下 Nginx  中处理 php 时是通过 http://127.0.0.1:9000 与 php-cgi 通信的,我们可以改成借助于 sock 文件来建立关联的,修改 php-fpm.conf 文件把 listen 设置为 /var/run/php5-fpm.sock。然后改 /etc/nginx/php.conf 中的 fastcgi_pass 127.0.0.1:9000fastcgi_pass unix:/var/run/php5-fpm.sock.

如果你在访问 php 时看到 502 Bad Gateway, 原因就是 php 没法请求给 php-cgi 进行处理,有错误别忘了查看  error.log,可能里面有写到类似这样的内容

2014/02/12 04:07:31 [error] 20160#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 184.75.196.2, server: unmi.cc, request: "GET /phpinfo.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: “unmi.cc"

这时你可以看看 9000 端口是否起来了。

再就是默认情况下 php 的可能有些你要用到的组件没被安装,一个个处理就行,比如要装下面这些

sudo apt-get install php5-curl php5-gd php5-mysql

安装 PHP 组件后后 php5-fpm 会自动重启,这就是 php-fpm (PHP - FastCGI Process Manager) 的一个好处。

本人的体验,也不知道是哪儿出错了,反正搭建起来的 WordPress 是能用了,刚开始也挺快的,可以没多久 PHP 网页就很难打开,重启 Nginx, PHP-FPM,甚至是操作系统也是短暂时的解决问题,不过几分钟又假死了,原因应该是 PHP-FPM 在处理 php 脚本没响应了。看看不行我又装回了熟悉的 Apache2 了,有机会再去搬弄 Ngnix+PHP 的是非吧。

链接:1. 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
          2. Nginx and PHP-FastCGI on Debian 6 (Squeeze)
          3. lowendscript:最省资源lnmp一键包
          4. Debian 源安装 NGINX+PHP+MYSQL
          5. Debian安装Nginx+php-fpm+mysql+phpmyadmin备忘
          6. Debian 6(Squeeze)安装 Nginx + PHP5 + PHP-FPM + MySQL(一)

类别: Linux/Unix, PHP. 标签: , , , . 阅读(491). 订阅评论. TrackBack.

Leave a Reply

Be the First to Comment!

avatar