休å‡ï¼Œå¯ä»¥ä½œäº›æ”¾é¬†çš„事情。ä¸éŽä¼‘æ¯ä¸€ä¸‹ä¹‹å¾Œé‚„是得辦æ£äº‹ :(
ç‚ºäº†ææŒ¯ç²¾ç¥žï¼Œæˆ‘決定把放著很久沒動的本 blog 程å¼ä½œé»žæ˜‡ç´šã€‚本站 (http://blog.seety.org/everydaywork/,下åŒ) 自從改用 Django 釿–°è¨è¨ˆä»¥ä¾†ï¼Œä¸€ç›´æ˜¯ç”¨ FastCGI 進行佈署的。在最近發行的 Django 0.95 ä¸ï¼Œä¹ŸåŒ…å«äº† magic-removal ä¹‹å¾ŒåŠ å…¥çš„ FastCGI 支æ´ã€‚當然,Django trunk 早就有這æ±è¥¿äº†ï¼Œä¸éŽç›´åˆ°ä»Šå¤©ä»¥å‰ï¼Œæˆ‘都還在用舊的 fcgi.py。
Django 0.95 ä¸ä½†å·²æ•´åˆäº† FastCGI 佈署程å¼ï¼Œä¹Ÿå¯«å¥½äº† FastCGI 佈署文件,FastCGI 也æˆäº† Django 建è°çš„佈署方å¼ä¹‹ä¸€ã€‚在æŸäº›æƒ…æ³ä¸‹ï¼Œç”¨ FastCGI ä½ˆç½²çš„å‹•æ…‹ç¨‹å¼æœƒè·‘得比用 mod_python ä½ˆç½²ä¸‹çš„ç¨‹å¼æœ‰æ•ˆçŽ‡ï¼Œè©²æ–‡ä»¶æœ‰æåˆ°é€™ä¸€é»žã€‚
Note
hmmm.... ä¸éŽæˆ‘é‚„æ²’æœ‰ä»”ç´°ç ”ç©¶æ˜¯åœ¨ã€Œå“ªäº›ã€æƒ…æ³ä¸‹ã€‚
好,在使用 django.core.servers.fastcgi 模組 (Django ä¸çš„ FastCGI 佈署支æ´) å‰ï¼Œè¦å…ˆå®‰è£ flupã€‚ä½ ç”¨ Debian testing/unstable 的話,直接:
$ apt-get install python-flup
就好了 (that's one of the reasons for why I love Debian)ã€‚ç„¶å¾Œï¼Œåœ¨ä½ çš„ htdoc 目錄下 (我用 Apache2) 開一個 blahblah.fcgi wrapper script 檔,在裡é¢å¯«äº› Python script:
!/usr/bin/env python2.4 import sys, os sys.path.append( '/path/to/your/packages' ) os.environ['DJANGO_SETTINGS_MODULE'] = \ 'yoursite.settings' from django.core.srevers.fastcgi import fastcgi runfastcgi([ "method=threaded", "daemonize=false" ])
Django çš„æ–‡ä»¶è£¡æœ‰æ›´è©³ç´°çš„èªªæ˜Žã€‚æœ¬ä¾†ï¼Œçœ‹ä»–å€‘çš„èªªæ˜Žæ‡‰è©²å°±è¶³å¤ äº†ï¼Œéºæ†¾çš„æ˜¯ï¼ŒDjango æä¾›çš„ .fcgi wrapper 裡使用的
sys.path.insert(0, "/home/user/python")
寫法,有時候會出å•é¡Œã€‚æˆ‘å¦‚æžœåƒ Django 文件那樣æ’å…¥ Python search path (把新的 path 放在舊的å‰é¢),Apache2/FCGI æœƒå ±ï¼š
FastCGI: comm with (dynamic) server "blahblah.fcgi" aborted: (first read) idle timeout (30sec) FastCGI: incomplete headers (0 bytes) received from server "blahblah.fcgi"
é€™æ¨£çš„éŒ¯èª¤ï¼Œå› ç‚º blahblah.fcgi æ ¹æœ¬ç„¡æ³•å•Ÿå‹•ã€‚æˆ‘å¾—æŠŠæ–°çš„ search path 放到舊的 path 後é¢ï¼Œblahblah.fcgi æ‰æœƒä¹–ä¹–è½è©±ã€‚
在 Apache2 裡當然還得作些必è¦çš„佈署,ä¸éŽ Django 文件裡寫得很清楚了。Add-Handler, RewriteRules çš„è¨å®šéƒ½æ²’什麼å•題。本å°ç«™åˆæˆé•·äº†ä¸€äº› :)
Update, OT: é †å¸¶ä¸€æï¼ŒVIM 7 多了幾個令人愉快的新功能:
- 在 remote X 上編輯的時候,gvim 的標題列上會主動秀出該 gvim instance 所在的主機ä½ç½®ã€‚å°ç·¨è¼¯å¤šä¸»æ©Ÿæª”案的人來說方便很多。以å‰ä¸€å€‹ workspace é–‹å幾個 gvim,編輯好幾個主機上的檔案,檔å和路徑åˆéƒ½ä¸€æ¨£ï¼Œéžå¸¸è€ƒé©—記憶力 :)
- undo 時會在最下é¢ç§€å‡ºè©²å‹•作是在多久å‰åŸ·è¡Œçš„ã€‚é€™åˆæ˜¯ä¸€å€‹æ¸›ä½Žç·¨è¼¯è€…腦力消耗的好功能。