svn e propriedades dos arquivos do servidor web

1

Tenho um problema com as propriedades dos arquivos.

Eu tenho um site drupal e a pasta "files" precisa ser de propriedade de "www-data" para permitir que os usuários façam upload de arquivos com php.

No entanto, estou usando o svn e preciso que todas as pastas e arquivos sejam de propriedade do meu usuário do Ubuntu para funcionar.

Os arquivos têm 775 permissões, portanto, tanto o usuário quanto o grupo têm acesso total aos arquivos.

Eu adicionei meu usuário do ubuntu ao grupo www-data, mas ele ainda não funciona. Eu não sei porque. Eu tentei mudar o grupo para o meu grupo de usuários do Ubuntu, mas ainda não funciona.

Eu também tentei configurar meu usuário do Ubuntu como proprietário, e www-data como grupo, mas neste caso o script webserver php não pode mais enviar arquivos para a pasta (e isso é estranho novamente porque o grupo tem privilégios totais ).

    
por aneuryzm 05.01.2011 / 09:31

1 resposta

2

Em qualquer tipo de desenvolvimento web, geralmente existem várias boas razões para lidar com o desenvolvimento de forma diferente da produção. É conveniente ter uma cópia local do seu site em seu diretório inicial para desenvolvimento, mas aceite que não há problema em algumas coisas não funcionarem totalmente até que você as envie para o ambiente de produção.

Você não deve tentar vincular o esquema de permissão do Drupal e seu esquema de permissão de conta de usuário. Deixe as coisas Drupal de produção viverem em /var/www/html ou onde, com todas as permissões que deixam Apache / PHP / Drupal felizes. Deixe sua árvore de desenvolvimento pertencer a você.

Sempre que você terminar de trabalhar em um novo recurso para o site, use algum tipo de ferramenta de sincronização para enviar as alterações do desenvolvedor para a produção, além de obter novas permissões ao longo do caminho.

Pessoalmente, eu uso rsync para isso. Isso tem a boa vantagem de o servidor de produção poder estar na Internet, já que o tunelamento de rsync a ssh é trivial. Esse é um recurso importante no desenvolvimento da web, já que geralmente há boas razões para hospedar seu site em um servidor que não está em sua própria LAN. Eu uso um comando como este para meus sites:

rsync -lprtvD -e ssh --delete \
        --exclude \*.swp \
        --exclude .svn \
        --exclude GNUmakefile \
        ./ [email protected]:/var/www/html

Esse comando fará com que os arquivos sejam de propriedade do usuário www em www.mysite.com , dissociando o esquema de permissão dev da produção.

Parece que você quer usar o SVN, o que é bom. Você só precisa fazer com que as caixas de desenvolvimento e de produção possam ver o servidor SVN. Como no rsync, você quer estar tunelando o protocolo SVN através de ssh aqui, por segurança. Quando chegar a hora de enviar uma alteração para a produção, verifique-a no SVN e, em seguida, verifique-a na caixa de produção. Na verdade, eu recomendo usar svn export em vez de svn checkout para evitar o espalhamento de subdiretórios .svn em toda a árvore do seu servidor web. O método rsync evita isso com as regras --exclude .

    
por 05.01.2011 / 14:50