403 Erro Proibido ao tentar visualizar o host local no Apache

4

Acho que meu Apache deve estar todo bagunçado. Eu não sei se isso funcionou. Acabei de atualizar para o Snow Leopard, e o primeiro passo em este tutorial é iniciar o apache e verificar se ele está funcionando abrindo < um link href="http: // localhost"> . Ele começa bem, mas quando eu vou ao localhost eu recebo um erro proibido 403.

Eu não sei onde começar a descobrir como consertá-lo, então me pergunto se uma nova instalação do Apache faria o truque.

O que você acha?

Atualização: encontrei alguns logs de erro em /private/var/log/apache2/ . Encontrei isso em um dos logs. Não tem certeza do que significa:

[Tue Nov 10 17:53:08 2009] [notice] caught SIGTERM, shutting down
[Tue Nov 10 21:49:17 2009] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist
Warning: DocumentRoot [/usr/docs/dummy-host2.example.com] does not exist
httpd: Could not reliably determine the server's fully qualified domain name, using Andrews-Mac-Pro.local for ServerName
mod_bonjour: Skipping user 'andrew' - cannot read index file '/Users/andrew/Sites/index.html'.
[Tue Nov 10 21:49:19 2009] [notice] Digest: generating secret for digest authentication ...
[Tue Nov 10 21:49:19 2009] [notice] Digest: done
[Tue Nov 10 21:49:19 2009] [notice] Apache/2.2.11 (Unix) mod_ssl/2.2.11 OpenSSL/0.9.8k DAV/2 PHP/5.3.0 configured -- resuming normal operations

Atualização: também encontrei algo no arquivo dummy-host.example.com-error_log . Eu não coloquei essas coisas de manequim por sinal. Esta é a configuração padrão?

[Tue Nov 10 21:59:57 2009] [error] [client ::1] client denied by server configuration: /usr/docs

Atualização: Woohoo! Eu encontrei o arquivo que tinha as definições do host virtual. Estava em /etc/apache2/extra/httpd-vhosts.conf . Ele tinha essas duas configurações de host virtuais fictícias lá. Eu adicionei um host virtual localhost . Não tenho certeza se isso é necessário, mas como não estava funcionando antes, decidi fazê-lo de qualquer maneira. Depois de remover os hosts virtuais antigos, adicionar meu novo host virtual localhost e reiniciar o apache, parece funcionar. Então eu acho que sempre que eu quero adicionar um host virtual, eu só preciso adicioná-los a este arquivo? Ou existe um arquivo hosts em algum lugar, como no Linux?

Atualização: Sim, há um arquivo /etc/hosts que precisa ser alterado para. Adicione o nome do host virtual ao arquivo.

    
por Andrew 11.11.2009 / 07:11

2 respostas

2

Se você está recebendo um erro 403, provavelmente significa que o diretório não existe ou os privilégios nesse diretório não permitem que você o veja.

Meu problema é que as configurações padrão do host virtual apontavam para um diretório que não existia.

Então, aqui está o que você deve fazer: (supondo que você esteja no Snow Leopard)

  1. Encontre e abra o arquivo de configuração de hosts virtuais.

    pico /etc/apache2/extra/httpd-vhosts.conf
    
  2. Verifique se suas definições de host virtual estão lá, caso contrário, crie-as

    <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot "/Users/yourusername/Sites/mysite"
    ServerName mysite.local
    ErrorLog "/private/var/log/apache2/mysite-error_log"
    CustomLog "/private/var/log/apache2/mysite-access_log" common
    </VirtualHost>
    
  3. Abra o arquivo /etc/hosts e adicione seu nome de host virtual. Isto é o que está no meu:

    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1          localhost
    255.255.255.255    broadcasthost
    ::1                localhost 
    fe80::1%lo0        localhost
    
    # VIRTUAL HOST START
    127.0.0.1          localhost
    127.0.0.1          mysite.local
    # VIRTUAL HOST STOP
    
  4. Agora reinicie o Apache e você deve estar pronto!

    sudo apachectl restart
    
por 11.11.2009 / 17:57
0

Também é rotulado como um aviso, é realmente a linha crítica no seu log de erros:

Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist

O Apache está procurando por um diretório que conterá os arquivos que serão resolvidos quando você conversar com ele. Aparentemente, este diretório não existe e, portanto, o Apache não é capaz de resolver nada. Crie o diretório e coloque um arquivo index.html lá ou edite seu arquivo de configuração para apontar o Apache para outro diretório.

    
por 11.11.2009 / 12:12