Apache + PHP разрешения на запись в Unix - PullRequest
3 голосов
/ 14 февраля 2010

Я пытаюсь запустить PHP-сайт с apache на fedora, и у меня проблема с написанием разрешений. Похоже, у apache нет прав на запись в некоторые папки, но я не могу понять, почему.

Я проверил httpd.conf, и у него есть группа: apache, пользователь: 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 отказано в разрешении 1006 *

Пожалуйста, совет.

UPDATE: Кстати, если я сделаю «php newtest.php» из командной строки, файл temp.txt создается с корнем группы и пользователем root. Это просто не работает из браузера.

Ответы [ 4 ]

4 голосов
/ 15 февраля 2010

Предупреждение: 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.

С

0 голосов
/ 14 февраля 2010

ls -la / var / www / public

Просто чтобы проверить: -)

0 голосов
/ 15 февраля 2010

Я бы рекомендовал переключить apache на mod_itk как mpm и запустить определенный vhost с разрешениями корневого каталога документа владельца и содержащими сценарии php.

0 голосов
/ 14 февраля 2010

сделать chmod 775 для newtest.php;)

...