修網站(cgid好快!)
新工作也是做web。趁著這個機會,上周末把二十年前的網站拿來修。
網站系統已經十年沒動了。2003年寫的,上次異動是2014年,也是4年前了。。其實也不是大修,就一些長久讓我困擾的問題:原本自己編譯、手寫到很複雜的Apache httpd.conf設定檔,改用Debian的套件和Debian的設定檔系統。原本用Big5/GB2312做的網站,通通換成UTF-8。趁這個機會,原本用iconv做繁簡轉換的,改用opencc來做。iconv只能轉字碼,opencc能轉用詞。以前不知道opencc,覺得自己很落伍。
最讓我感到困擾的,是自己寫到很複雜的Apache httpd.conf設定檔。為此,每次主機重灌,都要重新編譯Apache httpd、PostgreSQL、Perl和PHP,沒辦法直接上線。網站想搬到AWS雲端、Rasperry Pi或是NAS,也沒辦法。之前工作還是網站開發和管理時,反正自己會一直編譯、追最新版的Apache httpd,其實也還好。後來換工作,不大自己編譯Apache httpd後,常常我跑的httpd,比作業系統提供的版本還舊,也沒辦法即時處理安全問題。
解決了自建httpd.conf的問題以後,就可以考慮換更省電的設備,像AWS、Rasperry Pi或NAS了。
回頭看,我2003年還沒聽過MVC,就已經在用MVC架構來做系統了。那時候和designer吵翻天的事,現在都是理所當然。只是那時候反正網站系統只有公司和我要用,也沒有計劃release,所以只有設計了分開的M-V-C,沒有讓系統更好deploy,只有我一個人會用。而且,因為我對DOS相容性的堅持,檔名都在8個字元以下。
舊的公司還在,不過也沒有再用這一套網站系統了,只剩我自己網站在用。我離開以後,也沒有人會用了。
寫一寫忘了原本想寫的是什麼了。啊,對了,是cgid。
說起來cgid真是快啊!原本用mod_perl建的系統,mod_perl 1壞掉很多年,正好我也離開web的工作,無暇顧及,只能轉回用cgi。還好我寫系統,都愛留很多fall back,可以無痛切回cgi。這次發現,mod_perl 2已經生出來好幾年了。鑑於mod_perl 1記憶體處理的的慘痛經驗,不敢用mod_perl 2。不過發現還有一個cgid,可以用Apache 2以後的各種記憶體管理模式mpm,搭配mpm_event,效能比cgi快好多!雖然不敢跟mod_perl比,但也超快,而且省掉mod_perl好多記憶體處理上的麻煩!
這樣會讓人想試FastCGI啊!