Estou trabalhando em um projeto Django e usando o Apache como servidor web. Tudo está funcionando bem com
python manage.py runserver
Mas, ao executar o aplicativo através do Apache, não consigo gravar os logs do meu aplicativo python no caminho indicado, que está fora do diretório do projeto.
Diretório do projeto/home/ubuntu/saas-DocumentProcessing
Os arquivos de log estão em
/home/ubuntu/log/SaasAap/SaasAap.log
e/home/ubuntu/log/error/error.log
Meu 000-default.conf
conteúdo
<VirtualHost *:8000>
ServerAdmin [email protected]
ServerName my_ip
ServerAlias my_ip
DocumentRoot /home/ubuntu/saas-DocumentProcessing/
WSGIScriptAlias / /home/ubuntu/saas-DocumentProcessing/src/wsgi.py
Alias /static/ /home/ubuntu/saas-DocumentProcessing/static/
ErrorLog /home/ubuntu/log/error.log
CustomLog /home/ubuntu/log/custom.log combined
<Location "/static/">
Options -Indexes
AllowOverride All
Require all granted
</Location>
<Location "/">
AllowOverride All
Require all granted
</Location>
<Directory /home/ubuntu/saas-DocumentProcessing/static>
Order allow,deny
Allow from all
</Directory>
<Directory /home/ubuntu/log>
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess saas-DocumentProcessing python-path=/home/ubuntu/
saas-DocumentProcessing python-home=/home/ubuntu/saas-DocumentProcessing/ve
nv
WSGIProcessGroup saas-DocumentProcessing
</VirtualHost>
Responder1
Etapa 1: descubra qual usuário o Apache está executando:
ps aux | egrep '(apache|httpd)'
Em seguida, verifique a propriedade do arquivo e as permissões dos diretórios nos quais você está gravando seus logs. Altere o proprietário deste diretório (e filhos) para corresponder ao Apache ou altere as permissões do arquivo para permitir a gravação neste diretório.
A melhor solução é mudar o proprietário:
sudo chown -R <user_from_above> /home/ubuntu/log
Um método NÃO seguro é alterar as permissões:
sudo chmod 777 /home/ubuntu/log
sudo chmod 777 /home/ubuntu/log/SaasAap