首页 > 解决方案 > uWSGI 从命令行而不是从 Emperor uwsgi.service 文件运行 Django 项目

问题描述

我正在为virtualenv我的项目使用.Python3.6Ubuntu 16.04Djangouwsgi and NGINX

我已经uWSGI在全球范围内安装了,也在virtualenv.

我可以在环境中使用 uWSGI 从命令行运行我的项目

/home/user/Env/myproject/bin/uwsgi --http :8080 --home /home/user/Env/myproject --chdir /home/user/myproject/src/myproject -w myproject.wsgi

并转到我的域,它加载正常。

但是,我显然在“帝王模式”下运行 uWSGI,当我设置服务文件(连同 NGINX)时,域显示internal server error.

uWSGI 日志跟踪到--- no python application found ---

我在运行时遇到了这个问题

uwsgi --http :8080 --home /home/user/Env/myproject --chdir /home/user/myproject/src/myproject -w myproject.wsgi

因为它使用的是全局安装 uwsgi 而不是 virtualenv 。

我将我的 StartExec 更改为 virtualenv uwsgi 路径,但没有运气。

我无法弄清楚我做错了什么,路径错误?语法错误?

我的/etc/systemd/system/uwsgi.service档案

[Unit]
Description=uWSGI Emperor service

[Service]
ExecStartPre=/bin/bash -c 'mkdir -p /run/uwsgi; chown user:www-data /run/uwsgi'
ExecStart=/home/user/Env/myproject/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
NotifyAccess=all

[Install]
WantedBy=multi-user.target

标签: pythondjangovirtualenvuwsgi

解决方案


好吧有点傻,但似乎我跑了sudo systemctl stop uwsgi然后sudo systemctl start uwsgi它现在可以工作了。


推荐阅读