Не могу запустить gunicorn.service на VirtualBox с CentOS 8, Nginx и Django-Rest-Framework - PullRequest
0 голосов
/ 03 октября 2019

Попытка развернуть приложение django с помощью gunicorn и nginx на CentOS. Следующее руководство по DigitalOcean: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-centos-7

Но у меня есть CentOS 8.

Я могу запустить свое приложение локально из virtualenv, используя:

python manage.py runserver

gunicorn --bind 0.0.0.0:8000 app.wsgi:application

, но затем я пытаюсь запуститьgunicorn.service У меня есть статус - не удалось. внутри systemctl status gunicorn.service У меня есть

started gunicorn deamon
gunicorn.service: main process exited, code=exited, status=203/EXEC
gunicorn.service: failed with result 'exit-code'

Без этого файла я не могу связать файл app.sock, так как он не создается.

Мой gunicorn.service выглядит как это приложение- это вымышленное имя приложения :) admin - реальный пользователь этой системы

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=admin
Group=nginx
WorkingDirectory=/home/admin/app/portal/app
ExecStart=/home/admin/app/env/bin/gunicorn --workers 3 --bind unix:/home/admin/app/portal/app/app.sock app.wsgi:application

[Install]
WantedBy=multi-user.target

Есть дерево моего проекта: app

- env
- portal
-- client
-- app
--- documents
--- fixtures
--- images
--- app
---- __init__.py
---- settings.py
---- urls.py
---- wsgi.py
--- app_project
---- ...
--- manage.py
--- requirements.txt

Что можно сделать, чтобы сделать егоработать и что чан я проверяю, чтобы найти больше подсказок, почему это не работает? Любой вклад приветствуется. Спасибо


в journalctl -xe, я заметил SELinux is preventing file/path from execute access on the file, поэтому я изменил SELINUX=permissive в / etc / selinux / config

, перезагрузился, и теперь у меня возникла ошибка в состоянии systemctlgunicorn.service:

gunicorn: error: unrecognized arguments: app.wsgi:application 

о, это потому, что я добавил дополнительный флаг в ExecStart. Убрал его и теперь работает.

Так что проблема была с SELinux.

Будет держать его здесь на случай, если это будет кому-нибудь полезно

...