2010-07-27 82 views
3

我想用FastCGI在iPage.com上设置django共享托管,但我一直在遇到问题。 CGI脚本在浏览器中作为文本而不是执行。下面是的.htaccess和FCGI脚本在共享的FastCGI主机上托管Django

.htacess

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

,并在下面的FCGI脚本

#!/usr/bin/python 
import sys, os 

# Add a custom Python path. 
sys.path.insert(0, "/home/users/web/b2374/ipg.navtejportfoliocom/django") 

# Switch to the directory of your project. (Optional.) 
os.chdir("/home/user/myproject") 

# Set the DJANGO_SETTINGS_MODULE environment variable. 
os.environ['DJANGO_SETTINGS_MODULE'] = "tej.settings" 

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

什么我不这样做对吗?

回答

1

您是否对文件启用了执行权限?在您的FTP客户端中,为用户/组/其他用户启用“执行”位。否则apache会认为它只需要提供文件。

如果您有Linux shell访问权限,您也可以执行chmod +x mysite.fcgi

0

你说FastCGI,但你使用的是CGI方法。 FastCGI不是一个更快的CGI实现,它们是两个完全不同的东西。

+0

fcgi不能在根文件夹上工作,所以我决定将它复制到CGI。加上djangoproject建议使用fcgi作为django,因为cgi包含对每个加载的页面的python + django +内容的调用,而fcgi消除了重新制作 – 2010-07-27 06:05:24

0

哈维尔是对的,这是行不通的。有关如何使用FastCGI进行部署的文档是here - 您需要安装flup,然后在Django中运行FastCGI服务器。

+1

我认为这个例子非常好:http://docs.djangoproject.com/en/1.2/howto/deployment/fastcgi /#running-django -a-shared-hosting-provider-with-apache – vdboor 2010-07-27 08:07:49

+0

我默认接受第一个答案。原来我的主机不支持FastCGI,WSGI和AJP。 – 2010-07-30 07:01:12