2007年11月2日 星期五

小型的隨身伺服器

前一次的blog中, 提到了CORISA的復活計畫, 其實在灌作業系統的當時, 還沒有想到究竟CORISA能夠拿來做什麼...跑遊戲嗎??別開玩笑了...執行OpenOffice嗎??火狐都跑這麼慢了, OpenOffice還跑得起來嗎??基於記憶體只有32MB, 跑任何近幾年的軟體, 都免不了會氣喘吁吁, 所以想拿CORISA作一般筆記型電腦做的事, 實在是折磨自己, 可是有沒有更好的計畫呢??

既然無法執行一般的任務, 也許弄成伺服器是個好主意哦!!有了這樣的想法, 便開始規劃CORISA可執行的伺服器功能, 基本上這些功能將以開放原始碼或者免費軟體為主, 不過還必須考慮伺服器軟體的最低系統需求, 畢竟有很多軟體的最低需求已經從Windows 2000起跳了...

那麼目前規劃的功能有:

1.電子郵件伺服器
2.FTP伺服器
3.網頁伺服器
4.VNC伺服器

之前在購買Ubuntu專用的電腦時, 便想要用那台電腦來架設家用的電子郵件伺服器, 這樣在網站上如果需要填寫email位址時, 就可以用自家的伺服器來收, 可以避免因郵件位址外流, 而垃圾信塞滿信箱, 這個時候就可以把這個垃圾電子郵件砍掉, 重新建立一個新的...呵呵呵...

以前曾經透過Google大神的幫助, 找到了一套稱為Mercury水星郵件伺服器軟體, 這是由之前在Windows 95時代非常有名的Pegasus Mail的作者所製作的, Mercury不僅僅可執行基本的郵件服務(SMTP/POP3), 還有佇列與記憶體管理, 無限制郵件帳號數, SSL以及郵件內容過濾與垃圾信偵測的功能, 最重要的是, 基本上這是個免費軟體(僅限個人使用, 營業用則需付費)!!不過最大的缺點是只有英文版, 有很多地方會不知道怎麼設定就是了...這時可以考慮國產的付費軟體, 也一樣不錯用哦!!

由於之前有過條款外的安裝與使用的經驗(:P), 我對於Mercury的穩定性很有信心, 而且不用什麼特殊的設定, 在一般的情況下, 就可以擋住想透過郵件伺服器轉寄垃圾信的小白, 可是沒試過垃圾信的過濾, 不知道效果如何...不過既然它可以滿足我的基本需求, 就很好了, 更何況98不需任何更新就可以執行, 真是太好了~~這樣就愉快的架好郵件伺服器了~~

至於FTP伺服器, 主要是擔負著網頁更新的管道, 不過也順便提供親友們的檔案交流的用途...原本是想用開放原始碼的FileZilla Server, 這是個簡易又好用的FTP伺服器軟體, 支援使用者群組, 限流以及虛擬家目錄, 可是目前最新版0.9.24已經無法支援98(因要支援unicode檔名的關係), 所以便改找另一套開放原始碼pure-ftpd...最新版本是1.0.21, 可支援各種版本的unix, Mac OSX及Windows...具有限流, 虛擬磁碟配額, 上下載比例等等多樣化的設定...

不過在尋找pure-ftpd的時候, 雖然有找到1.0.13版本的Windows binary, 可是卻無法正常的使用, 還好官網說明只要Windows安裝Cygwin環境, 就可以自行編譯程式了, Cygwin是個模擬Linux環境的軟體, 這樣以Linux環境寫成的軟體便可以無痛(?)轉換到Windows上執行, 前提是必須以Cygwin環境重新編譯成Windows執行檔才行, 那麼只好自己編譯程式囉...

為了避免亂搞的過程中把98給弄壞(真的太容易損壞了), 同時又必須確定編出來的程式可以在98中執行, 所以又請出我的好朋友VMWare來幫忙, 在VMWare中安裝了與CORISA相同版本的98作業系統之後, 便開始編譯的工作...

