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 が動くはずです。意外と簡単でしたね。
