Vla*_*zki 15 ubuntu nginx django wsgi uwsgi
我正在尝试按照本教程uWSGI使用Django和nginxon进行设置Ubuntu16.04。
一切正常,直到我尝试执行此命令的最后一步(哦,讽刺的是...):
sudo service uwsgi start
Run Code Online (Sandbox Code Playgroud)
如果失败并出现以下错误:
启动 uwsgi.service 失败:未找到单元 uwsgi.service。
其他人似乎得到了类似的错误:
启动 uwsgi.service 失败:单元 uwsgi.service 加载失败:没有这样的文件或目录。
该问题似乎与 Ubuntu 的版本有关。虽然该教程针对的是 Ubuntu 14.04,但它似乎不适用于较新的版本,因为在 15 版中 Ubuntu 从upstartinit daemon切换到systemdinit daemon。
如何使用systemduWSGI 启动 uWSGI 以便它与 nginx 和 Django 一起使用?
Vla*_*zki 28
需要的第一个修改是对/etc/uwsgi/sites/firstsite.ini文件。唯一需要更改的是将权限从 替换664为666。脚本如下所示:
[uwsgi]
project = firstsite
base = /home/user
chdir = %(base)/%(project)
home = %(base)/Env/%(project)
module = %(project).wsgi:application
master = true
processes = 5
socket = %(base)/%(project)/%(project).sock
chmod-socket = 666
vacuum = true
Run Code Online (Sandbox Code Playgroud)
其次,由于我们使用的是systemd而不是upstart,因此不需要以下文件,可以将其删除:/etc/init/uwsgi.conf
第三,我们在以下位置创建以下systemd脚本/etc/systemd/system/uwsgi.service:
[Unit]
Description=uWSGI Emperor service
After=syslog.target
[Service]
ExecStart=/usr/local/bin/uwsgi --emperor /etc/uwsgi/sites
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)
使用这个新的 uWSGI 服务刷新 systemd init 系统的状态
sudo systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
为了启动脚本,您需要运行以下命令:
sudo systemctl start uwsgi
Run Code Online (Sandbox Code Playgroud)
为了uWSGI在重新启动时开始,您还需要:
sudo systemctl enable uwsgi
Run Code Online (Sandbox Code Playgroud)
您可以使用以下方法检查其状态:
systemctl status uwsgi
Run Code Online (Sandbox Code Playgroud)
一些进一步的细节可以在这里找到。
| 归档时间: |
|
| 查看次数: |
20027 次 |
| 最近记录: |