正在使用亚马逊的 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:9000
为 fastcgi_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(一)
本文链接 https://yanbin.blog/debian-6-install-nginx-php-mysql/, 来自 隔叶黄莺 Yanbin Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。