Mar 152009
 

安装这一套的目的是为了看看在VPS这种低内存配置的环境下Nginx跑Wordpress的表现,至于为什么选这么一套搭配的原因就不废话了。

为了避免复杂度就没有使用源代码方式安装,用源代码确实是能安装到最新的版本,但简单看了一下各个Changelog,基本上用发行版自带的二进制包也都没什么问题,还是一切从简吧。

目前这个VPS跑得是Fedora8,因为基本上Host provider就只有这么老的货色了。

首先按照惯例更新一下二进制包管理器数据库:

yum update

然后是安装Nginx,PHP,MySQL,能装的先一股脑装上再慢慢配:

yum install nginx

yum install php

yum install mysql mysql-server

还有要处理FastCGI调用这个环节,PHP的二进制包已经包含了FastCGI支持,因此要做的只不过是弄一个FastCGI的进程管理器而已,用脚本写个简单的wrapper就可以了,不过看了一下Nginx的Wiki发现竟然推荐使用Lighttpd附带的spawn-fcgi工具实现,难道两者除了竞争对手还是合作伙伴吗?既然人家这么写咱也就这么用了吧,好在Lighttpd的包也非常小,顺便装了算了

yum install lighttpd-fastcgi

然后是配置工作了,首先在Nginx上把站点跑起来,修改/etc/nginx/conf.d/virtual.conf,让它变成这样:

#
# A virtual host using mix of IP-, name-, and port-based configuration
#

#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

server {
    listen       80;
    server_name  vps.dawnh.net dawnh.net;

    location / {
        root   /www/dawnh.net;
        index  index.html index.htm index.php;
    }
    location ~ \.php$ {
        root           /www/dawnh.net;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        /etc/nginx/fastcgi_params;
    }
}

 

运行/etc/init.d/nginx restart重起Nginx。

接下来是让PHP的FastCGI进程跑起来,有了spawn-fcgi就简单多了,一行命令即可:

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u nginx -g nginx -f /usr/bin/php-cgi

没什么问题的话就会看到运行成功的提示。然后就可以把这行丢到自启动脚本里去了。

至此Web Server方面应该是可以跑起来了,写个phpinfo()的测试页丢到/www/dawnh.net/里去,然后通过浏览器访问测试,如果能看到phpinfo页面,说明配置成功。

  3 Responses to “手记:VPS上安装Nginx+PHP+FastCGI+MySQL”

  1. 学习了。支持一下。。

  2. why not start-stop-daemon…

  3. 这东西没有预编译好的rpm,自己搞着玩的话,嫌麻烦。还有就是spawn-fcgi对于进程管理的控制性强一些,貌似最近这个项目从Lighttpd里独立出来了。其实最理想的是php-fpm,不过我实在是太懒了。

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>