
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-data
e é 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.