2010-07-27 67 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