在共享主机上设置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:vps 还是共享主机? [关闭]

共享主机上的 Django 应用程序依赖项(Cpanel)

Python 共享主机

如何在 Django Summernote 中显示编程片段的代码块?

Apache2 使用 Django 项目设置带有子域的虚拟主机

Django如何将自己的网站让其他主机访问