2009年2月22日 星期日

OSX 10.5 啟用 PHP5

OSX的兩個版本(Server, Client)都已經內建了 PHP,但不是缺乏處理雙位元字元的 iconv, mbstring (10.4)或是處理圖檔的 gd (10.4/10.5)等重要擴充模組。對於需要建置處理雙位元或Unicode字元,以及需要處理圖片的網站,造成很多困擾。而且,OSX上的PHP不能像是Windows的PHP模組,可以透過Windows本身的動態連結程式庫(DLL)功能,直接修改一下 php.ini 設定檔案就可以掛入 iconv, mbstringgd 模組。

OSX 10.5之前,OSX 10.4上安裝具有 iconv, mbstringgd 模組的PHP最簡單的方式,除了直接安裝一些AMP整合套件(Apache+MySQL+PHP)如 MAMP 之外,就是安裝 Marc Liyanage 編譯好的 PHP for OSX 模組。安裝AMP套件最簡單,但是OSX既然已經內建了Apache (2.x for OSX Server & 10.5, 1.x for Client 10.4),實在不需要再多裝一個;另外,AMP套件中的MySQL也不能自己選擇版本。因此 Marc Liyanage 的版本一直是許多人Mac使用者的最佳選擇。但可惜在10.5之後,就不再提供可以直接安裝的 Package 的版本,而必須以終端機程式,手動鍵入指令的方式來安裝。

如果不需要 iconv, mbstring (10.4)或是 gd 模組,使用OSX內建的php模組是不錯的選擇。以下介紹OSX 10.5 Client與Server版本啟動內建php模組的方法。

一、啟動OSX 10.5 Client內建的PHP模組

  1. 登入 root 帳號;
    如果不想老是用終端機程式(Terminal.app)輸入一堆指令,最好的方式是啟用OSX的 root 帳號,就能直接用 文字編輯(TextEdit.app) 軟體修改 Apache 與 PHP 的設定檔。啟動 10.5 的 root 帳號,請先參考OSX 10.5 啟動與登入 root 帳號這一篇。

  2. 先打開 應用程式 檔案夾,找到 文字編輯(/Applications/TextEdit.app) 備用,或是拉到 Dock 上作一個替身;

  3. 另外打開一個新視窗,然後按 前往選單 > 前往檔案夾… 選單;

  4. 前往檔案夾: 欄位中輸入: /etc/apache2 ,然後按下“前往”按鈕;


  5. 找到 httpd.conf 檔案,這是 Apache 網頁伺服器的設定檔。先不要打開它!先按一下鍵盤捷徑 D (同時按下Command鍵()與D鍵)複製一份拷貝,萬一設定錯誤導致網頁伺服器無法順利啟動時,就可以用備份的設定檔來恢復。


  6. httpd.conf 檔案不能直接點二下打開,把 httpd.conf 檔案拉到上 文字編輯(/Applications/TextEdit.app) 就可以開啟了;

  7. 因為字元編碼與隱藏字元(如斷行符號)處理的問題,有人建議是不要直接用 文字編輯 而用 BBEdit 之類的文字處理器比較安全,不過我用 文字編輯 是還沒發現啥大問題,如果不放心又不想花錢,免費的 BBEdit Lite 是不錯的選擇 。

  8. 接下來就要修改 httpd.conf 檔案。按一下鍵盤捷徑 D (同時按下Command鍵()與F鍵)打開尋找視窗,在 尋找 欄位輸入 php 然後按“下一個”按鈕;

  9. 4會跳到這一行:
    #LoadModule php5_module libexec/apache2/libphp5.so

    請把一行最前面的 #刪除
    LoadModule php5_module libexec/apache2/libphp5.so

    # 字元是httpd.conf 檔案的註記符號,只要刪掉它,Apache 就會載入內建的php5模組。

  10. 然後按一下S (同時按下Command鍵()與S鍵) 存檔,然後離開 文字編輯 程式。

二、測試10.5 Client內建的Apache伺服器

接下來要測試 Apache 伺服器是否能順利啟動,因為如果 httpd.conf 檔案修改不當,可能會導致 Apache 伺服器無法順利啟動,而OSX 10.5 Client並不會像 10.4 一樣會顯示無法啟動的訊息,所以必須手動測試。
  1. 打開 蘋果選單 > 系統偏好設置… > 共享
  2. 共享 項目的側邊欄,找到 網頁共享 項目。如果 網頁共享 項目已經被勾選,請先把它取消這個動作會關閉OSX內建的Apache網頁伺服器,要套用 httpd.conf 檔案的更動,就必須重新啟動 Apache 伺服器才行 。等到右側出現 網頁共享:關閉 之後,再勾選一次 網頁共享 項目,稍等一下,右側就會出現 網頁共享:啟用

  3. 接下來可以試試 Apache 伺服器是否順利運行。注意!如果您是使用 root 帳號的話,請不要點選右下角 您的個人網站:下的 http://x.x.x.x/~root/ 的連結,會出現沒有存取權限的錯誤!這是由於網頁共享時,系統會用 www 這個隱藏的使用者來存取你共享的網頁,但為了安全起見, www 是不能取用 root 帳號的任何目錄的。所以要測試的話,請點一下右邊中間 您的電腦網站:下的 http://x.x.x.x/ 這個連結,不過如果您的預設瀏覽器是 Safari 的話,你可能會看到一個滿是亂碼的網頁:

  4. 這是 Safari 沒有把網頁編碼正確的轉換為 Big5(FireFox 倒是沒有問題,不會出現亂碼),請手動地選擇一下Safari 選單 顯示方式 > 文字編碼 > 繁體中文(Big 5),就可以看到Apache的宣告網頁了。


  5. 不過萬一不幸的話,你很可能換看到“無法連到伺服器”的錯誤提示,這就表示您修改的httpd.conf 檔案出了問題,導致 Apache 無法順利啟動。
    在 OSX 10.4 的時代,內建的 Apache 1.4 無法啟動時,可以在 系統偏好設置… > 共享 > 網頁共享 項目看到“網頁共享:無法啟動”的訊息,但 OSX 10.5 卻還是會顯示“啟用”,真是一大退步!


  6. 如果碰到 Apache 無法啟動的狀況,請用 root 帳號把有問題的 httpd.conf 檔案刪除,然後把備份的 httpd.conf 拷貝 檔案“複製並更名”為原來的 httpd.conf 。然後 關閉 然後 啟用 網頁共享 的動作。如果當初備份的 httpd.conf 拷貝 的檔案沒有問題,應該就可以順利啟動 Apache。所以,更動 httpd.conf 前一定要記得先留下正確可以運行的備份檔案。

