这是我第一次使用Django(以及Python),所以在将我的网站部署到Web服务器时我有点困惑。我已经完成了本地开发,现在是时候将我的网站放到生产服务器上。 我有Webuzo CPanel的专用服务器(Red Hat 4.4.4-13 OS),它说我已经安装了Python(v 2.7),Django(1.6.1)和Apache(2.4.4)。如何将django部署到专用的Web服务器?
当然,我有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.
,我已经试图通过Web浏览器来访问的位置,但一切都没有发生(事实上,我只带了网络文件夹结构)。 PS我试图将localhost更改为我的服务器的IP地址和端口:80,但这给了我一个端口已被使用的错误。
我已阅读官方Django文档,拒绝部署网站到服务器,但我不知道我是否应该与mod_wsgi,mod_fcgi,mod_python和这样的事情混乱,因为,正如我所说,我已经有python和django安装在我的网络服务器上?
那么,我应该怎么做才能在我的web服务器上运行django?
UPDATE
OK,我已经安装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 ...
如果你已经阅读了文档,你会知道你应该从不**在生产中使用runserver,并且你需要使用wsgi。 –
你需要对这个话题做更多的阅读。如果你在专用机器上,mod_wsgi应该是最容易安装的(mod_wsgi在使用共享主机时并不总是可能的) – pajton
另外,要在使用runserve时访问该页面(虽然只是作为概念验证,从不在prod中)你应该指定地址为0.0.0.0来接受任何连接:'python manage.py runserver 0.0.0.0:8000'。由于使用它的另一个网络服务器,您可能会遇到使用80的问题。如果可用,您需要为root(sudo)分配它。 – olofom