如何在共享主机中设置Django网站? 我检查了django安装,没关系
>>> import django
>>> django.VERSION
>>> (1, 4, 0, 'final', 0)
我跟随http://www.djangobook.com/en/2.0/chapter12/部分在Apache的共享托管提供商上运行Django无济于事。目前该网站是这样的
/home/django_projects/WebsiteName
/sites/WebsiteName.co.id/www/.htaccess
/sites/WebsiteName.co.id/www/dispatch.fcgi
.htaccess文件就像这样
AddHandler fastcgi-script .fcgi
RewriteEngine On
RewriteBase /
RewriteRule ^(media/.*)$ $1 [QSA,L]
RewriteRule ^(admin_media/.*)$ $1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]
并且dispatch.fcgi就像这样
#!/usr/bin/python
import sys, os
sys.path = ['$HOME/lib/python/Django-1.4'] + sys.path
sys.path = ['$HOME/django_projects'] + sys.path
os.chdir("$HOME/django_projects")
#from flup.server.fcgi import WSGIServer
from django.core.servers.fastcgi import runfastcgi
os.environ['DJANGO_SETTINGS_MODULE'] = 'WebsiteName.settings'
runfastcgi(["method=threaded", "daemonize=false"])
当我访问网站时,它一直生成错误500,内部错误。到目前为止我尝试过的是,
[1] Changing AddHandler fastcgi-script .fcgi to AddHandler fcgid-script .fcgi
[2] Removing AddHandler fastcgi-script .fcgi
[3] Putting the website directory to /sites/WebsiteName.co.id/www/WebsiteName instead of /home/django_projects/WebsiteName/
[4] Do no. 3 and move dispatch.fcgi to /sites/WebsiteName.co.id/www/WebsiteName
如果这个问题太愚蠢,我很抱歉。我是Django的新手。顺便说一句,没有1-4是不合适的。这只是对我到目前为止尝试过的事情进行编号。如果我不这样做。 4,网站显示dispatch.fcgi的内容。
答案 0 :(得分:1)
使用mod_wsgi在共享主机上部署更容易。我在Quijost工作,我们使用nginx作为后端,在mod_wsgi下提供了一个带有Django 1.4和Python 2.7的内置包。 我们在论坛中为mod_wsgi写了一个small tutorial,也许这对你的fastcgi示例很有用。
答案 1 :(得分:0)
来自this thread的GoDaddy回复:
“我们的Linux托管可以从Python脚本访问FastCGI 账户。但是,我们不允许添加自定义FastCGI 我们的共享主机帐户中的处理程序。“
所以我认为你几乎没有运气。就像我一样,虽然我试图说服客户说拥有一个webfaction帐户是个好主意,因为它支持mod_wsgi。
答案 2 :(得分:0)
大多数支持python的共享托管平台都使用phusion passenger运行python应用程序。您可以将django应用程序上传到托管服务器,然后使用wsgi来运行它。到目前为止,django 2.2会导致问题,因此您将不得不使用django 2.1或更低版本。我已经编写了有关它的逐步教程,可以here对其进行访问。