Назад | Перейти на главную страницу

Ошибка PHP fopen - нет разрешения на открытие файла в режиме записи

У меня есть сервер Apache 2.17, работающий на Fedora 13. Я хочу иметь возможность создать файл в каталоге.

Я не могу сделать это. Всякий раз, когда я пытаюсь открыть файл с php для записи fopen (, 'w'), он сообщает мне, что у меня нет на это разрешения.

Итак, я проверил файл httpd.conf в / etc / httpd / conf /. Там написано пользовательский apache, групповой apache. Поэтому я сменил владельца (chown -R apache: apache. *) Всего моего каталога / www на apache: apache. Я также запускаю chmod -R 777 *

Помимо того, что я знаю, насколько это ужасно опасно, на самом деле это все равно дает мне ту же ошибку, даже если я даже разрешаю публичную запись!

Проверьте журнал ошибок, он расскажет вам о проблеме. Я думаю, что все сводится к одной из следующих четырех вещей:
- PHP safe_mode включен для домена. Журнал ошибок прояснит это.
- Действуют ограничения PHP open_basedir. Опять же, журнал ошибок прояснит это.
- У вас неправильный корень документа
- У родительского каталога неправильные разрешения.

Кроме того, как можно скорее измените эти разрешения. Если вы используете PHP в качестве модуля apache, в случае взлома вашего веб-сайта злоумышленник сможет писать собственные сценарии PHP и выполнять их по желанию через браузер.

Если вы используете FC13 и у вас включен acl, рассмотрите возможность использования setfacl вместо chmod -R 777 - это немного более безопасно (указано только для определенных пользователей) и его легче отменить:
setfacl -R -m user:apache:rwx /path/to/webroot
setfacl -d -R -m user:apache:rwx /path/to/webroot.