PHP SAFE MODE の制限に関する問題
safe_mode が on に設定されている場合、PHP は現在のスクリプトの所有者が、file 関数またはそのディレクトリを通じて操作されるファイルの所有者と一致するかどうかを確認します。例: -rw-rw-r-- 1 rasmus rasmus 33 Jul 1 19:20 script.php
-rw-r--r-- 1 root root 1116 May 26 18:01 /etc/passwd
script.phpreadfile('/etc/passwd');
?>
を実行します。セーフ モードが有効になっている場合、次のエラーが発生します: 警告: セーフ モード制限が有効です。 uid が 500 のスクリプトは、/docroot/script.php の 2 行目で uid 0 が所有する /etc/passwd へのアクセスを許可されません
理由は、セーフ モードを使用していて、ファイルをアップロードしたユーザーの uid が所有者の uid と異なるため、アクセス権がないためです。たとえば、セーフ モードでは、ftp アップロード ユーザーの uid が 123 で、アップロード所有者の uid が 456 の場合、このようなエラーが発生します。
1.セーフモードをオフにする
2.コマンドラインで chown してファイル/ディレクトリの所有者を変更します
もちろん、どちらの方法でもサーバー権限が必要です。