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é dei minha /home/dbugger/html
permissão 777. Mas continuo recebendo a mesma mensagem de erro em http://localhost
: "403 Proibido"
O que é que estou perdendo?
/home/dbugger
permissão?Respostas:
Isso funcionou para mim
O importante foi mudar
para
fonte
Allow from all
do apache 2.4 em diante - serverfault.com/questions/549517/…AllowOverride
aAll
na sua raiz diretório é imprudente no melhor! Consulte httpd.apache.org/docs/2.4/mod/core.html#allowoverride para obter detalhes.Ativar
userdir
módulo:Ative a execução do PHP no diretório do usuário:
(Ou se estiver usando o php7.0, por exemplo)
Comente esta parte (coloque
#
no início de cada linha):Pressione Ctrl+ Xpara salvar
Ative a listagem de diretórios:
Adicione isso:
Pressione Ctrl+ Xpara salvar
Reinicie o apache (
sudo
necessário aqui também):Agora coloque seus arquivos php no
/home/yourname/public_html
diretório e vá para ohttp://localhost/~yourname
seu navegador.fonte
O Apache é executado como usuário
www-data
. Se ele não tiver permissão de execução em sua casa, o apache não poderá ler nenhum arquivo.Mude o grupo da sua casa para
www-data
:E dê permissão apenas para percorrer o diretório inicial:
Você também pode restringir as permissões de
/home/dbugger/html
:fonte
/home/dbugger
usar/home/dbugger/html
?/home/dbugger/html
invés do 777, mas lembre-se de que, se o usuário www-datacd
não puder acessar sua casa, ele não poderá acessar nenhum arquivo ou subpasta. Portanto, se sua permissão de casa forrwx------ dbugger:dbugger
apache, não será possível acessar nenhum arquivo dentro de sua casa. Se você não quiser restringir um pouco o acesso, tente dar apenas permissão de execução (chmod g+x /home/dbugger
), não tenho certeza, mas acho que funciona.chgrp www-data /home/dbugger
em combinação com o método @DavidGreene tenho que trabalhar para mimsudo usermod -a -G dbugger www-data
, depois disso você precisa reiniciar o apache.Você não precisa alterar as permissões se quiser usar o diretório inicial para hospedar o ambiente de desenvolvimento, pelo menos que precise de permissões de gravação para alguns aplicativos. Você precisa do módulo apache mod_userdir e pode acessar / home / user_name / public_html / * como este http: //domain.local/~user_name/dir_name/ * para usar hosts virtuais, para usar o módulo mod_userdir é necessário criar um sym link como este:
fonte
a2enmod userdir