但是因為之前有用過Cygwin的開發環境, 其執行很遲緩, 所以我想改用另一套叫做Mingw的軟體, Mingw與Cygwin有異曲同工之妙, 但Mingw強調的是透過重新編譯, 把Linux的系統功能轉換成Windows相對應的功能, 便可以以原生速度執行!!雖然Cygwin也一樣要重新編譯, 但Cygwin編出來的程式仍必須透過一個Linux模擬層來執行所有的程式, 自然速度不佳, 在簡單的安裝好Mingw與MSYS後, 執行configure卻發現缺乏必要的程式功能!! Orz.... 嗯...還是用Cygwin吧~~

還好目前Cygwin還支援98 (預計1.7.0以後就不支援了), 在裝好了必要的開發軟體與程式庫元件後, 漫長的試誤過程就開始了, 利用官方建議的參數:

env CFLAGS="-O2 -march=pentium -pipe" LDFLAGS="-static -s" \
./configure --with-everything --with-brokenrealpath \
--without-shadow --with-nonroot --with-tls \
--with-probe-random-dev --without-ascii

除了因為MediaGX不相容Pentium, 而把-march參數改成-march=i386以外, 其它不變, 結果漫長的編譯下來...不能正常工作...不過2000卻可以, 應該是某些功能98不支援吧?!經過無數次的失敗, 終於找出了可用的參數:

./configure --with-language=traditional-chinese --with-nonroot --with-altlog --with-puredb --with-quotas --with-throttling --without-ascii --without-shadow

這樣編出來的程式具有虛擬使用者, 虛擬磁碟配額以及限流功能, 但是因為98的緣故, 很多看起來不錯的功能都不能使用, 比如說限制同一使用者的同時登入數量, 以及可得知誰在線上的ftpwho功能都不能用, 唉!!算了, 或許要執行這些功能, CORISA也不能負荷, 那不如不用了...終於, FTP伺服器也上線運作了, 其傳輸效率大約在500KB~600KB, 算相當不錯了...

不過在寫blog才想到, 舊版的FileZilla Server有支援98, 且還能下載的到, 結果0.9.15這個版本是最後可支援98的版本, 不過因為花了二天的時間才讓pure-ftpd上線, 不想白白浪費, 所以打算看情況交替使用...因此剛剛又幫CORISA安裝FileZilla Server...不過同一時間只有一套會執行...

另外網頁伺服器就簡單了, 只要採用大家都愛的Apache就行了, 本來想跑Apache+PHP+MySQL做blog伺服器, 但想想算了, 期望別太高, 以免發生危險...原本要安裝最新的2.2.6, 雖然可以跑, 也很正常, 但官方不建議, 所以只好改裝1.3.39, 也很好用, 反正沒拿來做什麼...就這樣, 只有把網頁目錄改為pure-ftpd可以管轄的目錄內, 並設了一個更新用的FTP帳號之後, Web伺服器也愉快的上線了...

最後, VNC伺服器就簡單了, 之前常用RealVNC, 但免費版本太過陽春, 所以改用網友大力推薦的UltraVNC, 之前前同事想在網路遊戲上背娃娃的時候, 也推薦他用過一陣子...為了節省硬碟空間, 所以只有安裝Server部份, Viewer沒裝, 反正也不會用CORISA去遠端登入其它機器...同樣的, VNC伺服器也無痛的安裝完成了~~



所有伺服器軟體都啟動時的執行情況

雖然記憶體有點吃緊, 不過CORISA倒是能正常執行應有的功能, 終於小型的隨身伺服器完成了, 不過由於安全性的考量, 是需要一台IP分享器充當防火牆, 並透過NAT轉址來執行這些功能才好, 沒想到98也能這樣玩呢~~看看哪天再增加什麼新功能上去~~ (CORISA悲鳴:饒了我吧~~)

沒有留言:

張貼留言