Я изменил конфигурацию Apache, чтобы она указывала на папку в моем домашнем каталоге:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/dbugger/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/dbugger/html/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Я даже дал свое /home/dbugger/html
разрешение 777. Но я продолжаю получать одно и то же сообщение об ошибке по адресу http://localhost
: «403 Forbidden»
Чего мне не хватает?
/home/dbugger
разрешения?Ответы:
Это сработало для меня
Важным моментом было изменить
в
источник
Allow from all
начиная с Apache 2.4 и выше - serverfault.com/questions/549517/…AllowOverride
вAll
вашем корневом каталоге в лучшем случае безрассудна! См. Httpd.apache.org/docs/2.4/mod/core.html#allowoverride для получения подробной информации.Включить
userdir
модуль:Разрешить выполнение PHP в пользовательском каталоге:
(Или, например, с использованием php7.0)
Прокомментируйте эту часть (ставьте
#
в начале каждой строки):Нажмите Ctrl+, Xчтобы сохранить
Включить список каталогов:
Добавь это:
Нажмите Ctrl+, Xчтобы сохранить
Перезапустите Apache (
sudo
требуется здесь также):Теперь поместите ваши php-файлы в
/home/yourname/public_html
каталог и перейдитеhttp://localhost/~yourname
из вашего веб-браузера.источник
Apache работает как пользователь
www-data
. Если у вас нет разрешения на выполнение в вашем доме, apache не сможет прочитать ни одного файла.Измените свою домашнюю группу на
www-data
:И дайте ему разрешение только пройти через ваш домашний каталог:
Вы также можете ограничить разрешения
/home/dbugger/html
:источник
/home/dbugger
использовать/home/dbugger/html
?/home/dbugger/html
вместо 777, но вы должны иметь в виду, что если пользователь www-данныхcd
не сможет попасть к вам домой, он не сможет получить доступ к какому-либо файлу или подпапке. Таким образом, если у вас есть разрешениеrwx------ dbugger:dbugger
на доступ к дому, apache не сможет получить доступ к файлам внутри вашего дома. Если вы не хотите немного ограничивать доступ, попробуйте дать только разрешение на выполнение (chmod g+x /home/dbugger
), я не уверен, но я думаю, что это работает.chgrp www-data /home/dbugger
в сочетании с методом @DavidGreene заставил его работать на меняsudo usermod -a -G dbugger www-data
, после этого вам нужно перезапустить apache.Вам не нужно менять разрешения, если вы хотите использовать свой домашний каталог для размещения среды разработки, по крайней мере, вам нужны разрешения на запись для некоторых приложений. Вам нужен модуль apache mod_userdir, и вы можете получить доступ к / home / user_name / public_html / * как этот http: //domain.local/~user_name/dir_name/ * для использования виртуальных хостов, чтобы использовать модуль mod_userdir, вам нужно создать sym ссылка, как это:
источник
a2enmod userdir