Ubuntu

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

  • March 13, 2020

我正在嘗試使用 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 你會看到正確的頁面。

引用自:https://serverfault.com/questions/512309