open_basedirはありません。phpは/ etc / usr / proc / homeなどにアクセスできますが、/ tmpにはアクセスできません。
tmpfsは/ tmp(/ tmpタイプtmpfs(rw))にマウントされます。これも/ tmpフォルダーを使用する理由です。
私のファイルはhttp(nginxとphpのユーザー)が所有し、誰でも読み取り可能です。
sudo -u http cat /tmp/file
動作していますが、phpスクリプト内のすべては動作しません(file_exist()やfile()など)。
編集:ログに表示されるエラー:
PHP Warning: file(/tmp/ydlw/pid): failed to open stream: No such file or directory in /srv/http/ydlw/status.php on line 267
edit2:問題を別の方法でテストしました。作った
touch("/tmp/boo");
file_exist("/tmp/boo");
file_existはtrueを返すため、ファイルが作成されます。次に、/ tmp内を監視しましたが、「boo」ファイルは見つかりませんでした。それは私が恐れていたことであり、PHPはマウントポイントを「見る」ことはありません。なぜですか、どうすれば修正できますか?
/tmp/ydlw/pid
存在し/tmp
ますか?そうでない場合、それがエラーメッセージの理由です。