話說這個部署挺折騰人的,先開始使用 mod_python ,貌似版本一直有問題,沒成功過,以后再試。
使用 mod_wsgi 成功,記錄如下:
1、下載 mod_wsgi:
http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-3.4.tar.gz
2、解壓安裝:
tar zxvf mod_wsgi-3.4.tar.gz && cd mod_wsgi-3.4 && ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/bin/python && make && make install
./configure 的時候需要指定 apxs,否則要將 apxs 所在目錄加入到 PATH 環境變量中亦可:export PATH=$PATH:/usr/local/apache2/bin/
注意,Python版本好像要求2.7.x ,我用2.6的用問題,可以升級到2.7.
http://my.oschina.net/HankCN/blog/137539
3、如果上面成功,則會提示已生成 mod_wsgi.so 擴展文件,並且提示要你 chmod 755 /usr/local/apache2/modules/mod_wsgi.so,按着做好了。
上面的三步都很簡單,就和安裝 php 一樣。
4、在 httpd.conf 文件中加上:
LoadModule wsgi_module modules/mod_wsgi.so
和:
WSGIScriptAlias /sailing /usr/local/apache2/htdocs/sailing/sailing/wsgi.py <Directory /usr/local/apache2/htdocs/sailing/> Order Deny,Allow Allow from all </Directory>
5、在 htdocs 目錄下新建 Django 項目,django-admin.py startproject sailing,然后在項目里再新建應用 django-admin.py startapp app1,寫一個簡單的視圖方法 hello,配置好 urls.py,確定通過Django的 runserver 訪問 127.0.0.1/sailing/hello 無誤。(或者把已有的 Django 項目復制到 htdocs/ 目錄下。)
6、修改項目目錄下的 wsgi.py 文件,Django 已經為我們配置好了,只不過要加上一句:
import sys sys.path.append('/usr/local/apache2/htdocs/sailing/')
否則請求會報 500 錯誤,apache 的 error 日志里會提示:
ImportError: Could not import settings 'sailing.settings'
7、重啟 apache 服務,在瀏覽器中瀏覽。
8、默認如果修改了 python 文件,需要重啟 apache 才能刷新結果,調試起來非常麻煩。可以設置 httpd.conf 文件中:
MaxRequestsPerChild 1
即可強制每次請求都重新載入所有代碼。(但不要在產品服務器上使用)