さくらのレンタルサーバを使おうと思っているのですが、いくつか今まで借りたことのあるサーバと違う点があってハマってしまいました。
1. .php 以外の拡張子で php を使うには
これは非公式FAQに詳しく説明されています。私の環境では、usr/local/bin/php が見つからず、勘で php_cgi_wrapper を php.cgi にリネームして、www/ にコピーし、パーミッションを704に設定してから、.htaccess に
AddHandler myphp-script .html Action myphp-script /php.cgi
と記述すると、うまくいきました。
この設定を行うと、コントロールパネルの、php.ini の設定が効かなくなってしまいますが、www/ に php.ini を手動で配置すれば良いだけなので、むしろ分かりやすいかも知れません。
2. getallheaders()は使えない
If-Modified-Since を取得するために getallheaders() を使っていたのですが、この関数は php が Apache モジュールとして動作しているときにのみ利用可能で、逆に言えば、CGIモードでは使えません。
対処法はPHPの公式マニュアルに載っていました。
function emu_getallheaders() { foreach($_SERVER as $h=>$v){ if(ereg('HTTP_(.+)',$h,$hp)) $headers[$hp[1]]=$v; } return $headers; }