在 Linux 系統下,無論你安裝各種類型的應用系統,如 XOOPS、Blog、Wiki、Open-Source Project …等,幾乎不脫離最主要的三種基礎建設平台 ~ Apache + MySQL + PHP。
我個人所使用 Linux 版本為 Fedora Core 3。應該算是最普及、最容易安裝的 Linux 版本了。
安裝完後,上述三種基礎平台也跟著完裝完畢。不過,因為是以 RPM 的方式來安裝與升級系統,有利有弊,安裝與設定容易,但客製化的程度會比較沒有彈性,而且往往尚未提供最新的版本。
我也決定讓我的基礎平台可以支援 UTF-8 的環境,所以 MySQL 需升級為 4.1.X 的版本,而 PHP 也必須由內建 3.2.X Library 改為可以連結 MySQL 4.1.X 的 Library。同時,也為了更有彈性讓 Apache 支援 PHP,所以,我把 Apache 與 PHP 由 RPM 安裝的方式,將之移除,並下載最新版本(Apache 為 2.0.53;PHP 下載 4.3.10)手動編譯。
不使用 PHP 5.X 的原因是擔心應用系統如 XOOPS 或 Blog 會產生相容性不符的情況,所以仍使用 PHP 4.X 的版本。
至於 MySQL,因為官方網站即提供最新有支援 RPM 安裝的版本,所以在安裝上甚為方便。
如何安裝,最好是參考 Apache and PHP 官方網站的文件。在此僅是個人的安裝備忘紀錄,並不是完整而詳細的安裝步驟。
- 下載 MySQL 4.1.10 RPM版本,利用 RPM 方式升級 MySQL 系統。
- 移除 Apache and PHP 的 RPM 版本。
- 下載 Apache 2.0.53 and PHP 4.3.10 的原始碼版本。
- Compile Apache(底下指令為連續的一行):
- ./configure –prefix=/usr/local/apache2 –enable-mods-shared=most –ena
ble-rewrite –enable-so - make
- make install
- ./configure –prefix=/usr/local/apache2 –enable-mods-shared=most –ena
- Compile PHP(底下指令為連續的一行):
- ./configure –prefix=/usr/local/php4 –with-apxs2=/usr/local/apache2/bin/apxs –wi
th-mysql=/usr –with-mysqli=/usr/bin/mysql_config –with-mysql-sock=/var/lib/mysql/mysql.sock –enable-mbstri
ng - make
- make install
- ./configure –prefix=/usr/local/php4 –with-apxs2=/usr/local/apache2/bin/apxs –wi
- 確定安裝與編譯過程沒有發生錯誤,如此即可完成基礎平台的安裝
再來,就是要做一些設定,如,設定 Apache 的 Virtual Host、設定 php.ini 等。最好能做一些測試以及相關資訊的檢查。
我是利用 phpmyadmin,若可以正確設定好 phpmyadmin,同時就可以知道 apache 的設定是否正確,並且也同時藉由連結 MySQL 資料庫以檢查 MySQL 的設定與 PHP 版本等相關資訊。
我的 blog 系統,是採用 b2evolution 0.9.0.11 並由 Jimmy 所提供的中文語系所安裝而成的,它本身即支援 utf-8 編碼,所以我從 Windows-based 的環境,只要將其目錄透過 Samba copy 至 Linux 的目錄下(我是 copy 至 /var/www/html/blogs),幾乎不用任何設定即可完成 blog 平台的移轉。
至於如何匯入(import)原先所備份的資料?我發現到,使用 phpmyadmin 並不保險,因為有容量上的限制與編碼的問題,很容易會轉成亂碼的情況發生。我是在 Linux 命令列模式下來執行匯入的動作:
-
mysql –user=db_user_name –password=db_user_password db_name < ur_import_data.sql
至於 XOOPS,原先我在 windows-based 是安裝 big5 版本。因為很容易有衝碼情況問題產生(許功蓋的問題),加上 MySQL 4.1.x 以上總算有支援 utf-8 的編碼,所以我是下載在 XOOPS 正體中文延伸計畫所提供的 utf-8 的最新版本:2.0.9.2 utf-8 正體中文版。
注意的是,因為有許多外掛模組是使用 big5 所編碼而成的版本,若要能在 utf-8 XOOPS 系統下正常執行、沒有亂碼,需先轉換為 utf-8 的版本。
我是利用 ConvertZ 來自行手動將 big5 模組轉碼為 utf-8 版本。
ConvertZ 的作者可真不錯,提供如此優質又免費的轉碼工具!
安裝的過程,必須熟悉 Linux 系統操作。這點我幾乎是完全陌生,除了邊做邊看文件,最好能有高手協助你。
我很幸運,認識 william,他透過 telnet 模式(正確地說是利用 ssh client) 連線進來我的系統幫我做設定、編譯等等。同時又透過 msn 回答我許多對於設定及原理不瞭解的問題。
真的很感謝他!! 我欠他兩客西堤牛排。
還有,Linux 很好玩,真的很有趣。
一切都是免費,又能提供這麼多免費的好咚咚。
我已經認真在思考 Linux + OpenSource + Enterprise Service 的整合方案。看來對企業的應用系統等在成本與穩定性、實用性等的考量與應用會有很大的經濟價值。
&leftsign;Linux 架站三雄&rightsign;Apache + MySQL + PHP 安裝備忘錄
&leftsign;Linux 架站三雄&rightsign;Apache + MySQL + PHP 安裝備忘錄 在 Linux 系統下,無論你安裝各種類型的應用系統,如 XOOPS、Blog、Wiki、Open-Source ..
Hello yungyuc:
太好了,又知道有個這麼不錯的 Linux 轉碼應用工具。感謝您提供如此詳細的資訊。
順帶說明一下,我的確是在 Windows-based 的環境下來 “應用” 一些相關的工具應用等程式。不過呢,這些到不是我的 “技術”,只是為系統平台的架設而 “應用” 的。
對系統管理與應用程式等範疇,約只要足夠架設應用平台及基本的維護就 “適可而止” 了 🙂
iconv 是 GNU 的一套字集轉換程式庫,
寫 GNU 程式要作轉碼的話,用 iconv 是最方便的。
它本身 (libiconv) 也有提供一支小小的 frontend 程式,
就叫作 iconv。
如果要在 Linux/Un*x 環境下寫 script 作轉碼,
用 shell script + iconv 是蠻標準的作法。
另外我喜歡用 Python + cjk-codec + iconv-codec,
自動化轉碼作業的時候可以更有彈性。
看到秘密基地主人用 ConvertZ 轉碼的時候,
我就猜測您的技術偏向是 Windows >>> Un*x 的。
這些也只是一些小小的經驗,
如果不幸基地主人得撩下去玩的話,
有個方向也蠻好。 🙂
我也是這麼想啦! 但 “隔 OS 如隔山”, 幸好, 以前還玩過 DOS, 下下指令來玩系統, 還算可以接受 …
Hi 阿德:
我都是直接看 on-line document,像 Apache 的官方網站及其討論區等。
當然,最好還需要有懂 Linux 相關設定的朋友來協助你,這會比較好 🙂
其實阿德是在公益機構,利用眾多 open-solution 是蠻理想的。
既然是在 MIS 單位,建議可以花些許時間來練習及學習如 Linux 系統管理等等的。
哈! 對不起, 我問太快了! 後來仔細看一下您文章的內容~~
原來就是 Virtual Host 的東東…
只是, 太多東西要自己動手改設定檔! 看來我得多學習一下才行了!
問點跟本文似乎有關又不是那麼有關的問題…
Apache 可以像 IIS 一樣設定多個 DNS 不同的站台嗎? 如果可, 那邊有參考資料(網頁)可以先讓我上去瞭解一下該怎麼設…?
我其實也很想把 Blog 換到 Linux 上, 但我 Blog 分給很多朋友用, 各有不同的 DNS, 就是一直卡在這個問題上.
Hi simon:
非常、非常的好用。建議你可以至我所介紹的網站參考其資訊。
要把 xoops 資料轉碼成 utf-8,不會太難,但要很小心。
我會先以 big5 的編碼 export 出來,然後利用如 ConvertZ 轉碼成 utf-8 即可。
再來,就利用 commnad-prompt 模式來執行 import 的動作。
Hi yungyuc:
聽過 iconv,但不知道那是幹嘛的?
因為一直是在 Windows-based 的環境操作應用軟體,所以,對 ConvertZ 等是比較熟悉。
其實對於 System level,我是盡量力求穩定、效能不錯以及普及度高的應用系統平台。
因為畢竟個人的正職並不在此領域內,玩多了會擔心有點 “走火入魔” 🙂
不過,很感謝提供這些資訊給我,平常吸收資訊時,我就會特別留心注意的。 🙂
XoopS 2 UTF-8版本好用嗎?
我也在考慮要不要把Xoops,
改成UTF-8版本說,
不然有時後用wordpress模組,
Ping 出去的文章會有亂碼.
不過想到要把Mysql內,
Xoops現有的Big5資料,
轉成UTF-8,就一個頭兩個大說. 😛
轉碼如果透過 iconv 可能會更標準。
不過 ConvertZ 對非標準的 Big5 有比較大的容忍度 (印象中)。
聽到 PHP,就忍不住想推銷一下 Python/Zope/Plone,比 PHP+OSS RDBMS 更為有趣的東西。雖然目前的商業應用少得多。