Isso funcionou para mim
<Directory />
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
Allow from all
</Directory>
O importante foi mudar
Order allow, deny
para
Require all granted
Alterei a configuração do Apache para apontar para uma pasta no meu diretório pessoal:
<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>
Eu até mesmo dei minha /home/dbugger/html
permission 777. Mas continuo recebendo a mesma mensagem de erro em http://localhost
: "403 Forbidden"
O que eu sinto falta?
Isso funcionou para mim
<Directory />
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
Allow from all
</Directory>
O importante foi mudar
Order allow, deny
para
Require all granted
userdir
module: sudo a2enmod userdir
sudo nano /etc/apache2/mods-available/php5.conf
(Ou se estiver usando o php7.0, por exemplo)
sudo nano /etc/apache2/mods-available/php7.0.conf
Comente esta parte (coloque #
no início de cada linha):
#<IfModule mod_userdir.c>
# <Directory /home/*/public_html>
# php_admin_flag engine Off
# </Directory>
#</IfModule>
Pressione Ctrl + X para salvar
sudo nano /etc/apache2/apache2.conf
Adicione isto:
<Directory /home/*/public_html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Pressione Ctrl + X para salvar
Reinicie o apache ( sudo
exigido aqui também):
sudo service apache2 restart
Agora, coloque seus arquivos php no diretório /home/yourname/public_html
e acesse % http://localhost/~yourname
do seu navegador da Web.
O Apache é executado como usuário www-data
. Se não tiver permissão de execução em sua casa, o apache não poderá ler nenhum arquivo.
Altere o grupo da sua casa para www-data
:
chgrp www-data /home/dbugger
E dê permissão apenas para percorrer o seu diretório pessoal:
chmod g+x /home/dbugger
Você também pode restringir as permissões de /home/dbugger/html
:
chgrp www-data /home/dbugger/html
chmod 750 /home/dbugger/html
Você não precisa alterar as permissões se quiser usar o seu diretório pessoal para hospedar o ambiente de desenvolvimento, pelo menos que você precise de permissões de gravação para alguns aplicativos. Você precisa do módulo mod_userdir do apache e pode acessar / home / user_name / public_html / * como este link * para usar um virtual hosts, para usar o módulo mod_userdir você precisa criar um link sym como este:
$ 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
Tags apache2