Nginx で CGI(Peal)を動かす方法です。Nginx単体では、CGIを動かすことが出来ませんので、FastCGI と連携してCGIを動かします。
※これは Debian5 では動きません。(パッケージが無いため)
FastCGI をインストール
// インストール # apt-get install fcgiwrap
default の修正
#vi /etc/nginx/sites-available/default
を修正します。
ご自分の環境に合わせて31~36行目を追記してください。
server { listen 80; root /home/hoge/example.com; index index.php index.html index.htm; server_name example.com; access_log /var/log/nginx/example.com-access.log; error_log /var/log/nginx/example.com-error.log; location / { try_files $uri $uri/ =404; } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_pass_header "X-Accel-Redirect"; fastcgi_pass_header "X-Accel-Expires"; fastcgi_no_cache $do_not_cache; fastcgi_cache_bypass $do_not_cache; fastcgi_cache wpcache; fastcgi_cache_key "$scheme://$host$request_uri"; fastcgi_cache_valid 200 10m; fastcgi_cache_valid 404 1m; } location ~ \.cgi$ { fastcgi_pass unix:/var/run/fcgiwrap.socket; fastcgi_index index.cgi; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ \.(jpg|png|gif|swf|jpeg|ico)$ { expires 30d; } location ~ \.(css|js)$ { charset UTF-8; expires 30d; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; } location ~ /(\.ht|\.user.ini|\.git|\.hg|\.bzr|\.svn) { deny all; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
Nginxの再起動
Nginx の設定ファイルを読み込む。
// 再起動 # /etc/init.d/nginx reload
これで CGI が動くはずです。意外と簡単でしたね。