許多共享主機(jī)的服務(wù)提供商不允許運(yùn)行你自己的服務(wù)進(jìn)程,也不允許修改 httpd.conf 文件。 盡管如此,仍然有可能通過Web服務(wù)器產(chǎn)生的子進(jìn)程來運(yùn)行Django。
記錄
如果你要使用服務(wù)器的子進(jìn)程,你沒有必要自己去啟動(dòng)FastCGI服務(wù)器。 Apache會(huì)自動(dòng)產(chǎn)生一些子進(jìn)程,產(chǎn)生的數(shù)量按照需求和配置會(huì)有所不同。
在你的Web根目錄下,將下面的內(nèi)容增加到 .htaccess 文件中:
AddHandler fastcgi-script .fcgiRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]接著,創(chuàng)建一個(gè)腳本,告知Apache如何運(yùn)行你的FastCGI程序。 創(chuàng)建一個(gè) mysite.fcgi 文件,并把它放在你的Web目錄中,打開可執(zhí)行權(quán)限。
#!/usr/bin/pythonimport sys, os# Add a custom Python path.sys.path.insert(0, "/home/user/python")# 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'] = "myproject.settings"from django.core.servers.fastcgi import runfastcgirunfastcgi(method="threaded", daemonize="false")重啟新產(chǎn)生的進(jìn)程服務(wù)器
如果你改變了站點(diǎn)上任何的python代碼,你需要告知FastCGI。 但是,這不需要重啟Apache,而只需要重新上傳 mysite.fcgi 或者編輯改文件,使得修改時(shí)間發(fā)生了變化,它會(huì)自動(dòng)幫你重啟Django應(yīng)用。 你可以重新上傳mysite.fcgi或者編輯這個(gè)文件以改變?cè)撐募臅r(shí)間戳。 當(dāng)阿帕奇服務(wù)器發(fā)現(xiàn)文檔被更新了,它將會(huì)為你重啟你的Django應(yīng)用。
如果你擁有Unix系統(tǒng)命令行的可執(zhí)行權(quán)限,只需要簡(jiǎn)單地使用 touch 命令:
touch mysite.fcgi
新聞熱點(diǎn)
疑難解答
圖片精選