Назад | Перейти на главную страницу

Ошибка Apache: при записи журналов Python в файл вне каталога проекта

Я работаю над проектом 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 abc@xyz.com
        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. Выясните, от имени какого пользователя работает 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