{Linux 架站三雄}Apache + MySQL + PHP 安裝備忘錄

在 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 官方網站的文件。在此僅是個人的安裝備忘紀錄,並不是完整而詳細的安裝步驟。

  1. 下載 MySQL 4.1.10 RPM版本,利用 RPM 方式升級 MySQL 系統。
  2. 移除 Apache and PHP 的 RPM 版本。
  3. 下載 Apache 2.0.53 and PHP 4.3.10 的原始碼版本。
  4. Compile Apache(底下指令為連續的一行):
    • ./configure –prefix=/usr/local/apache2 –enable-mods-shared=most –ena
      ble-rewrite –enable-so
    • make
    • make install
  5. 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
  6. 確定安裝與編譯過程沒有發生錯誤,如此即可完成基礎平台的安裝

再來,就是要做一些設定,如,設定 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 的整合方案。看來對企業的應用系統等在成本與穩定性、實用性等的考量與應用會有很大的經濟價值。

文章導覽

   

共有 11 則迴響

  1. &leftsign;Linux 架站三雄&rightsign;Apache + MySQL + PHP 安裝備忘錄
    &leftsign;Linux 架站三雄&rightsign;Apache + MySQL + PHP 安裝備忘錄 在 Linux 系統下,無論你安裝各種類型的應用系統,如 XOOPS、Blog、Wiki、Open-Source ..

  2. Hello yungyuc:

    太好了,又知道有個這麼不錯的 Linux 轉碼應用工具。感謝您提供如此詳細的資訊。

    順帶說明一下,我的確是在 Windows-based 的環境下來 “應用” 一些相關的工具應用等程式。不過呢,這些到不是我的 “技術”,只是為系統平台的架設而 “應用” 的。

    對系統管理與應用程式等範疇,約只要足夠架設應用平台及基本的維護就 “適可而止” 了 🙂

  3. iconv 是 GNU 的一套字集轉換程式庫,
    寫 GNU 程式要作轉碼的話,用 iconv 是最方便的。
    它本身 (libiconv) 也有提供一支小小的 frontend 程式,
    就叫作 iconv。

    如果要在 Linux/Un*x 環境下寫 script 作轉碼,
    用 shell script + iconv 是蠻標準的作法。
    另外我喜歡用 Python + cjk-codec + iconv-codec,
    自動化轉碼作業的時候可以更有彈性。

    看到秘密基地主人用 ConvertZ 轉碼的時候,
    我就猜測您的技術偏向是 Windows >>> Un*x 的。
    這些也只是一些小小的經驗,
    如果不幸基地主人得撩下去玩的話,
    有個方向也蠻好。 🙂

  4. Hi 阿德:

    我都是直接看 on-line document,像 Apache 的官方網站及其討論區等。
    當然,最好還需要有懂 Linux 相關設定的朋友來協助你,這會比較好 🙂

    其實阿德是在公益機構,利用眾多 open-solution 是蠻理想的。
    既然是在 MIS 單位,建議可以花些許時間來練習及學習如 Linux 系統管理等等的。

  5. 哈! 對不起, 我問太快了! 後來仔細看一下您文章的內容~~
    原來就是 Virtual Host 的東東…
    只是, 太多東西要自己動手改設定檔! 看來我得多學習一下才行了!

  6. 問點跟本文似乎有關又不是那麼有關的問題…

    Apache 可以像 IIS 一樣設定多個 DNS 不同的站台嗎? 如果可, 那邊有參考資料(網頁)可以先讓我上去瞭解一下該怎麼設…?

    我其實也很想把 Blog 換到 Linux 上, 但我 Blog 分給很多朋友用, 各有不同的 DNS, 就是一直卡在這個問題上.

  7. Hi simon:

    非常、非常的好用。建議你可以至我所介紹的網站參考其資訊。
    要把 xoops 資料轉碼成 utf-8,不會太難,但要很小心。

    我會先以 big5 的編碼 export 出來,然後利用如 ConvertZ 轉碼成 utf-8 即可。

    再來,就利用 commnad-prompt 模式來執行 import 的動作。

  8. Hi yungyuc:

    聽過 iconv,但不知道那是幹嘛的?
    因為一直是在 Windows-based 的環境操作應用軟體,所以,對 ConvertZ 等是比較熟悉。

    其實對於 System level,我是盡量力求穩定、效能不錯以及普及度高的應用系統平台。

    因為畢竟個人的正職並不在此領域內,玩多了會擔心有點 “走火入魔” 🙂

    不過,很感謝提供這些資訊給我,平常吸收資訊時,我就會特別留心注意的。 🙂

  9. XoopS 2 UTF-8版本好用嗎?
    我也在考慮要不要把Xoops,
    改成UTF-8版本說,
    不然有時後用wordpress模組,
    Ping 出去的文章會有亂碼.
    不過想到要把Mysql內,
    Xoops現有的Big5資料,
    轉成UTF-8,就一個頭兩個大說. 😛

  10. 轉碼如果透過 iconv 可能會更標準。
    不過 ConvertZ 對非標準的 Big5 有比較大的容忍度 (印象中)。

    聽到 PHP,就忍不住想推銷一下 Python/Zope/Plone,比 PHP+OSS RDBMS 更為有趣的東西。雖然目前的商業應用少得多。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *