Ubuntu下安装Nginx+php(FastCGI)

Nginx是近期最火的www服务器软件,它的种种优势这里就不在累述了,直接进入正题吧。

安装nginx
老一套的把戏 sudo apt-get install nginx

安装好之后sudo /etc/init.d/nginx restart 启动服务,正常情况下,你应该可以访问它获得经典的Welcome to nginx!欢迎界面。

安装php5

不同于apache的mod方式,nginx只限于fastcgi模式调用php。说道fastcgi,之前一直有兄弟问过我CGI和FastCGI的区别。其实FastCGI就是一个预先启动的进程,减少了CGI方式每次启动解释器的资源耗用。当然,这个方式带来的缺陷就是很容易因为解释器的挂死而失效。

sudo apt-get install php5-cgi

修改nginx的配置,使其支持php5

sudo /etc/nginx/sites-available/default

location ~ \.php$ {
 fastcgi_pass   127.0.0.1:9000;
 fastcgi_index  index.php;
 fastcgi_param  SCRIPT_FILENAME  /var/www/nginx-default$fastcgi_script_name;
 include fastcgi_params;
 }


需要注意的是,默认nginx默认配置中注释掉的那一段中对于fastcgi_param的那段配置是有问题的,需要设置正确的路径。

如果你重启nginx的话,这里是无法正常使用php的,原理是php的fastcgi进程还没有启动。

sudo php-cgi -b 127.0.0.1:9000  & //与上面的fastcgi_pass设置是同一端口

正常情况下,nginx已经支持了php。

由于这种方式容易出现问题导致php失效。这里我建议使用spawn-fcgi守护进程。

sudo apt-get install spawn-fcgi

sudo spawn-fcgi -a 127.0.0.1 -p 9000 -c 5 -f /usr/bin/php5-cgi //其中的 -c意味着同时同时启动5个进程

为了更加方便,不妨修改下nginx的启动脚本

sudo nano /etc/init.d/nginx //修改

start)
 echo -n "Starting $DESC: "
 test_nginx_config
 start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
 --exec $DAEMON -- $DAEMON_OPTS || true
 echo -n "Starting Php FastCGI"
 /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -c 5 -f /usr/bin/php5-cgi
 echo "$NAME."

stop)
 echo -n "Stopping $DESC: "
 start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
 --exec $DAEMON || true
 echo -n "Stopping Php FastCGI"
 killall php5-cgi
 echo "$NAME."
 ;;


“Ubuntu下安装Nginx+php(FastCGI)”的2个回复

  1. Pingback: WordPress Tutorial

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请补全下列算式: *

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据