Imはphpやファイルのパーミッションに慣れていません。しかし、私は非常に単純なスクリプトをセットアップした新しいサーバーに移行しました。
スクリプトが実行されるフォルダーは、ドキュメントルートにあります。フォルダーのアクセス許可は755に設定されます。
フォルダーの所有者はgstaです。ファイルの所有者はgstaです。
error_reportingをオンにして、以下を取得しています:
Warning: fopen(log.txt): failed to open stream: Permission denied in /var/www/html/log.php on line 13
私はもう試した:
chmod("log.txt", 0777)
PHPでも許可が拒否されます。
終わったよ:
ps -u | grep httpd
そして得た:
gsta 1012 0.0 0.0 108608 808 pts/3 S+ 22:45 0:00 grep --color=auto httpd
コード:
$filename = 'log.txt';
$handle = fopen($filename,"a+");
echo "fh:" . fwrite($handle, $payload . "\n") . $handle . "<br/>";
fclose($handle);
問題ではありませんが、PHPセーフモードはオフです
ファイルの所有者をnobodyに設定しようとしました(apacheはしばしばnobodyの下で実行されます。また、所有者をapacheに設定しようとしました。
私はグーグルでのすべての投稿とその基本的なことを常に見てきました。これは、別のサーバーで動作することがわかっているスクリプトです。この問題の原因となる設定を探して、php.iniをチェックしてみました。ファイルを削除しようとしました(その場合、ファイルを作成する必要があるため)
誰にもアイデアはありますか?私は考えることができるすべてを試しました。