配置nginx支援CGI程式

版主: stnet253

回覆文章
tony
文章: 585
註冊時間: 2012-02-26, 07:04
聯繫:

配置nginx支援CGI程式

未閱讀文章 tony »

nginx預設不支援傳統的CGI程式,但是通過FCGI包裝程式可以讓nginx支援CGI

只要是符合FCGI介面的包裝程式都可以用來使nginx支援CGI程式,有很多這樣的程式,有perl寫的,有C寫的,也有C++寫,等等。

nginx.org提供了一個perl包裝程式,但沒有提供system V風格的init檔,對這個程式稍加改造,然後寫一個init控制檔就可以在ubuntu上使用了。

安裝perl必要的支援函式庫
$sudo apt-get -y install libfcgi-perl libfcgi-procmanager-perl libio-all-perl
cgiwrap-fcgi.tar.gz
(2.76 KiB) 已下載 383 次
三個檔的打包下載以後,將cgiwrap-fcgi.pl拷貝到/usr/local/bin/目錄下,將cgiwrap-fcgi拷貝到/etc/init.d/目錄下,然後執行:
$sudo update-rc.d cgiwrap-fcgi defaults
更新/etc/rcX.d目錄下的符號連結,這樣debian啟動時會自動啟動cgiwrap-fcgi.pl程式

手動控制cgiwarp-fcgi.pl程式

$sudo /etc/init.d/cgiwrap-fcgi restart #重新啟動
$sudo /etc/init.d/cgiwrap-fcgi stop #停止
$sudo /etc/init.d/cgiwrap-fcgi status #查看cgiwrap-fcgi的運行狀態

cgiwrap-fcgi.pl使用unix socket檔/var/run/cgiwrap-fcgi/cgiwrap-fcgi.sock來監聽CGI程式請求,因此只要將對nginx的CGI請求轉發到此socket即可,對應的nginx設定檔cgiwrap-fcgi.conf為:
1 location ~ \.(cgi|pl).*$ {
2 gzip off;
3 fastcgi_pass unix:/var/run/cgiwrap-fcgi/cgiwrap-fcgi.sock;
4 fastcgi_index index.cgi;
5 include fastcgi_params;
6 }
下載後將此檔拷貝到/etc/nginx/目錄下,然後在虛擬主機設定檔的server節include cgiwrap-fcgi.conf即可。
回覆文章

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 0 位訪客