Django 雖然建議以 Apache+mod_python 進行佈署,但對負載不大的網站來說,以 mod_python 佈署有一些不便之處;另外,絕大多數的 shared web hosting 不會支援 mod_python 佈署,因此這種方式並不適合非自有伺服器的使用狀況。
次之的選擇是 FastCGI (FCGI)。我參考 Dreamhost wiki 上的資訊,在我自己的 Apache2 上進行 Django 佈署。
FastCGI 是一種與語言無關的 CGI 強化 API;這裡是它的文件。在 Debian 下,請安裝 libapache2-mod-fastcgi 套件,即可獲得 FastCGI 支援。使用 FastCGI 的目錄應該要有以下的權限:
<Directory /your/fastcgi/binary>
Options +ExecCGI
#SetHandler fastcgi-script
AddHandler fastcgi-script fcgi
</Directory>
而為了讓 mod_fastcgi 可與 Python 程式溝通,我們還需要 fcgi 模組;把這個 .py 檔抓下來以後,請與 .fcgi 檔放在一起 (若依照上面的設定例,即 /your/fastcgi/binary 目錄)。
然後,我們要撰寫 FastCGI 執行檔:
#!/usr/bin/env python
import sys
sys.path += ['/path/to/your/django/project']
from fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'yourprogject.settings'
WSGIServer(WSGIHandler()).run()
把這個檔放在 /your/fastcgi/binary 裡,取名為 yourproject.fcgi。如果 /your/fastcgi/binary 是你的 DocumentRoot,那麼此時 http://your.domain/yourproject.fcgi/ 就是這個 Django project 所佈署的位置了。
此時 Django project 雖然可以動作,但佈署得還不完整。我們通常會想要以下的 mod_rewrite 規則:
RewriteRule ^(/media/.*)$ - [L]
Alias /media/ /path/to/your/media
RewriteCond %{REQUEST_URI} !(yourproject.fcgi)
RewriteRule ^(.*)$ /yourproject.fcgi$1 [L]
這些 RewriteRules 可能要視不同的佈署而調整。最後,我們會讓網站出現在 http://your.domain/,不必讓使用者看見我們的 .fcgi wrapper。
Posted by yungyuc
at
22:52,
0 comment,
0 trackback.
沒想到 UltraNav 可以用在 Debian 裡面。
因為有人說我給的 UltraNav 不好用,所以我就很高興地換來我的桌子上,把 SpaceSaver2 交換過去。雖然讓 PS/2 KVM 失去用武之地,但能再用 UltraNav 的喜悅讓這件事也變得沒有什麼了。
完全沒有作任何驅動動作,X.org 6.9 沒有重開,UltraNav 就可以使用了。TrackPoint, TouchPad 與鍵盤本身都運作正常,但 TrackPoint 的 scroll 與 TouchPad 的 scroll 不能運作。不過 SS2 的 scroll 之前也不能用,這倒不算是問題。
今早發現,UltraNav 鍵盤方向鍵上兩側的 Prev/Next 按鍵也是可以作用的。似乎這兩個鍵也變成標準鍵盤定義的一部分了?(我不知道喔,這是個疑問句)。非常好,只是以後在網頁裡輸入要更小心點啦,按到的話可不得了。
Posted by yungyuc
at
09:17,
0 comment,
0 trackback.
一個多禮拜以來,因為 ttf-arphic-ukai 和 ttf-arphic-uming 在 apt-get upgrade/install 的時候一直出現 size mismatch 的錯誤,於是用不了 Gnome 2.12。
感謝 Tetralet 在 #dot 上的大力相助,最後是把 package 從 archive 抓下來後 dpkg -i,解決掉這個問題。
有時候就是會發生這種想不懂的事。
Posted by yungyuc
at
01:08,
0 comment,
0 trackback.
Easy Slide Shows With reST & S5。
Docutils 自 0.4.0 版起支援了 HTML S5 writer,讓 docutils 的使用者可以直接自 reStructuredText 生成 S5 HTML presentation 檔案。
昨天在下不才,在 tossug 作了一段漫無章法的分享,講得實在很爛,有點對不起 django。不過,簡報檔是用 docutils 生的 s5,如果已經會用 reStructuredText 的話;以之產生簡報真是易如反掌,有興趣的人可以體驗一下。
Posted by yungyuc
at
22:49,
0 comment,
0 trackback.
aafigure README.
才在想 reStructuredText 好像還不能畫圖,就看到一月這個 thread。還可以畫偽.UML,有趣!
Posted by yungyuc
at
16:51,
0 comment,
0 trackback.
listal 的問題是呢,一、沒什麼中文書,也不能搜尋中文,二、在我的 firefox 裡跑起來很腿。這是相較於 douban 來說的。
douban 的資料庫裡已經有很多書了,雖然這個站比較像是專門為書設計的討論區,但用來管理自已的書籍資料庫也還過得去。在 listal 裡得一筆一筆自己打,還不能搜尋,但在 douban 裡可以直接按別人建好的書籍資料,輕鬆又愉快。
我放在 douban 裡的資料已經超過 listal 了。
yurenju 介紹了一個書籍、音樂管理網站 - listal,我下午看到了以後,馬上就把最近看過與正在看的書建到資料庫裡去。
listal 這個網站如上所述,是一個書籍與影音的管理資料庫系統,以社會化為前飾詞。我手上的 DVD/CD 很少,也幾乎沒在閱聽,書倒是很多,所以只建了一些書籍的資料。listal 資料庫裡的書分為兩種:Owned (擁有的) 與 Wanted (想要的)。如此一來它不但能管理已有的書籍,當你在博客來或金石堂,甚至 amazon 逛來逛去的時候,也能順手記下感興趣的書籍,不必放進購物車 (留待 findbook 進行後處理 :p)。入手以後,馬上就可以改 Wanted 為 Owned。
理所當然地,listal 裡所有的書籍分類都以標籤 (tag) 進行。標籤是很好的管理技巧,就不必多作介紹了。listal 作為一個社會化的書籍管理系統,當然要準備評註的工具;使用者可以寫書評、評分。更社會化的是,listal 具備友伴 (friend) 系統,使用者可以向朋友要書、借書,也可以把自己的書標記為 loaned 「已借出」 (標記 loaned 這個功能比較偏管理取向一點,但不失為有趣的社會化功能)。
目前 listal 對中文的支援還可以,唯一的問題是無法搜尋中文內容。另外有一個小問題是:nickname 一經註冊好像還沒地方可以改。
listal 能直接從 amazon 取得書籍資訊,期待有一天它能支援美國以外的購書網站。