Мой сервер находится в / var / www / html У меня есть php-скрипт в /var/www/html/fileio_test/io_test.php
<?php $logging = <<< LOG This is a test LOG; $testfile = fopen('/home/djameson/test.txt', 'a'); fwrite ($testfile, $logging); fclose($testfile); ?>
Когда я пытаюсь запустить этот скрипт, я получаю
Warning: fopen(/home/djameson/test.txt): failed to open stream: Permission denied in /var/www/html/fileio_test/io_test.php on line 7 Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 8 Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/fileio_test/io_test.php on line 9
Как я могу позволить apache писать в мой домашний каталог? Сервер работает на Fedora 20.
Поскольку ваш файл находится в вашем домашнем каталоге, я бы предложил один из следующих подходов.
Дайте разрешение 0777 на сам файл.
chmod 0777 /home/djameson/test.txt
Измените право собственности на пользовательские www-данные apache и дайте разрешение на запись владельцу.
sudo chown www-data:www-data /home/djameson/test.txt chmod 0744 /home/djameson/test.txt
Добавьте своего пользователя в группу www-data или наоборот, добавьте пользователя www-data в свою группу. А затем групповое разрешение на запись.
sudo usermod -a -G www-data djameson chmod 0764 /home/djameson/test.txt
ПРИМЕЧАНИЕ. Я предполагаю, что имя и имя пользователя apache – это www-data & www-data, соответственно. Вы должны соответствующим образом изменить свое имя пользователя / группу сервера apache.
По умолчанию Apache на Ubuntu работает как www-data.
Предположим, что ваша папка находится в / var / www / mysite.
Вы можете сделать это:
chown -R www-data: www-data / var / www / mysite chmod -R og-r / var / www / mysite После этого www-data (веб-сервер) будет иметь полный доступ к файлам сайта, в то время как другие пользователи без полномочий root не будут иметь доступа вообще.
Если вы хотите разрешить пользователям выбирать доступ к сайту, вы можете сделать эту группу доступной для группы и добавить этих пользователей в WWW-данные группы.
Установите правильные разрешения для ваших файлов apache
Чтобы этот файл был доступен для чтения как для пользователя «djameson», так и для веб-сервера, вам нужно сделать 4 вещи:
chown
) файла, чтобы он принадлежал пользователю django и группе, которую вы только что создали. chmod
) позволяют разрешить чтение группе.