Apache-Fehler: Beim Schreiben von Python-Protokollen in eine Datei außerhalb des Projektverzeichnisses

Apache-Fehler: Beim Schreiben von Python-Protokollen in eine Datei außerhalb des Projektverzeichnisses

Ich arbeite an einem Django-Projekt und verwende Apache als Webserver. Alles funktioniert gut mit

python manage.py runserver

Aber während ich die Anwendung über Apache ausführe, kann ich meine Python-App-Protokolle nicht in den angegebenen Pfad schreiben, der außerhalb des Projektverzeichnisses liegt.

Projektverzeichnis/home/ubuntu/saas-DocumentProcessing

Logdateien sind in

/home/ubuntu/log/SaasAap/SaasAap.logUnd/home/ubuntu/log/error/error.log

Mein 000-default.confInhalt

<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>

Antwort1

Schritt 1: Finden Sie heraus, als welcher Benutzer Apache ausgeführt wird:

ps aux | egrep '(apache|httpd)'

Überprüfen Sie dann die Dateieigentümerschaft und Berechtigungen für die Verzeichnisse, in die Sie Ihre Protokolle schreiben. Ändern Sie entweder den Eigentümer dieses Verzeichnisses (und der untergeordneten Verzeichnisse), sodass er mit Apache übereinstimmt, oder ändern Sie die Dateiberechtigungen, sodass das Schreiben in dieses Verzeichnis zulässig ist.

Die beste Lösung ist, den Besitzer zu ändern:

sudo chown -R <user_from_above> /home/ubuntu/log

Eine NICHT sichere Methode ist das Ändern der Berechtigungen:

sudo chmod 777 /home/ubuntu/log
sudo chmod 777 /home/ubuntu/log/SaasAap

verwandte Informationen