![Apache-Fehler: Beim Schreiben von Python-Protokollen in eine Datei außerhalb des Projektverzeichnisses](https://rvso.com/image/726400/Apache-Fehler%3A%20Beim%20Schreiben%20von%20Python-Protokollen%20in%20eine%20Datei%20au%C3%9Ferhalb%20des%20Projektverzeichnisses.png)
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.log
Und/home/ubuntu/log/error/error.log
Mein 000-default.conf
Inhalt
<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