Pukiwikiの使用PHPをPHP5に(さくらのレンタルサーバー)
id:otn:20080130 に、さくらのレンタルサーバーで使用しているPukiwikiのPHP5への切り替えについて、
一般ユーザでのページ表示は問題ないが、私がパッチを当てた管理者ユーザ機能だとFrontPageしか表示できない。他のページへのリンクをクリックしてもFrontPageが表示されてしまう。
と書いたが、原因を調べて対応した。
URLを整形しているのだが、「http://otnx.jp/CMD/バグ」と書くとOKで、「http://otnx.jp/CMD/edit.php/バグ」だと「バグ」のページじゃなくてFrontPageが表示されると言うことだ。
問題切り分けのために、「http://otnx.jp/CMD/index.php/バグ」を試してみると、これもだめ。と言うことで、PATH_INFOが取れないと言うことのようだ。
id:otn:20060603に下記のように書いた。三年前だ。
cgiのため、直接にPATH_INFOは参照できず、php.iniに、
cgi.fix_pathinfo=1
を指定した上で、ORIG_PATH_INFOを参照する。
デバッグコーディングを入れて、$_SERVER['ORIG_PATH_INFO'] を見ると空だ。その代わりに、$_SERVER['PATH_INFO'] に値が入っている。どうもこの点の仕様がPHP4からPHP5になったことで変わっているようだが、ぐぐってもそのあたりの情報がない。現実がそうなので、調査はほどほどにして、「ORIG_PATH_INFO」の部分を「PATH_INFO」に書き換えてOK。
もしかしてと思って、cgi.fix_pathinfo=0 にしてみたがエラーになるので、やっぱりこの設定は必要そう。