首页 » my » 正文

vps配置–Nginx+FastCgi安装

apahce2+php的方式还是占用了太多的内存,现在这个VPS256M的内存根本运行不起来,打开两个页面,就内存不足了。

于是乎想到了Nginx,据说这是个轻量级的web server,系统资源占用量也少,试试吧。

每一步:安装Nginx及PHP相关软件

安装Nginx:sudo apt-get install nginx

安装PHP:sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql

安装FastCgi:sudo apt-get install spawn-fcgi

第二步:Nginx及PHP相关配置

修改nginx的配置文件:/etc/nginx/sites-available/default 修改主机名:server_name localhost;

 

去掉下面部分的注释用于支持 php 脚本:

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/firebull/iwangyu.info$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}

启动fastcgi php: 有两种方式:

一种是以HTTP方式启动:spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi

另一种是以unix domain socket的方式来启动: nginx配置文件要做如下修改:

fastcgi_pass 127.0.0.1:9000; 修改为 fastcgi_pass unix:/tmp/php-cgi.sock

然后以“spawn-fcgi -a 127.0.0.1 -s /tmp/php-cgi.sock -C 1 -u www-data -f /usr/bin/php-cgi”来启去fastcgi。

本站使用的是uxin domain socket方式,这种方式比http的方式效率要高,而且占用内存也少。

 

安装了eAccelerator的扩展:

首先,得安装一下php5-dev:如果前面已经安装过了,这一步可以跳过了。

sudo apt-get install php5-dev 下载eAccelerator:(具体下载地址可以访问官网,版本不同,地址也不同)

wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2

解压缩eAccelerator:

tar jxvf eaccelerator-0.9.5.3.tar.bz2 进入eAccelerator的目录:cd eaccelerator-0.9.5.3/

运行如下几个指令(一行一个指令,等执行完了再输入下一个):

phpize sudo ./configure –enable-eaccelerator=shared sudo make sudo make install 安装好之后,屏幕会显示大概如下信息:

Installing shared extensions:     /usr/lib/php5/20060613+lfs/ 接着修改php.ini:

sudo vi /etc/php5/apache2/php.ini 在文档最后加上:

zend_extension="/usr/lib/php5/20060613+lfs/eaccelerator.so"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.allowed_admin_path="/var/www/control.php"

这里解释一下,最后一行的eaccelerator.allowed_admin_path的意思是eAccelerator的在线控制文件的实际路径,这样一来就可以使用http://你的网址/control.php来控制eAccelerator了。

本站优化配置如下:

[eaccelerator]

zend_extension="/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/eaccelerator.so"

eaccelerator.shm_size="1"

eaccelerator.cache_dir="/usr/local/webserver/eaccelerator_cache"

eaccelerator.enable="1"

eaccelerator.optimizer="1"

eaccelerator.check_mtime="1"

eaccelerator.debug="0"

eaccelerator.filter=""

eaccelerator.shm_max="0"

eaccelerator.shm_ttl="3600"

eaccelerator.shm_prune_period="3600"

eaccelerator.shm_only="0"

eaccelerator.compress="1"

eaccelerator.compress_level="9"

eaccelerator.keys = "disk_only"

eaccelerator.sessions = "disk_only"

eaccelerator.content = "disk_only"

 

接下来建立cache目录(一行一个指令):

sudo mkdir /tmp/eaccelerator sudo chmod 0777 /tmp/eaccelerator

然后进入eaccelerator-0.9.5.3的目录里拷贝control.php到网站目录:

sudo cp control.php /var/www

接着修改control.php里的$user和$pw的内容:

sudo vi /var/www/control.php

因为当你用http://你的网址/control.php访问的时候,是需要输入账号密码的。$user是账号,$pw是密码。

wordpress Rewrite设置

网上找到的有两种方式: 第一种方式:使用这种方式时,本站的固定链接报404,不晓得是什么原因。

location / {
  index index.html index.php;
  if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
  }
  if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
  }
  if (!-f $request_filename){
    rewrite (.*) /index.php;
  }
}

第二种方式:本站使用的是这种方式

if (!-e $request_filename)  {
  rewrite ^/(index|atom|rsd).xml$ http://www.iwangyu.info last;
  rewrite ^([_0-9a-zA-Z-]+)?(/wp-.*) $2 last;
  rewrite ^([_0-9a-zA-Z-]+)?(/.*.php)$ $2 last;
  rewrite ^ /index.php last;
}

参考资源:http://blog.s135.com/post/375/
          http://wiki.ubuntu.org.cn/Nginx