Ubuntu
ubuntu + nginx + uwsgi + django 找不到 Python 應用程序
我正在嘗試使用 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
然後我將這些參數複製到一個如下所示的 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
但是,當我使用 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 ---
最值得注意的是“沒有載入應用程序。進入完全動態模式並且沒有找到 python 應用程序,檢查您的啟動日誌是否有錯誤
所以我的問題是,在命令行上傳遞參數和通過 ini 文件傳遞參數有什麼區別?
是wsgi-file不是wsgi_file,命令行選項和文件選項總是一樣的
aptitude install uwsgi-plugin-python
然後重啟 uwsgi 你會看到正確的頁面。