![Ошибка Apache: при записи логов Python в файл за пределами каталога проекта](https://rvso.com/image/726400/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0%20Apache%3A%20%D0%BF%D1%80%D0%B8%20%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8%20%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2%20Python%20%D0%B2%20%D1%84%D0%B0%D0%B9%D0%BB%20%D0%B7%D0%B0%20%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B0%D0%BC%D0%B8%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%B0%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B0.png)
Я работаю над проектом Django и использую Apache как веб-сервер. Все работает отлично с
python manage.py runserver
Но при запуске приложения через Apache я не могу записать логи моего приложения Python по указанному пути, который находится за пределами каталога проекта.
Каталог проектов/home/ubuntu/saas-DocumentProcessing
Файлы журналов находятся в
/home/ubuntu/log/SaasAap/SaasAap.log
и/home/ubuntu/log/error/error.log
Мой 000-default.conf
контент
<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>
решение1
Шаг 1: Выясните, под каким пользователем запущен Apache:
ps aux | egrep '(apache|httpd)'
Затем проверьте владельца файла и разрешения для каталогов, в которые вы пишете свои логи. Либо измените владельца этого каталога (и дочерних), чтобы он соответствовал Apache, либо измените разрешения файла, чтобы разрешить запись в этот каталог.
Лучшим решением будет смена владельца:
sudo chown -R <user_from_above> /home/ubuntu/log
НЕ безопасный метод — изменить разрешения:
sudo chmod 777 /home/ubuntu/log
sudo chmod 777 /home/ubuntu/log/SaasAap