web-dev-qa-db-ja.com

PHP fopenが失敗します-書き込みモードでファイルを開く権限がありません

Fedora13でApache2.17サーバーを実行しています。ディレクトリにファイルを作成できるようにしたいです。

私はそんなことはできません。 fopen(、 'w')を書き込むためにphpでファイルを開こうとすると、それを実行する権限がないことが通知されます。

そこで、/ etc/httpd/conf /にあるhttpd.confファイルを確認しました。ユーザーApache、グループApacheと表示されます。そこで、/ wwwディレクトリ全体の所有権(chown -R Apache:apache。*)をApache:apacheに変更しました。 chmod -R777も実行します*

これがどれほど危険であるかを知っていることは別として、私が公開書き込みを許可していても、実際には同じエラーが発生します。

1
George

エラーログを確認してください。問題がわかります。私はそれがこれらの4つの事柄の1つに要約されると思います:
-PHP safe_modeはドメインに対して有効になっています。エラーログにより、これが明確になります。
-PHP open_basedirの制限が有効です。繰り返しになりますが、エラーログでこれが明らかになります。
-ドキュメントルートが間違っています
-親ディレクトリの許可が間違っています。

また、これらの権限をできるだけ早く変更してください。 PHPをApacheモジュールとして使用している場合、Webサイトが危険にさらされた場合、攻撃者はカスタムPHPスクリプトを記述し、それらを自由に実行できます。ブラウザ。

FC13を使用していて、aclを有効にしている場合は、chmod -R 777の代わりにsetfaclを使用することを検討してください。これはもう少し安全で(特定のユーザーにのみ指定)、元に戻すのが簡単です。
setfacl -R -m user:Apache:rwx /path/to/webroot
setfacl -d -R -m user:Apache:rwx /path/to/webroot

1
James L