Permissão de virtualhost do Apache negada com vários DocumentRoots diferentes testados. O que devo tentar em seguida?

2

Eu tenho uma versão auto-compilada do Apache 2 em execução no Mac OS X Leopard. É uma instalação padrão em / usr / local / apache2 e funciona bem.

Hoje eu queria adicionar um host virtual para poder acessar uma pasta específica com o nome de domínio http://binarytales.local

Por isso, adicionei 127.0.0.1 binarytales.local a /etc/hosts , verifiquei o cache do DNS e, yey, consegui acessar meu servidor por meio desse endereço.

Eu queria poder acessar, por meio do meu nome de domínio local recém-criado, uma subpasta no meu servidor da Web de trabalho. Então eu configurei o seguinte arquivo vhosts

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot /usr/local/apache2/htdocs
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /usr/local/apache2/htdocs/ProjectX
    ServerName binarytales.local
</VirtualHost>

Navegar para localhost funciona bem, recebo os arquivos que sempre usei. Navegar para binarytales.local me dá um erro interno no servidor.

Eu investiguei um pouco e descobri que tinha definido o htdocs como um link simbólico para /Users/me/Sites , então tentei definir meu vhost como

<VirtualHost *:80>
    DocumentRoot /Users/me/Sites/ProjectX
    ServerName binarytales.local
</VirtualHost>

Isso também não funcionou. Agora estou recebendo Forbidden You don't have permission to access / on this server.

Então, eu tentei DocumentRoot /Users/me/Sites e recebi a mesma mensagem proibida.

Finalmente eu tentei

        DocumentRoot / usr / local / apache2 / htdocs2         NomeDoServidor binarytales.local     

Onde /usr/local/apache2/htdocs2 é um link simbólico para Users/me/Sites/ProjectX . E também tentei com Users/me/Sites . Estou recebendo o mesmo erro "Proibido".

Eu verifiquei as configurações de usuário e grupo em tudo que é raiz / roda além do material em 'Usuários / mim / Sites /', que é eu / roda. Todos os diretores são chmod -x para todos.

Estou totalmente preso e não tenho a menor ideia do que tentar em seguida!

O título da minha pergunta é uma porcaria. Por favor, mude para / sugira algo melhor.

    
por Binarytales 27.09.2009 / 04:07

2 respostas

3

Ok, então consertei isso cerca de 5 minutos depois colocando isso

<Directory "/usr/local/apache2/htdocs/Binarytales">
    Options Indexes FollowSymLinks  
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

dentro da minha declaração virtualhost. Então, no final, lê-se assim:

NameVirtualHost *: 80

<VirtualHost *:80>
    DocumentRoot /usr/local/apache2/htdocs
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /usr/local/apache2/htdocs/Binarytales
    ServerName binarytales.local

    <Directory "/usr/local/apache2/htdocs/Binarytales">
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Eu acho que o suco mágico aqui é Options ... FollowSymLinks mas qualquer um tem uma boa explicação do porquê isso funciona, por favor me avise, ou se há uma solução melhor / alternativa.

    
por 27.09.2009 / 04:19
0

Eu teria tentado uma bind mount primeiro. Supondo que ele funcione no Mac OS X, como acontece no Linux:

mount --bind /path/one /path/two
    
por 27.09.2009 / 04:59