403 Erro proibido no host local do Mac OS X

22

Eu configurei o Web Sharing nas Preferências do Sistema no Mac OS X 10.6 e cliquei no link que ele me deu lá. Unfortuantely, o Apache me deu este erro 403:

Forbidden

You don't have permission to access /~myusername/index.html on this server.

O log de acesso é exibido: 10.0.1.2 - - [30/Jun/2010:16:25:15 -0700] "GET /~myusername/ HTTP/1.1" 403 210

O log de erros é exibido: [Wed Jun 30 16:26:09 2010] [error] [client 10.0.1.2] client denied by server configuration: /Users/myusername/Sites/

Curiosamente, o acesso ao link funciona bem. É apenas com duas das pastas do usuário que estou tendo problemas, a outra pasta de usuário, que é mais recente que a atualização do meu sistema, está funcionando bem.

Eu já tinha esse trabalho na minha máquina no Leopard antes, então fiz tudo em ~/Sites para 755, o que não adiantou nada. Alguma sugestão? Eu presumo que eu tenha feito algo para a minha máquina que causou isso, já que não consigo imaginar a Apple bagunçando algo assim.

Eu configurei o PEAR com estas instruções , mas não tenho ideia se isso poderia ser a causa disso.

    
por waiwai933 01.07.2010 / 01:05

8 respostas

22

A Apple tem um documento de suporte para este problema . Corrigir o problema envolve a criação de um arquivo /etc/apache2/users/yourusername.conf ( seu_usuário sendo a conta nome abreviado , por exemplo danielbeck - geralmente é o nome da sua pasta pessoal em /Users ) com o seguinte conteúdo:

<Directory "/Users/yourusername/Sites/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Depois, execute sudo chown root:wheel /etc/apache2/users/yourusername.conf e reinicie o Apache.

    
por 01.11.2010 / 12:51
15

Para o Apache ver o arquivo, o usuário que o Apache executa como (provavelmente www ou _www ) deve ter acesso aos diretórios de Sites desses usuários. Ter acesso de leitura / execução ao conteúdo de ~/Sites não é suficiente, porque ele deve ter permissão para percorrer de / o caminho para ~/Sites . Portanto, certifique-se de que / , /Users , /Users/myusername e /Users/myusername/Sites tenham pelo menos a+x permission (o bit eXecute nos diretórios permite que essa classe de usuário atravesse o diretório, mesmo que o acesso Read não seja permitido) .

ls -lde / /Users/ /Users/myusername/ /Users/myusername/Sites

Se algum desses diretórios não mostrar o último x set (aquele para "outros"), use algo como chmod a+x ... para configurá-lo para esse diretório.

Se a ACL de qualquer um desses diretórios mostrar que o usuário www foi especificamente negado, use os argumentos apropriados para chmod para corrigir as ACLs.

    
por 01.07.2010 / 03:39
5

Para referência, eu acabei de lidar com isso, e nenhuma das respostas aqui funcionou no meu caso específico. Eu estava configurando hosts virtuais, mas mais importante, eu precisava que meus arquivos htaccess realmente funcionassem.

Alterei "AllowOverride None" para "AllowOverride All" no meu arquivo /etc/apache2/users/USERNAME.conf, e todos os meus sites começaram a ser proibidos.

Eu mudei de volta e, em seguida, mudei apenas para um site no meu arquivo httpd-vhosts.conf, e apenas esse site foi proibido.

Depois de olhar os logs e ver que o problema estava com a reescrita do URL e a falta de FollowSymLinks, voltei ao arquivo USERNAME.conf. Eu alterno "AllowOverride None" para "AllowOverride All" e adicionei "Options + FollowSymLinks" na próxima linha.

As coisas começaram a funcionar. Eu vim usando o xampp no windows e ele tinha muitas dessas configurações já definidas para todo o servidor para idiotas como eu.

    
por 04.01.2012 / 05:11
2

Eu tive o mesmo problema: minha (antiga) conta não estava acessível, mas a conta de outro usuário que foi criada após a atualização para o Lion funcionou muito bem.

Depois de se certificar de que o seu /etc/apache2/users/USERNAME.conf se parece com isto:

<Directory "/Users/USERNAME/Sites/">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

faça um     sudo chown root: roda /etc/apache2/users/USERNAME.conf

parece que essa configuração de permissão não está definida durante a atualização do sistema operacional, e o usuário do Apache não pode ler o arquivo de configuração e gera um erro.

Pelo menos isso resolveu para mim.

    
por 05.09.2011 / 22:48
2

atualização para o Leão em 10/2011 Eu também tive que adicionar

UserDir ativado para que meu /etc/apache2/extra/httpd-userdir.conf é assim:

UserDir enabled 
UserDir Sites

#
# Users might not be in /Users/*/Sites, so use user-specific config files.
#
Include /private/etc/apache2/users/*.conf

<IfModule bonjour_module>
   RegisterUserSite customized-users
</IfModule>
    
por 27.10.2011 / 18:22
1

Continuação da conversa a partir dos comentários iniciais da pergunta - Confira o seu arquivo /etc/apache2/httpd.conf . Na minha máquina, eu tenho isso:

# User home directories
Include /private/etc/apache2/extra/httpd-userdir.conf

Eu suspeito que o seu tenha sido comentado. Eu me lembro vagamente de mudar isso manualmente ao passar de 10,5 para 10,6 e o padrão mudou.

Isso provavelmente é óbvio, mas você terá que usar sudo para editar o arquivo porque ele será de propriedade de root.

    
por 01.07.2010 / 04:39
1

Meu caso é XAMPP + Mac OS X 10.7 + Diretório na pasta Dropbox (referência cruzada a outro pergunta no Stack Overflow)

403 O Access Proibido é relatado pelo Apache, portanto, eu segui o comentário acima para alterar o usuário no /XAMPP/xamppfiles/etc/httpd.conf , de User nobody para User my_user_name . Reinicie o Apache & funciona bem.

    
por 06.05.2013 / 10:39
0

Você provavelmente não tem Índices ativados. Caso contrário, você precisará criar um arquivo de índice ( index.html ou index.php ) ou especificar o arquivo explicitamente, ou seja, http://localhost/~me/mypage.html .

    
por 01.07.2010 / 02:21