1. 程式人生 > >ubuntu下Nginx+php(fastcgi)安裝配置

ubuntu下Nginx+php(fastcgi)安裝配置

2010-09-27

周海漢 2010.9.27 http://abloz.com/2010/09/27/ubuntu-under-nginx-php-fastc.html

都說nginx比apache效率高很多,所以在ubuntu 10.04的本機配置一個nginx+php。

安裝配置nginx

sudo apt-get install nginx

啟動nginx

sudo service nginx restart

啟動完了測試一下。 在瀏覽器中輸入http://localhost,顯示 Welcome to nginx! web伺服器配置成功。

安裝php5

sudo apt-get install php5

光有php5還不行,因為nginx只支援fast-cgi模式。所以必須裝fast-cgi

安裝fast-cgi

[email protected]:/etc/nginx# apt-get install php5-cgi

執行: [email protected]:/etc/nginx# php5-cgi -b 127.0.0.1:9000

也可以再安裝spawn-fcgi [email protected]:~$ sudo apt-get install spawn-fcgi spawn-fcgi是fastcgi的管理程式,從Lighthttpd獨立出來的專案。實際運營中可以使用php-fpm(php的fastcgi php manager). php 5.3.3中自帶php-fpm,但我現在的版本是php 5.3.2.

採用spawn-fcgi執行: [email protected]:~$ spawn-fcgi -a 127.0.0.1 -p 9000 -u www-data -g www-data -f /usr/bin/php5-cgi spawn-fcgi: child spawned successfully: PID: 9700

測試php

修改nginx配置檔案:

cd /etc/nginx [email protected]:/etc/nginx# vi sites-available/default

server {
	listen   80 default;
	server_name  localhost;

	access_log  /var/log/nginx/localhost.access.log;

	location / {
		root   /var/www/nginx-default;
        #增加index.php
		index  index.php index.html index.htm;
	}

	location /doc {
		root   /usr/share;
		autoindex on;
		allow 127.0.0.1;
		deny all;
	}

	location /images {
		root   /usr/share;
		autoindex on;
	}
	#去掉註釋
	location ~ .php$ {
		fastcgi_pass   127.0.0.1:9000;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
		include fastcgi_params;
	}

}

重啟nginx 編寫php測試程式。

[email protected]:~# cat /var/www/nginx-default/index.php

<?php
echo "hello world";
phpinfo();
?>

排錯:

在瀏覽器中輸入http://localhost/index.php 顯示: No input file specified.

log裡顯示沒有找到檔案。 後面發現是default檔案裡location ~ .php$段的fastcgi_param必須修改。 如下:

	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 /etc/nginx/fastcgi_params;
	}

即$fastcgi_script_name必須放到web根目錄下。也可以用變數$document_root fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

重啟nginx,再瀏覽http://localhost/,打印出hello world和php info資訊。

如非註明轉載, 均為原創. 本站遵循知識共享CC協議,轉載請註明來源