![Error de Apache: al escribir registros de Python en un archivo fuera del directorio del proyecto](https://rvso.com/image/726400/Error%20de%20Apache%3A%20al%20escribir%20registros%20de%20Python%20en%20un%20archivo%20fuera%20del%20directorio%20del%20proyecto.png)
Estoy trabajando en un proyecto Django y usando Apache como servidor web. Todo está funcionando bien con
python manage.py runserver
Pero mientras ejecuto la aplicación a través de Apache, no puedo escribir los registros de mi aplicación Python en la ruta indicada que está fuera del directorio del proyecto.
Directorio de proyectos/home/ubuntu/saas-DocumentProcessing
Los archivos de registro están en
/home/ubuntu/log/SaasAap/SaasAap.log
y/home/ubuntu/log/error/error.log
Mi 000-default.conf
contenido
<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>
Respuesta1
Paso 1: averigüe con qué usuario se ejecuta Apache:
ps aux | egrep '(apache|httpd)'
Luego verifique la propiedad del archivo y los permisos de los directorios en los que está escribiendo sus registros. Cambie el propietario de este directorio (y de los hijos) para que coincida con Apache, o cambie los permisos del archivo para permitir la escritura en este directorio.
La mejor solución es cambiar de propietario:
sudo chown -R <user_from_above> /home/ubuntu/log
Un método NO seguro es cambiar los permisos:
sudo chmod 777 /home/ubuntu/log
sudo chmod 777 /home/ubuntu/log/SaasAap