Apache - como servir de um diretório dentro da pasta home, ao passo que a pasta home não tem nenhuma permissão pública

1

Estou usando o Apache2 para propósitos de desenvolvimento completamente locais. Estou tentando tornar DocumentRoot /home/vikrant/www/ , enquanto as permissões /home/vikrant/ são 700 .

Estou recebendo 403 Forbidden quando DocumentRoot é /home/vikrant/www/ , mas Funciona! quando DocumentRoot é /var/www/ .

Eu até alterei as permissões de /home/vikrant/www/ para 777 e mudei proprietário e grupo para www-data .

É possível servir a partir do diretório home, enquanto o diretório home não tem permissões públicas? Se sim, então como?

    
por Vikrant Chaudhary 17.03.2010 / 12:10

3 respostas

1

Vincule seu / Var / www / ao seu wikrant www em sua casa e certifique-se de que o proprietário do daemon do apache tenha lido as permissões nessa pasta.

ln -s / home / vikrant / www / var / www / vikrant chmod -Rg + w / var / www / vikrant

ls -alt / var / www / vikrant # verifica qual grupo é o proprietário.

ps axu | grep apache2 # verifica o dono do daemon do apache.

adicione o proprietário do daemon apache ao grupo que possui os arquivos / var / www / vikrant.

    
por 17.03.2010 / 12:17
1

Você precisa de pelo menos 711 permissões em /home/vikrant . Um usuário precisa ter direitos de execução (+ x ou 1) em um diretório para acessar qualquer coisa abaixo dele.

    
por 17.03.2010 / 12:46
0

Verifique sua configuração um pouco mais. Sua configuração padrão do Apache provavelmente está instalada simplesmente porque não permite tráfego para /. Para esse assunto, provavelmente está configurado apenas para permitir o tráfego para / var / www.

Além de configurar permissões de diretório (e como o cara acima de mim disse, você precisará pelo menos executar outro para percorrer o diretório), você quer ter certeza de que você tem algo como o seguinte configurado:


    
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
        Order allow,deny
        allow from all
    

Se você seguir a solução acima e apenas criar um link simbólico de / var / www de volta para seu diretório pessoal, você precisará certificar-se de que o Apache foi informado que não há problema em seguir os links simbólicos, adicionando FollowSymLinks à sub-rotina Options da raiz do documento existente.

Por último, se você estiver usando o CGI sob suExec, o link simbólico é sua melhor aposta, pois o suExec tem um caminho "seguro" compilado. Existe uma maneira fácil de contornar isso se você estiver usando uma distribuição Debian, no entanto.

No entanto, outra abordagem seria simplesmente definir um novo host virtual baseado em nome que aponte para o diretório inicial.

    
por 17.03.2010 / 18:57