我正在尝试部署一个Django项目。 我尝试了很多教程,但没有运气。 我使用一个新的干净的Ubuntu 11.10。 我已经演出了
apt-get install nginx apt-get install uwsgi service nginx start
我已经创build了文件夹/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
。
假设你已经安装了所有的需求,你正在使用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-available
并创建你的ini文件
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
干杯!
不要忘记,Debian的,Ubuntu的及其派生的uwsgi
包不需要安装它的Python插件 – uwsgi-plugin-python
,因为uWSGI不一定只使用Python(有Lua,Erlang和其他语言的插件)。 但是,Django需要Python插件。 安装它:
sudo apt install uwsgi-plugin-python
与PIP的安装不同,您应该通过添加一个plugins = python
行(如果使用Python)来明确地提到应用程序配置中使用的uwsgi插件,如下所示:
[uwsgi] plugins = python uwsgi-socket = /var/sockets/django.sock chmod-socket = 660 chdir = /home/v/django module = project.wsgi
除非你这样做,否则将不会有可用的Python选项。 而Debian的/ ubuntu的uWSGI将会很安静!