OSX的兩個版本(Server,
Client)都已經內建了
PHP,但不是缺乏處理雙位元字元的
iconv,
mbstring (10.4)或是處理圖檔的
gd (10.4/10.5)等重要擴充模組。對於需要建置處理雙位元或Unicode字元,以及需要處理圖片的網站,造成很多困擾。而且,
OSX上的
PHP不能像是Windows的
PHP模組,可以透過Windows本身的動態連結程式庫(
DLL)功能,直接修改一下
php.
ini 設定檔案就可以掛入
iconv,
mbstring 與
gd 模組。
在
OSX 10.5之前,
OSX 10.4上安裝具有
iconv,
mbstring 與
gd 模組的
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模組
- 登入 root 帳號;
如果不想老是用終端機程式(Terminal.app)輸入一堆指令,最好的方式是啟用OSX的 root 帳號,就能直接用 文字編輯(TextEdit.app) 軟體修改 Apache 與 PHP 的設定檔。啟動 10.5 的 root 帳號,請先參考OSX 10.5 啟動與登入 root 帳號這一篇。
- 先打開 應用程式 檔案夾,找到 文字編輯(/Applications/TextEdit.app) 備用,或是拉到 Dock 上作一個替身;

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

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

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

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

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

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

- 4會跳到這一行:
#LoadModule php5_module libexec/apache2/libphp5.so
請把一行最前面的 # 給刪除:
LoadModule php5_module libexec/apache2/libphp5.so
# 字元是httpd.conf 檔案的註記符號,只要刪掉它,Apache 就會載入內建的php5模組。

- 然後按一下S (同時按下Command鍵()與S鍵) 存檔,然後離開 文字編輯 程式。
二、測試10.5 Client內建的Apache伺服器
接下來要測試
Apache 伺服器是否能順利啟動,因為如果
httpd.conf 檔案修改不當,可能會導致
Apache 伺服器無法順利啟動,而OSX 10.5 Client並不會像 10.4 一樣會顯示無法啟動的訊息,所以必須手動測試。
- 打開 蘋果選單 > 系統偏好設置… > 共享 ;

- 在 共享 項目的側邊欄,找到 網頁共享 項目。如果 網頁共享 項目已經被勾選,請先把它取消。這個動作會關閉OSX內建的Apache網頁伺服器,要套用 httpd.conf 檔案的更動,就必須重新啟動 Apache 伺服器才行 。等到右側出現 網頁共享:關閉 之後,再勾選一次 網頁共享 項目,稍等一下,右側就會出現 網頁共享:啟用;

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

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

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

- 如果碰到 Apache 無法啟動的狀況,請用 root 帳號把有問題的 httpd.conf 檔案刪除,然後把備份的 httpd.conf 拷貝 檔案“複製並更名”為原來的 httpd.conf 。然後 關閉 然後 啟用 網頁共享 的動作。如果當初備份的 httpd.conf 拷貝 的檔案沒有問題,應該就可以順利啟動 Apache。所以,更動 httpd.conf 前一定要記得先留下正確可以運行的備份檔案。
三、測試10.5 Client內建的php模組
如果
Apache 伺服器可以正常運作,接下來要測試
php 模組是不是可以使用。
- 如果目前是以 root 帳號登入,請先登出並以一般使用者登入。如果你已經開啟了“快速切換使用者”功能,就可以從右上角的“使用者選單”選擇你要登入的帳號;

- 出現登入視窗後,輸入您的密碼;

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

- 然後,請輸入以下的 php 程式碼,只有三行:
<?php
phpinfo();
?>

- 然後存檔,從選單選擇 檔案 > 儲存為…;

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

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

- 網址正確的話,就會在瀏覽器上看到個人網站的預設歡迎頁面;

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

- 恭喜!如果你看到了測試頁,就表示你不但已經成功地啟動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): 安裝與連線伺服器」;
- 先用 Server Admin 軟體連線到OSX Server伺服器,點一下左邊側邊欄的 伺服器的名稱或位置 左方的 三角形圖示 ,底下就會顯示出目前伺服器正在運作的服務項目;

- a. 請點選 Web 服務項目;
b. 再按右上方的 Setting 圖示;
c. 接下來點下方的 Modules 標籤;
d. 把 Modules 標籤頁的底下模組欄位視窗往下捲動,找到 php5_module 項目,然後請勾選 php5_module 項目;
e. 按右下角的“Save”按鈕存檔,Server Admin 就會自動幫你修改 httpd.conf 檔案;
f.最後按左下角的 Stop Web 按鈕,把伺服器的 Web 服務關閉;

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

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

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