23

私はdjangoプロジェクトを展開しようとしています。たくさんのチュートリアルを試しましたが、うまくいきませんでした。新しいクリーンなUbuntu 11.10を使用しています。私は実行しました

apt-get install nginx
apt-get install uwsgi
service nginx start

フォルダーを作成/deploy/project1し、そこmanage.pyに他のファイルを配置しました。

私の現在の/deploy/project1/project1/wsgi.py内容:

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project1.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

それで、私のdjangoアプリをdomain.com適切にデプロイする方法を教えていただけますか?

また、pipとeasy_installを介してDjangoをインストールしました

に何を追加する必要がありますか/etc/nginx/sites-enabled/default

4

2 に答える 2

36

すべての要件をインストールし、aptitude パッケージを使用していると仮定すると、wsgi.py は必要ありません。すべての設定は uwsgi ini/xml/yaml ファイルにあります。(お好きな形式でどうぞ)。

nginx のファイルの最小限の例を次に示しexample.comます (ubuntu 11.10 の場合は /etc/nginx/sites-available/examplecom)。

server {
    listen      80;
    server_name example.com;
    access_log  /var/log/nginx/projectname.log;
    location /media {
        alias /vagrant/test/projectname/media/;
    }
    location /static {
        alias /vagrant/test/projectname/static/;
    }
    location / {
        uwsgi_pass unix:///run/uwsgi/projectname/socket;
        include uwsgi_params;
    }
}

/etc/nginx/sites-enabled へのシンボリック リンクを作成します。

sudo ln -s /etc/nginx/sites-available/examplecom /etc/nginx/sites-enabled/examplecom

また

sudo /usr/sbin/nxensite examplecom

これで NGINX は完了です。

/etc/uwsgi/apps-availableiniファイルに移動して作成します

sudo vim /etc/uwsgi/apps-available/projectname.ini

[uwsgi]
virtualenv=/home/vagrant/.virtualenvs/projectenv
thread=3
master=1
env = DJANGO_SETTINGS_MODULE=projectname.settings
module = django.core.handlers.wsgi:WSGIHandler()
chdir = /path/to/my/django/project
socket = /run/uwsgi/projectname/socket
logto = /var/log/uwsgi/projectname.log

ini を /etc/uwsgi/apps-enabled/projectname.ini に向けます

sudo ln -s /etc/uwsgi/apps-available/projectname.ini /etc/uwsgi/apps-enabled/projectname.ini

詳細については、システム上の次のファイルのいずれかを参照してください。

/etc/uwsgi/apps-available/README
/etc/uwsgi/apps-enabled/README
/usr/share/doc/uwsgi/README.Debian.gz
/etc/default/uwsgi

これで完了です。nginx と uwsgi を再起動できるようになりました

sudo service nginx restart
sudo service uwsgi restart

乾杯!

于 2012-05-09T23:59:00.283 に答える
9

uwsgiDebian、Ubuntu、およびその派生パッケージは、Python プラグインのインストールを必要としないことを忘れないでください— uwsgi-plugin-pythonuWSGI は必ずしも Python のみを使用するとは限らないためです (Lua、Erlang、およびその他の言語用のプラグインがあります)。ただし、Django には Python プラグインが必要です。それをインストールします。

sudo apt install uwsgi-plugin-python

PIP のインストールとは異なり、アプリの構成で使用されている uwsgi のプラグインを次のplugins = pythonように (Python を使用している場合は) 行を追加して明示的に言及する必要があります。

[uwsgi]
plugins = python
uwsgi-socket = /var/sockets/django.sock
chmod-socket = 660
chdir = /home/v/django
module = project.wsgi

これを行わない限り、利用可能な Python 固有のオプションはありません。そして、Debian/Ubuntu の uWSGI はそれについて静かになります!

于 2013-03-27T11:24:55.673 に答える