本サイト/記事は移転しました。

約10秒後にリダイレクトします。

ロリポップサーバのphp5化

 私が管理人を務める某サイトをホスティングしているロリポップサーバのphpが5になったおかげで、この数日500を出してこけていた。php5になったところで動かなくなるようなスクリプトはないと思って何も対策をしていなかった。

 こけた理由はドキュメントルートの.htaccess内のphp_value include_pathが無効になったこと。これですべてのページが500番エラーを出していた。この部分をコメントアウトして復帰。

 当然ながら今までのincludeとかrequireは使えない、かと思ったらカレントディレクトリのファイルは問題ない。つまりはpathが通らないだけ。
 PEARを読み込んでいるところをフルパスで書いたが、他のPEARモジュールを読むところでエラーになってしまう。PEARの修正は避けたい。で調べてみて見つけたのがこの解決策。

.htaccess

デフォルトPEARが使えなかったのでローカルにインストールして .htaccessでinclude_pathの設定をローカルPEARにしてましたが PHP5にすると.htaccessPHPの設定を行えない模様。 スクリプト

ini_set("include_path", "ローカルPEARへのパス");

を追加。

 無事復帰しました。月曜は東京宿泊出張、昨日は仕事上の酒につきあって午前1時帰宅という事情で、対処が遅れてしまった。

 初期のロリポップPHP5では、下のページに書いてあるようにファイルオーナーが以前の環境のままなので削除とか修正ができないという問題があったようだが、今回の強制移行時には解消されていたようだ。
ロリポップでPHP5を使ってディレクトリやファイルを削除する方法 - KEINOSの日記