Я пытаюсь запустить PHP-сайт с apache на Fedora, и у меня есть проблема с правами на запись. Похоже, у Apache нет прав на запись в некоторые папки, но я не могу понять, почему.
Я проверил httpd.conf, и у него есть группа: apache, user: apache. Затем я сделал: chown -R apache: apache www и установил 777 разрешений для папок, но он все еще говорит:
Предупреждение: file_put_contents (/var/www/public/temp.txt) [function.file-put-contents]: не удалось открыть поток: разрешение отклонено в /var/www/public/newtest.php в строке 8
Пожалуйста посоветуй.
UPDATE: Btw, если я делаю «php newtest.php» из командной строки, файл temp.txt создается с помощью root и root пользователя. Это просто не работает из браузера.
Предупреждение: file_put_contents (/var/www/public/temp.txt) [function.file-put-contents]: не удалось открыть поток: разрешение отклонено в /var/www/public/newtest.php в строке 8
Здесь очень много плохого.
Давайте начнем с того факта, что вы действительно хотите сохранить файлы записи в формате httpd вдали от своего кода – конечно, в отдельном каталоге, предпочтительно вне корневого каталога документа.
chown -R apache: apache www и установить 777 разрешений для папок
И вы проверяли, какими были разрешения на самом деле? Кстати, см. Также пункт выше – если вы сделали весь сайт доступным для записи всем, тогда вы просто просите о неприятностях. Вы, конечно, не изменяете ОБОИХ владельца и разрешения.
Вы включили SELinux? (запустите sestatus как root). Если это так, вам нужно либо отключить его, либо узнать, как его настроить, но я бы порекомендовал вам сначала взять на себя старомодные разрешения, а затем отключить SELinux.
C.
сделать chmod 775 на newtest.php;)
ls -la / var / www / public
Просто чтобы проверить 🙂
вы пытались дотронуться до temp.txt и просто изменить file_put_contents () и добавить флаг FILE_APPEND?
Я бы рекомендовал переключить apache на mod_itk как mpm и запустить конкретный vhost с разрешениями корневого каталога документа владельца и содержать скрипты php.