首先用php-cgi -v看一下php是否支援fastcgi。在我的機器上的輸出如下:
PHP 5.2.4-2ubuntu5.1 with Suhosin-Patch 0.9.6.2 (cgi-fcgi) (built: May 9 2008 16:26:18)
Copyright (c) 1997-2007 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2007 Zend Technol
然後找到php-cgi的位置:
which php-cgi
輸出:/usr/bin/php-cgi
對於較新版本的lighttpd,對設定檔做了更合理的處理,網上很多教程說去修改/etc/lighttpd/lighttpd.conf。如果安裝的是較新的版本,在/etc/lighttpd/conf-avalible下有個10-fastcgi.conf檔案。
首先備份一下:
sudo cp 10-fastcgi.conf bak.10-fastcgi.conf
然後開啟:
sudo vim 10-fastcgi.conf
添加或修改內容,最簡單的配置如下:
fastcgi.server=(
".php"=>((
"bin-path"=>"/usr/bin/php-cgi" #上文中which php-cgi找到的位置
"socket"=>"tmp/php.socket"
))
)
當然還可以配置很多其他內容比如max-proces/idle-timeout等。配置完成後重啟lighttpd:
sudo /etc/init.d/lighttpd restart
-----如果要啟用.html到.php的映射
這裡需要注意的是,首先要關閉mod_compress模組。在lighttpd.conf檔案中初始的配置為:
server.modules = (
13 "mod_access",
14 "mod_alias",
15 "mod_accesslog",
16 "mod_compress",
17 # "mod_rewrite",
....
....
compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ("text/plain", "text/html", "application/x- javascript", "text/css")
....
....
這裡有兩種選擇:要麼注釋掉mod_compress,要麼取消對.html檔案的壓縮功能.在這裡把text/html從compress.filetype裡去掉。
然後開啟10-fastcgi.conf,添加
fastcgi.map-extensons=(".html" => ".php")