Debianをほとんど使ったことのない上野です。ちょっと仕事で使う事になったので色々と調べています。DataAPIを使える様にしたかったのですが動かず、手間取ってしまったのでログを残しておきます。
普通にnginxとfcgiwrap, spawn-fcgiをインストールします。(MySQLとかもインストールしますが、ここでは割愛)
$ sudo apt-get install nginx fcgiwrap spawn-fcgi
ここで設定ですが、nginxをちょっとうまく設定してやらないとfcgiwrap側にPATH_INFOが渡らない。
location / {
access_log /var/log/nginx/foobar.access.log;
error_log /var/log/nginx/foobar.error.log;
index index.cgi index.html;
location ~ \.cgi(/|$) {
gzip off;
fastcgi_index index.cgi;
fastcgi_split_path_info ^(.+?\.cgi)(/.*)$;
if (!-e $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $fastcgi_path_info;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
}
SCRIPT_FILENAME の設定が2回ありますが、この2行でfastcgi_paramsのincludeを挟んでやらないと、うまくパラメーターが上書きできず403エラーが返ってきてしまいます。そのエラーも単に"403"と返ってくるだけ。整形もなにもされていません、たったの3バイト。仕方が無いので2行書いています。
前だけでも、後ろだけでもダメ。Debianのメーリングリストに同様の問題が報告されていたので、バグかなと思いますが、それ以上は追っていません。動いたし(苦笑)
ともかくこれで動くようになりました。めでたし、めでたし(^^)