如何将django部署到专用的Web服务器?

时间:2014-02-25 17:58:39

标签: python django apache

这是我第一次使用Django(以及Python),所以在将我的网站部署到Web服务器时我很困惑。我已完成本地开发,所以现在是时候将我的网站放到生产服务器上了。 我有专门的服务器(Red Hat 4.4.4-13 OS)和Webuzo CPanel,它说我已经安装了Python(v 2.7),Django(1.6.1)和Apache(2.4.4)。

当然,我有root访问权限,所以我已登录到我的服务器并试图检查Django是否已安装,但此命令

>>>import django

给了我这个错误:

importerror: No module named django.

(虽然Webuzo控制面板说我安装了Django)。

之后,我设法使用pip安装Django。所以,现在,我安装了Python和Django(1.6.2)。

我的下一步是在生产服务器上创建一个新的Django项目,以检查它是否可行,所以我在public_html文件夹中创建了新目录并在那里运行了这些命令:

>>> django-admin.py startproject test
# python manage.py runserver

和django给了我这个消息:

Validating models...
0 errors found
February 26, 2014 - 00:15:48
Django version 1.6.2, using settings 'test.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

然后我试图通过网络浏览器访问该位置,但没有发生任何事情(事实上,我只有网络文件夹结构)。 PS 我试图将localhost更改为我的服务器的IP地址和端口:80但是这给了我一个错误,该端口已经在使用。

我已经阅读了官方的Django文档,他们反对将网站部署到服务器,但我不知道我是否应该搞乱mod_wsgi,mod_fcgi,mod_python等等,因为正如我所说,我已经安装了python和django在我的网络服务器上?

那么,为了在我的网络服务器上运行django,我该怎么办?

更新

好的,我已经安装了mod_wsgi并将其添加到我的Apache(2.4.4)配置中:

WSGIScriptAlias / /home/****/public_html/*mysite.com*/testing/testing/wsgi.py
WSGIPythonPath /home/****/public_html/*mysite.com*

<Directory /home/****/public_html/*mysite.com*/testing>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>

这是我的文件夹结构:

/home/*****/public_html/mysite.rs:
----------------------------------testing:
-----------------------------------------manage.py
                                         testing: 
-------------------------------------------------__init__.py  settings.py  urls.py  wsgi.py

当我访问mysite.com时,仍然没有任何反应(mysite.com/testing/禁止我)。难道我做错了什么? 我现在很累,所以我明天会和Heroku一起试试......

3 个答案:

答案 0 :(得分:1)

使用Django和/或官方文档查看Tango的第16章:

但是,您似乎在这里缺少一些真正的基础知识,因此您可能需要考虑像Heroku这样的托管PaaS,这样您就不必担心扩展/维护服务器,直到您对细节感到满意为止。这里有关于如何将Django部署到Heroku的文档:https://devcenter.heroku.com/articles/getting-started-with-django

您还应该使用版本控制系统(如Git)并将repo代码部署到目标生产主机,而不是在生产服务器上启动新项目。

有很多关于Django端到端的好书。建议您搜索:https://www.google.com/search?q=python+django+book

答案 1 :(得分:0)

使用Webuzo安装django后,必要的文件位于: 基本路径/ usr / local / apps / python2 二进制/usr/local/apps/python2/bin/django-admin.py

您可以相应地找到其他文件。

答案 2 :(得分:0)

作为a book I'm writing about TDD的一部分,我写了几章,逐步介绍如何从头开始配置Web服务器,以便为Django Web应用程序提供服务。它包括:

  • 设置用户帐户和SSH密钥
  • 安装nginx
  • 检查dns是否正常工作
  • 创建virtualenv
  • 设置数据库
  • 设置静态文件
  • 安装gunicorn
  • 使用upstarts配置nginx virtualhost和gunicorn自动启动

http://chimera.labs.oreilly.com/books/1234000000754/ch08.html

接下来的章节将展示如何使用Fabric自动化整个事物的示例。

http://chimera.labs.oreilly.com/books/1234000000754/ch09.html

关于这一切与自动化测试的关系有一些讨论,但是如果你忽略这些,那么它应该是如何将django应用程序部署到Web服务器的一个很好的分步指南。