在共享主机上设置Django网站
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在共享主机上设置Django网站相关的知识,希望对你有一定的参考价值。
您如何在共享托管中设置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的内容。
答案
使用mod_wsgi在共享主机上进行部署更容易。我在Quijost上工作,我们使用nginx作为后端在mod_wsgi下提供了一个包含Django 1.4和Python 2.7的内置包。我们在我们的论坛上为mod_wsgi写了small tutorial,也许对于您使用fastcgi的示例很有用。另一答案
[[0]来自GoDaddy的回复:“ FastCGI可从Python脚本访问以用于我们的Linux托管帐户。但是,我们不允许添加自定义FastCGI我们共享的托管帐户中的处理程序。“
所以我认为您很不走运。我也是,尽管我试图说服客户说拥有Webfaction帐户是一个好主意,因为它支持mod_wsgi。
另一答案
[大多数支持python的共享托管平台都使用phusion passenger运行python应用程序。您可以将django应用程序上传到托管服务器,然后使用wsgi来运行它。到目前为止,django 2.2会导致问题,因此您将不得不使用django 2.1或更低版本。我已经编写了有关它的逐步教程,可以通过this thread进行访问。以上是关于在共享主机上设置Django网站的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django Summernote 中显示编程片段的代码块?