por que o Dropbox causaria problemas de path + permission com o caminho virtualhost do apache2 no Ubuntu?

1

Eu estou tentando criar um ambiente de desenvolvimento em minha máquina Ubuntu de 64 bits 12.04, e eu estava tendo o pior tempo para fazer o virtualhosts funcionar. Eu finalmente descobri qual era o problema, mas não consigo entender realmente.

Eu defino a raiz do documento para meus virtualhosts estar em meu diretório pessoal - a saber:

/ home / robert / Dropbox / www / pessoaville

Quando vou a www.personvillepress2.com no navegador, obtenho

Proibido Você não tem permissão para acessar / neste servidor. Apache / 2.2.22 (Ubuntu) Server em www.personvillepress2.com Port 80

Nos logs, vejo

[sáb Jun 16 09:55:25 2012] [crit] [cliente 127.0.0.1] (13) Permissão negada: /home/robert/Dropbox/.htaccess pcfg_openfile: não foi possível verificar o arquivo htaccess, garantir é legível

Mova meu diretório raiz de documentos para / home / robert / www / personville

modifique as configurações do virtualhost de acordo, recarregue e, de repente, tudo funciona! Isso é ruim porque eu quero manter toda a minha fonte dentro da minha pasta Dropbox para backup.

Minhas permissões para a pasta dropbox parecem normais:

robert@kundera-linux:~/Dropbox$ ls -al
total 1036
drwx------ 29 robert robert   4096 Jun 15 09:11 .
drwxr-xr-x 60 robert robert   4096 Jun 15 21:15 ..
-rw-rw-r--  1 robert robert     29 Jun 15 09:11 .dropbox
drwxrwxr-x  2 robert robert 262144 Jun 13 05:22 .dropbox.cache
drwxrwxr-x  5 robert robert   4096 Jun  9 00:00 www

Sem links simbólicos ou permissões raramente rigorosas. Além disso, não vejo nenhum problema de .htaccess que possa causar problemas (e por que o apache2 se importaria com os problemas de permissão do .htaccess acima da raiz do documento?)

Agradeço qualquer idéia de como resolver esse problema de uma forma que me permita manter os arquivos de origem no Dropbox.

O arquivo virtualhost não funcional está abaixo:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
ServerName  personvillepress2.com
      ServerAlias www.personvillepress2.com
    # DocumentRoot /var/www
    DocumentRoot /home/robert/Dropbox/www/personville

    <Directory /home/robert/Dropbox/www/personville>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>


    ErrorLog ${APACHE_LOG_DIR}/personvillepress2error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Atualização: vejo que outras pessoas já encontraram esse problema antes. link

Eu não estou realmente preocupado com segurança aqui - isso é uma caixa de desenvolvimento; Estou preocupado principalmente com backup e acesso de outras máquinas. Eu estou pensando em usar o git para implantar em um site ao vivo, então tudo que eu quero é uma forma de backup dos meus dados locais. Alguém pode sugerir uma solução? Obrigado.

    
por idiotprogrammer 16.06.2012 / 17:24

1 resposta

5

Parece-me um simples problema de permissões. No Ubuntu, o Apache é executado como usuário www-data group www-data . Como podemos ver no seu diretório listando as permissões no seu diretório ~/Dropbox (via . ) são drwx------ ou 700 . Assim, o Apache como www-data:www-data é negado acesso.

chmod 755 ~/Dropbox

provavelmente consertará o problema imediato. Em geral, você precisará fornecer o:rx permissões nos diretórios e o:r permissões nos arquivos para permitir que o Apache acesse os arquivos.

    
por 16.06.2012 / 18:46