プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHPのセーフモードについて。
A.phpをrequire_onceして動くB.phpを用意し、
トリガーによってB-1.php、B-2.phpとファイルコピーしていく機能を作成。

ところがどっこい、B-1.php、B-2.phpにアクセスすると
以下のワーニングが出ちゃったそーな。

Warning: require_once() [function.require-once]: SAFE MODE Restriction
in effect. The script whose uid is 48 is not allowed to access
うんちゃら owned by uid 10001 in ほげほげ on line X

この原因はPHPのセーフモードによる制限らしい。

所有者が「FTPユーザ」でアップロードされたA.phpに
Apacheさんが作成したB-1.php、B-2.phpがアクセス(require-once)しようとして
「人のファイルに勝手にアクセスすんなや!」と怒られているんだってさ。

解決方法は

1.セーフモードを解除する
2.PHPをCGIモードで動かす
3.A.phpの所有者をApacheに合わせる
4.諦める

等。

ちなみにmkdir()なんかでも同じ問題が起こりうるらしいですね。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:PHP - genre:コンピュータ  Posted by ササキマコト 

  関連記事