Skip to content

Rodando uma aplicação Django no Apache com usuário e grupo específico

Nos últimos dias, tive um problema aonde ao tentar fazer o upload de imagens em uma aplicação Django rodando em um apache, apresentava o erro “IOError: [Errno 13] Permission denied:”. Revisei as permissões, e vi que todos os diretórios tinham como dono o usuário e grupo do cliente em questão. Como teste, dei permissão 777 (rwxrwxrwx) no diretório para onde os arquivos de upload eram enviados e subi uma imagem para testes. Vi que o arquivo ficou com o dono/grupo dono como “www-data”, usuário padrão do Apache. Visto isso, surgiu a dúvida: Como rodar essa aplicação com o usuário e grupo correto?

Por padrão, para rodar uma aplicação Django teremos a seguinte configuração no apache:

WSGIScriptAlias / /var/www/vhosts/cliente.com.br/httpdocs/wsgi.py

O que temos que fazer é adicionar duas configurações acima desta, WSGIDaemonProcess que define um novo daemon para rodar aplicações e o WSGIProcessGroup, que define qual o daemon será utilizado para rodar a aplicação que está sendo configurada.

WSGIDaemonProcess [ID unico Daemon] user=[usuario] group=[grupo]
WSGIProcessGroup [ID unico Daemon]

Exemplo:

WSGIDaemonProcess cliente.com.br user=cliente group=psacln
WSGIProcessGroup cliente.com.br
WSGIScriptAlias / /var/www/vhosts/cliente.com.br/httpdocs/wsgi.py

Feito a configuração, basta reiniciar o apache

service apache2 restart

Se tiver sido feito tudo corretamente, através do comando “ps aux” será possível ver um processo do apache2 rodando com o usuário que foi definido.

Published inApacheDjangoSem categoriaWeb

Be First to Comment

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *