這篇文章主要介紹了在主機商的共享服務器上部署Django站點的方法,Django是最具人氣的Python框架,需要的朋友可以參考下
許多共享主機的服務提供商不允許運行你自己的服務進程,也不允許修改 httpd.conf 文件。 盡管如此,仍然有可能通過Web服務器產生的子進程來運行Django。
記錄
如果你要使用服務器的子進程,你沒有必要自己去啟動FastCGI服務器。 Apache會自動產生一些子進程,產生的數量按照需求和配置會有所不同。
在你的Web根目錄下,將下面的內容增加到 .htaccess 文件中:
- AddHandler fastcgi-script .fcgi
- RewriteEngine On
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
接著,創建一個腳本,告知Apache如何運行你的FastCGI程序。 創建一個 mysite.fcgi 文件,并把它放在你的Web目錄中,打開可執行權限。
- #!/usr/bin/python
- import 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 runfastcgi
- runfastcgi(method="threaded", daemonize="false")
重啟新產生的進程服務器
如果你改變了站點上任何的python代碼,你需要告知FastCGI。 但是,這不需要重啟Apache,而只需要重新上傳 mysite.fcgi 或者編輯改文件,使得修改時間發生了變化,它會自動幫你重啟Django應用。 你可以重新上傳mysite.fcgi或者編輯這個文件以改變該文件的時間戳。 當阿帕奇服務器發現文檔被更新了,它將會為你重啟你的Django應用。
如果你擁有Unix系統命令行的可執行權限,只需要簡單地使用 touch 命令:
- touch mysite.fcgi
新聞熱點
疑難解答