Permissões de usuário no diretório de upload

Permissões de usuário no diretório de upload

O upload de arquivos através do meu site falha porque o Apache não é reconhecido como tendo acesso de gravação. No entanto, minhas permissões mostram o contrário. Alguma ideia?

Ao fazer upload via script, o script retorna

Error:  Directory is not writable

Diretório é /home/username/public_html/uploads
As permissões do diretório são drwxrwsr-x
O diretório é de propriedade do username:webadmins
Apache, é executado como www-datae é membro de gruposwww-data webadmins

O que devo mudar para que www-data (Apache) possa gravar neste diretório? Obrigado.

Responder1

Você pode tentar definir os direitos da pasta de uploads para 777 (acesso de leitura e gravação para todos os usuários). Mas isso não é seguro. Você não deve usar isso em um sistema de produção ou em um sistema com vários usuários. De qualquer forma, isso funcionaria assim sudo chown -R 777 /home/username/public_html/uploads

A outra (e melhor) maneira seria usar mod_ruid2 para Apache. Você pode baixá-lo aquihttp://sourceforge.net/projects/mod-ruid/

Você tem que compilá-lo e depois habilitar o módulosudo a2enmod ruid2

Com isto instalado e habilitado, você pode editar o arquivo de configuração do módulo userdirsudo nano /etc/apache2/mods-enabled/userdir.conf

Adicione o seguinte

<IfModule mod_ruid2.c>
RMode stat
RUidGid username usergroup
RGroups username usergroup
</IfModule>

Depois disso, você deve reiniciar o serviço Apachesudo service apache2 restart

Com esta configuração você pode usar o diretório public_html com seu usuário e grupo de usuários.

Mas isso só funciona se você tiver apenas um usuário com um userdir public_html Apache.

informação relacionada