Apache не может получить доступ к папкам в моем домашнем каталоге

Другой альтернативный ответ на этот вопрос:

Откройте Terminal из GUI для командной строки, используя Alt + Ctrl + T guake -p
1
задан 28 July 2013 в 08:24

3 ответа

Включить модуль userdir:

sudo a2enmod userdir

Включить выполнение PHP в каталоге пользователя:

sudo a2enmod userdir

sudo nano /etc/apache2/mods-available/php5.conf

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

Комментировать эту часть:

Включить список каталогов:

sudo nano /etc/apache2/apache2.conf

Нажмите Ctrl + X, чтобы сохранить

<Directory /home/*/public_html/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Добавьте это:

Нажмите Ctrl + X для сохранения

sudo service apache2 restart

Перезапустите apache (здесь также требуется sudo):

15
ответ дан 24 May 2018 в 19:36

Apache работает как пользователь www-data. Если у вас нет разрешения на выполнение в вашем доме, apache не сможет прочитать какой-либо файл.

Измените группу вашего дома на www-data:

chgrp www-data /home/dbugger

И дайте это разрешение только для прохождения вашего домашнего каталога:

chmod g+x /home/dbugger

Вы также можете ограничить разрешения /home/dbugger/html:

chgrp www-data /home/dbugger/html
chmod 750 /home/dbugger/html
9
ответ дан 24 May 2018 в 19:36
  • 1
    Могу ли я это сделать, но вместо /home/dbugger с помощью /home/dbugger/html? – Enrique Moreno Tent 28 July 2013 в 08:42
  • 2
    Вы также можете применить это разрешение к /home/dbugger/html вместо 777, но вы должны иметь в виду, что если пользовательские www-данные не могут cd до вашего дома, он не сможет получить доступ к любому файлу или вложенной папке. Итак, если ваше домашнее разрешение rwx------ dbugger:dbugger, apache не сможет получить доступ к любому файлу внутри вашего дома. Если вы немного ограничите доступ, вы можете попробовать дать только разрешение на выполнение (chmod g+x /home/dbugger), я не уверен, но я думаю, что это работает. – Eric Carvalho 28 July 2013 в 08:52
  • 3
    Извините, но ни одно из этих решений не срабатывало :( – Enrique Moreno Tent 28 July 2013 в 15:41
  • 4
    chgrp www-data /home/dbugger в сочетании с методом @DavidGreene заставил меня работать для меня – this.lau_ 19 January 2018 в 15:43

Вам не нужно изменять разрешения, если вы хотите использовать домашний каталог для размещения среды разработки, по крайней мере, вам нужны права на запись для некоторых приложений. Вам нужен модуль apache mod_userdir, и вы можете получить доступ к / home / user_name / public_html / * как этот http: //domain.local/~user_name/dir_name/* для использования виртуальных хостов, чтобы использовать модуль mod_userdir, который вам нужно создать sym link:

$ sudo ln -s /etc/apache2/mods-available/userdir.conf /etc/apache2/mods-enabled/
$ sudo ln -s /etc/apache2/mods-available/userdir.load /etc/apache2/mods-enabled/
$ sudo service apache2 restart
1
ответ дан 24 May 2018 в 19:36

Другие вопросы по тегам:

Похожие вопросы: