o servidor apache não pode gravar em arquivos de log

2

Estou desenvolvendo um aplicativo Django e estou tendo um problema com arquivos de log. Eu tenho um logger configurado para gravar em /var/log/django/django.log . Quando tento iniciar o servidor, recebo um erro 500 e o log de erros diz

ValueError: Unable to configure handler 'djangologfile': [Errno 13] Permission denied: '/var/log/django/django.log'
"httpd/error_log" 480L, 61112C

As permissões para django.log e o diretório django são 777. Por que o servidor não pode gravar no arquivo?

    
por ewok 09.10.2015 / 17:11

1 resposta

1

Provavelmente SELinux está bloqueando essa tentativa de gravação. Você pode desativá-lo executando o seguinte comando:

setenforce 0

Ou crie uma regra para permitir que ela seja gravada. Para fazer isso, verifique o arquivo de log do sistema e copie a linha que "negou", deve ser assim:

audit(...): avc:  denied  { write } for  pid=27984 comm="httpd" name="httpd" dev=sda6 ino=307469 scontext=root:system_r:httpd_t:s0 tcontext=system_u:object_r:usr_t:s0 tclass=...

Copie e execute o seguinte comando:

audit2allow -M local << _EOF_
(paste the content)
_EOF_

semodule -i local.pp

Isso criará uma regra permanente para que você não precise desativar o SELinux.

    
por 12.10.2015 / 17:34