Как предоставить разрешение apache для записи в домашний каталог?

Мой сервер находится в / 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.

Поскольку ваш файл находится в вашем домашнем каталоге, я бы предложил один из следующих подходов.

  1. Дайте разрешение 0777 на сам файл.

     chmod 0777 /home/djameson/test.txt 
  2. Измените право собственности на пользовательские www-данные apache и дайте разрешение на запись владельцу.

     sudo chown www-data:www-data /home/djameson/test.txt chmod 0744 /home/djameson/test.txt 
  3. Добавьте своего пользователя в группу 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 вещи:

  1. Добавьте пользователя apache (www-data на большинстве систем) в группу пользователей вашей системы. Возможно, вы захотите создать новый.
  2. Добавьте в эту группу пользователя «djameson».
  3. Измените разрешения владельца ( chown ) файла, чтобы он принадлежал пользователю django и группе, которую вы только что создали.
  4. Убедитесь, что разрешения на доступ к файлам ( chmod ) позволяют разрешить чтение группе.