CentOSとNginxの環境でCGI(Perl)を動かす

スポンサーリンク
Linux
スポンサーリンク

最近のサーバ環境ではRubyやPHPなどを使うことが大半だと思いますが、今でもフリーの掲示板cgiを設置するなどの用途でCGIを動作させたい時があります。
Apacheでは問題なく動かせるのですが、Nginxだと幾つかの準備が必要になります。

yum install epel-release
yum install spawn-fcgi fcgi-devel
wget http://github.com/gnosek/fcgiwrap/tarball/master
tar xzvf master
cd gnosek-fcgiwrap-gnosek-fcgiwrap-***
autoreconf -i
./configure
make
make install

必要なインストールが終わったので、次にspawn-fcgiの設定です。

vi /etc/sysconfig/spawn-fcgi
OPTIONS="-u nginx -g nginx -a 127.0.0.1 -p 9001 -P /var/run/spawn-fcgi.pid -- /usr/local/sbin/fcgiwrap"

Nginxの設定は以下の通りです。

server {
    charset shift-jis;
    ...
    location / {
        ...
        index  index.html index.htm index.php index.cgi;
    }
    location ~ \.cgi$ {
        root   /var/www/html;
        fastcgi_pass   127.0.0.1:9001;
        fastcgi_index  index.cgi;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

cgiで動く掲示板などはshift-jis設定の物が多く、Nginxだとhead内に<meta http-equiv=”Content-Type” content=”text/html;charset=Shift_JIS”>を入れていても文字化けしてしまいますし、PHPのようにini_set()も使えないので(Perlはよく知りません)、charset shift-jis;を追加しています。location内だけでも使える様なのですがcharsetの効き方が微妙なので、cgiサイトにバーチャルホストを割り当てて運用しています。

参考サイトhttps://www.unix-power.net/networking/post-1132

1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
読み込み中...

コメント

タイトルとURLをコピーしました