尝试在CentOS上使用gunicorn和nginx部署Django应用程序。遵循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看起来像这样 app-是虚构的应用程序名称:) 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
我的项目有一棵树: 应用
- 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
重新启动,现在在systemctl status gunicorn.service中有不同的错误:
gunicorn: error: unrecognized arguments: app.wsgi:application
哦,那是因为我在ExecStart中添加了其他标志。删除它,现在可以使用。
SELinux出现了问题。
将其保留在这里,以防对任何人有用