Apache + PHP записывает разрешения на unix

Я пытаюсь запустить 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.