在共享主机(1and1)上部署Django会抛出500

时间:2014-07-15 06:52:20

标签: python django .htaccess shared-hosting

我在Django上开发了一个项目,在本地使用经典版本顺利运行:

python manage.py runserver

虽然python manage.py runfcgi命令会抛出我网站的html代码,但在尝试通过创建的子域访问我的网站时,我尝试了一些问题。

场景:给定正确安装的django和flup(python -c "import django")版本,我的1and1服务器的主文件夹中有以下结构:

/bla/bla/bla/test_django
    |-> manage.py
    |-> test_django
    |   |-> __init__.py
    |   |-> settings.py
    |   |-> urls.py
    |   |-> wsgi.py
    |-> dispatch.fcgi
    |-> .htaccess

虽然我曾经认为.htaccess应该放在我的“root”文件夹中,但我也将其复制到test_django文件夹中。内容如下:

AddHandler fcgid-script .fcgi RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]

dispatch.fcgi的内容(已经被编组为755)如下:

import sys
import os

sys.path.insert(0, '~/.local/lib/python2.6/site-packages')
os.environ['DJANGO_SETTINGS_MODULE'] = 'test_django.settings'

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

sys.path.insert行是安装了python的本地版本(不确定是否正确链接。但是,我不确定这是用于什么。无论如何,如前所述,使用{{1 }或python manage.py runfcgi,显示的输出是网站的HTML。

我现在的问题是:除了将我的子域test.whateverdomain.com指向我的./dispatch.fcgi文件夹之外,是否还需要做其他事情?这引发了我500错误。我害怕错过了最重要的一点,那就是将用户重定向到将加载内容的可执行文件。

2 个答案:

答案 0 :(得分:0)

您应该将.fcgi文件放在名为cgi-bin的文件夹中。有关详细说明,请参阅Installing a Django app on 1and1 Linux shared hosting

答案 1 :(得分:0)

修改系统路径的调用是正确的,以便可以访问必要的python包,这绝对是至关重要的。

FCGI文件中的那些行应如下所示:

sys.path.insert(0, "/home#/username/local_usr/lib/python2.7/site-packages")
sys.path.append("/home#/username/django_projects/mynewsite")

第一行是你的python环境,第二行是你的Django项目。我建议使用virtualenv,因此,将(改变你的python环境的位置包含在dir' .env'以及virtualenv命名为' env')你的整个FCGI文件应如下所示:

#!/home#/username/.env/env/bin/python
import sys
import os

sys.path.insert(0, "/home#/username/.env/env/lib/python2.7/site-packages")
sys.path.append("/home#/username/django_projects/test_django")
os.environ['DJANGO_SETTINGS_MODULE'] = 'test_django.settings'

from django.core.servers.fastcgi import runfastcgi
runfastcgi(method="threaded", daemonize="false")

注意:第一行是评论。

信用

http://www.binaryadventure.com/2013/10/23/django-on-bluehost-in-five-minutes/ https://help.asmallorange.com/index.php?/Knowledgebase/Article/View/305/0/installing-django-using-virtualenv