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-ukaittf-arphic-umingapt-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.
tag on Python

aafigure README.

才在想 reStructuredText 好像還不能畫圖,就看到一月這個 thread。還可以畫偽.UML,有趣!

Posted by yungyuc at 16:51, 0 comment, 0 trackback.

listal 的問題是呢,一、沒什麼中文書,也不能搜尋中文,二、在我的 firefox 裡跑起來很腿。這是相較於 douban 來說的。

douban 的資料庫裡已經有很多書了,雖然這個站比較像是專門為書設計的討論區,但用來管理自已的書籍資料庫也還過得去。在 listal 裡得一筆一筆自己打,還不能搜尋,但在 douban 裡可以直接按別人建好的書籍資料,輕鬆又愉快。

我放在 douban 裡的資料已經超過 listal 了。

Posted by yungyuc at 21:49, 2 comments, 0 trackback.

yurenju 介紹了一個書籍、音樂管理網站 - listal,我下午看到了以後,馬上就把最近看過與正在看的書建到資料庫裡去

listal 這個網站如上所述,是一個書籍與影音的管理資料庫系統,以社會化為前飾詞。我手上的 DVD/CD 很少,也幾乎沒在閱聽,書倒是很多,所以只建了一些書籍的資料。listal 資料庫裡的書分為兩種:Owned (擁有的) 與 Wanted (想要的)。如此一來它不但能管理已有的書籍,當你在博客來金石堂,甚至 amazon 逛來逛去的時候,也能順手記下感興趣的書籍,不必放進購物車 (留待 findbook 進行後處理 :p)。入手以後,馬上就可以改 Wanted 為 Owned。

理所當然地,listal 裡所有的書籍分類都以標籤 (tag) 進行。標籤是很好的管理技巧,就不必多作介紹了。listal 作為一個社會化的書籍管理系統,當然要準備評註的工具;使用者可以寫書評、評分。更社會化的是,listal 具備友伴 (friend) 系統,使用者可以向朋友要書、借書,也可以把自己的書標記為 loaned 「已借出」 (標記 loaned 這個功能比較偏管理取向一點,但不失為有趣的社會化功能)。

目前 listal 對中文的支援還可以,唯一的問題是無法搜尋中文內容。另外有一個小問題是:nickname 一經註冊好像還沒地方可以改

listal 能直接從 amazon 取得書籍資訊,期待有一天它能支援美國以外的購書網站。

Posted by yungyuc at 20:09, 3 comments, 0 trackback.
Change to page (10 entries in each page): 1
© hover year to navigate month: powered by django