web-dev-qa-db-ja.com

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 ---

最も注目すべき行は、「アプリが読み込まれていません。フルダイナミックモードになりますおよびno pythonアプリケーションが見つかりました。起動ログでエラーを確認してください

だから私の質問は、コマンドラインでパラメータを渡すこととそれらをiniファイルを通して渡すことの違いは何ですか?

6
OpIvy

Wsgi_fileではなくwsgi-fileです。コマンドラインオプションとファイルオプションは常に同じです

3
roberto

aptitude install uwsgi-plugin-python

次にuwsgiを再起動すると、正しいページが表示されます。

2
watsy0007

Uwsgi&Djangoに関する全体的な混乱に追加するために、ここに私のために働くiniファイルがあります。

Httpとhttp-socketでは機能しますが、ソケットでは機能しません。

Django複数のデプロイメントファイルの2つのスクープ)のディレクトリ設定で複数の設定ファイルを使用して実行するように設計されています(これが私がテストしていた理由です)

つまり---/velocityは、manage.pyが存在する「ホーム」プロジェクトディレクトリです。 /velocity/velocity/settings/dev_settings_chris_l.pyは実際の設定ファイルです

Djangoコードの外から正しい設定ファイルを盗む必要があるため、wsgi.py内にDjango_SETTINGS_MODULEを設定する行を含めることや、実際に管理することはできません。 py(Django-adminを使用)

この種のことについては、さまざまなエラーメッセージが報告されるなど、さまざまな議論が行われています。うまくいけば、誰かに役立つかもしれない質問に完全に関連しているわけではありません。

Django 1.8

[uwsgi]
http-socket = 127.0.0.1:8004 
buffer-size = 32768
processes = 4
threads = 2
pythonpath = .. 
env = Django_SETTINGS_MODULE=velocity.settings.dev_chris_l
module=velocity.wsgi:application
home = /home/chris/.virtualenvs/velocity 
plugin = python,http 
show-config 
stats =  127.0.0.1:9191
chdir = /home/chris/development/webfuels/velocity
2
wyleu