三、測試10.5 Client內建的php模組

如果 Apache 伺服器可以正常運作,接下來要測試 php 模組是不是可以使用。
  1. 如果目前是以 root 帳號登入,請先登出並以一般使用者登入。如果你已經開啟了“快速切換使用者”功能,就可以從右上角的“使用者選單”選擇你要登入的帳號;

  2. 出現登入視窗後,輸入您的密碼;
  3. 登入後,接下來要製作一個php測試檔案。這時還不需要動用到 DramWeaver 之類的網頁軟體,用 文字編輯(/Applications/TextEdit.app) 或 BBEdit Lite 就綽綽有餘。打開 文字編輯 軟體後,先從選單 格式 > 製作純文字格式 ,以免製作出的檔案藏了一些與 php 衝突的控制字元;

  4. 然後,請輸入以下的 php 程式碼,只有三行:

    <?php
    phpinfo();
    ?>


  5. 然後存檔,從選單選擇 檔案 > 儲存為…

  6. 存檔時請注意檔案格式與路徑。請將存檔路徑更換到 個人家目錄/網站 (/Users/用戶名稱/Sites) 底下,檔案名稱取為 phpinfo.php
    對話框的下方 純文字編碼選單,由於沒有中文字,所以選擇 Unicode/西方語系/繁體中文 皆可。
    注意!
    存檔對話框的下方 隱藏副檔名如果未提供副檔名,請使用“.txt”。這兩個項目請都不要勾選!框然後按下“儲存”按鈕。

  7. 接下來開啟你的瀏覽器,輸入你的網址,例如 http://127.0.0.1/~用戶名稱
    如果你稿不清楚自己的用戶名稱或一直無法輸入正確的網址,也可以打開 蘋果選單 > 系統偏好設置… > 共享 > 網頁共享 項目,點選右下角的 你的個人網站: 下方的網址;
  8. 網址正確的話,就會在瀏覽器上看到個人網站的預設歡迎頁面;

  9. 然後在你的瀏覽器上個人網站的網址後面,加入 phpinfo.php 檔名,
    例如:http://127.0.0.1/~用戶名稱/phpinfo.php
    然後按下鍵盤的 Enter 鍵或瀏覽器的 前往 按鈕,就可以打開 php 測試網頁;

  10. 恭喜!如果你看到了測試頁,就表示你不但已經成功地啟動OSX 10.5內建的 Apache 網頁伺服器,也正確地啟動了系統內建的 php 模組。

四、啟動OSX 10.5 Server內建的PHP模組

啟動OSX 10.5 Server內建的PHP模組要比Client版簡單多了。不過如果你不能直接登入OSX Server,或使用Client版以遠端遙控的方式管理的話,就需要安裝Server版的第二片 Admin Tools 光碟裡的 Server Administration Software,用 Server Admin 軟體與OSX Server連線。安裝 Server Admin 軟體與OSX Server連線的方法,請先參考這一篇:「OSX Server 10.5 Server Admin(1): 安裝與連線伺服器」;
  1. 先用 Server Admin 軟體連線到OSX Server伺服器,點一下左邊側邊欄的 伺服器的名稱或位置 左方的 三角形圖示 ,底下就會顯示出目前伺服器正在運作的服務項目;
  2. a. 請點選 Web 服務項目;
    b. 再按右上方的 Setting 圖示
    c. 接下來點下方的 Modules 標籤;
    d. 把 Modules 標籤頁的底下模組欄位視窗往下捲動,找到 php5_module 項目,然後請勾選 php5_module 項目;
    e. 按右下角的“Save”按鈕存檔,Server Admin 就會自動幫你修改 httpd.conf 檔案;
    f.最後按左下角的 Stop Web 按鈕,把伺服器的 Web 服務關閉;

  3. Server Admin 軟體會提示是否要關閉 服務(Server)。關閉一個服務並不會影響伺服器上其他的服務功能,請按下“Stop Now”按鈕;

  4. 跟 Client 版本的 Apache 伺服器一樣,必須關閉後再重新啟動,才能啟動 php 模組。請按左下角 Start Web 按鈕,稍後 Web 服務的圖示就會變成綠燈,表示Web 服務已經啟動;

  5. 最後一個動作,請按照上面 “三、測試10.5 Client內建的php模組” 方法,製作一份 phpinfo.php 測試檔案,上傳到伺服器上來測試 Apache 與 php 模組是否能正常運作。

沒有留言:

張貼留言