在96M内存的VPS上跑高性能的LAMP应用WordPress

通常情况下,在一个96M内存的VPS上安装apache2,mysql,php5之后再安装一个wordpress,那么apache在相应三五的连接请求之后,VPS的内存就几乎快要用完了,这时候如果连接请求不断增加,VPS将会内存耗尽,内存耗尽之后,无论有没有swap,CPU的占有率就会很高。我们RasHost VPS已经有很多客户都碰到过这种情况。实践证明,96M内存的VPS使用Apache跑PHP的应用不能支持大的并发。主要原因就是apache+mod_php的内存占用比较高。 为了解决这个问题,我们采用了Nginx+FastCGI PHP+MySQL的方案。Nginx是Web Server的后起之秀,性能比Apache高出不少。实践证明Nginx+FastCGI PHP+MySQL比Apache+PHP要节省资源! 在Linux VPS下配置Nginx+FastCGI PHP+MySQL需要如下几个步骤:
  1. 配置nginx+fastcgi php+mysql的环境
  2. 安装wordpress
  3. 配置nginx URL rewrite用以支持wordpress的永久链接。
对于第一步,请参考我们以前的博客:
  1. 在Ubuntu 8.04 LTS(hardy)下安装配置nginx和fastcgi方式的php
  2. 在CentOS5下安装配置nginx+fastcgi php+mysql
对于第二步,安装wordpress跟在apache下一样,不再罗嗦了。安装完wordpress后就可以正常使用了,如果想要启用wordpress的不带问号方式的永久链接,则需要进行第三步。 第三步,我配置的永久链接是这个形式:/index.php/%year%/%monthnum%/%day%/%postname%/ 要达到这种效果需要修改nginx的配置文件/etc/nginx/sites-enabled/default中的相应内容为: location / { root /var/www/nginx-default; index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^(.+)$ /blog/index.php?q=$1 last; } } 增加的部分就是这个if语句。这个if语句的意思是:如果碰到一个连接请求($request_filename),而这个连接请求所代表的文件是不存在的(!-e表示不存在,熟悉bash编程的人应该能看出来),那么将改写这个请求的URL,改写方式按照这个rewrite语句进行。 然后重启nginx就可以了,一个96M内存的VPS上的高性能的WordPress就有了!这个配置能跑多少个并发还有待测试!

Comments

96M?我现在用的是512M的

刚学习这个,找到了你的博客,我可以加你吗?想多多请教VPS的问题

是96M的,96M跑apache费劲,所以我才搞起了nginx

呵呵,我的博客也是用CentOS+nginx+php的架构