Error de Apache: al escribir registros de Python en un archivo fuera del directorio del proyecto

Error de Apache: al escribir registros de Python en un archivo fuera del directorio del proyecto

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.logy/home/ubuntu/log/error/error.log

Mi 000-default.confcontenido

<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

información relacionada