ubuntu + nginx + uwsgi + django 找不到 Python 应用程序

OpI*_*Ivy 7 ubuntu nginx django uwsgi

我正在尝试使用 nginx 设置我的服务器到 uwsgi 到 django 堆栈,但是我遇到了 uwsgi 部分的问题。

当我运行 uwsgi 并在命令行中传入所有参数时,它可以正常工作。我的 uwsgi 调用如下所示:

uwsgi --socket /tmp/uwsgi.sock --chdir ~/web/test.com --wsgi-file ~/web/test.com/store/wsgi.py --virtualenv ~/web/test.com/testenv --chmod-socket=666 --enable-threads
Run Code Online (Sandbox Code Playgroud)

然后我将这些参数复制到一个如下所示的 ini 文件中:

# django.ini file
[uwsgi]
master          = true 
socket          = /tmp/uwsgi.sock
chmod-socket    = 666
chdir           = /home/ubuntu/web/test.com
wsgi_file       = /home/ubuntu/web/test.com/store/wsgi.py
virtualenv      = /home/ubuntu/web/test.com/causumptionenv
vacuum          = true
enable-threads  = true
Run Code Online (Sandbox Code Playgroud)

但是,当我使用 django.ini 文件运行 uwsgi 时,我得到了这个输出。

[uWSGI] getting INI configuration from django.ini
*** Starting uWSGI 1.9.11 (64bit) on [Fri May 31 14:52:44 2013] ***
compiled with version: 4.6.3 on 30 May 2013 15:40:11
os: Linux-3.2.0-40-virtual #64-Ubuntu SMP Mon Mar 25 21:42:18 UTC 2013
nodename: ip-10-245-64-211
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /home/ubuntu/web/test.com
detected binary path: /usr/local/bin/uwsgi
your processes number limit is 4594
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
uwsgi socket 0 bound to UNIX address /tmp/uwsgi.sock fd 3
Python version: 2.7.3 (default, Aug  1 2012, 05:25:23)  [GCC 4.6.3]
Set PythonHome to /home/ubuntu/web/test.com/testenv
Python main interpreter initialized at 0xcb4dd0
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 145440 bytes (142 KB) for 1 cores
*** Operational MODE: single process ***
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 15976)
spawned uWSGI worker 1 (pid: 15977, cores: 1)
--- no python application found, check your startup logs for errors ---
Run Code Online (Sandbox Code Playgroud)

最值得注意的是“没有加载应用程序。进入完全动态模式并且没有找到python应用程序,检查你的启动日志是否有错误”

所以我的问题是,在命令行上传递参数和通过 ini 文件传递​​参数有什么区别?

小智 3

它是 wsgi-file 而不是 wsgi_file,命令行选项和文件选项始终相同