Каталог моего проекта:
yiling_blog
├── LICENSE
├── README.md
├── myblog
│ ├── db.sqlite3
│ ├── manage.py
│ ├── myblog
│ │ ├── __init__.py
│ │ ├── __pycache__
│ │ ├── admin.py
│ │ ├── admin_config.py
│ │ ├── asgi.py
│ │ ├── migrations
│ │ ├── models.py
│ │ ├── settings.py
│ │ ├── static
│ │ ├── urls.py
│ │ ├── views.py
│ │ └── wsgi.py
│ ├── statics
│ └── templates
├── requirements.txt
└── venv
Проблема в том, что я могу просто использовать команду /home/ubuntu/yiling_blog/venv/bin/gunicorn --bind 0.0.0.0:8000 myblog.wsgi:application
после запуска cd /home/ubuntu/yiling_blog/myblog
, но она не работает в других каталогах.
Но мне нужно поместить эту команду в gunicorn.conf
, чтобы supervisorctl работал в фоновом режиме, она не поддерживает cd /home/ubuntu/yiling_blog/myblog|/home/ubuntu/yiling_blog/venv/bin/gunicorn --bind 0.0.0.0:8000 myblog.wsgi:application
Что мне нужно сделать, чтобы решить эту проблему?
Связанные файлы:
wsgi.py:
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myblog.settings')
application = get_wsgi_application()
Конфигурация wsgi в settings.py:
WSGI_APPLICATION = 'myblog.wsgi.application'
gunicorn.conf
[program:gunicorn]
directory=/homg/ubuntu/yiling_blog/myblog
## command will be change to /home/ubuntu/yiling_blog/venv/bin/gunicorn --workers 3 --bind unix:/home/ubuntu/yiling_blog/app.sock myblog.wsgi:application
command=/home/ubuntu/yiling_blog/venv/bin/gunicorn --bind 0.0.0.0:8000 myblog.wsgi:application
autostart=true
autorestart=true
stderr_logfile=/var/log/gunicorn/gunicorn.err.log
stdout_logfile=/var/log/gunicorn/gunicorn.out.log
[group:guni]
programs:gunicorn
[unix_http_server]
file=/home/ubuntu/yiling_blog/app.sock
chmod=0766