Update history:
2008-12-27: 重新組織了各個部分, 分出了小節便於閱讀.
添加了若干內容. 重新編寫了前言。
前言
:
LAMP系統在很多網路系統中,包括開放軟體系統,裡面被廣泛應用,OS X作為基於BSD的主流圖形化使用者介面之一的商業案頭/伺服器系統, 它本來就原生地支援LAMP的(並不完全是),只是在系統預設的情況下,LAMP中的主要元素(Apache, MySQL, and PHP)是關閉disabled的,使用者需要若干步驟來開啟enable這些功能而已。
雖然是這樣一個思路,但是在配置這些軟體的時候還是會出現各種各樣的問題, 尤其是在Leopard上面操作, 由於各個部分和版本之間的差異, 會造成一些麻煩, 所以有必要記錄下來, 以備後用; 本文也希望可以作為一個參考資料, 將各個軟體的配置情況在Mac系統上的情況給於說明; 還有就是盡量考慮到系統管理員的工作特點, 盡量使用shell命令, 以使管理工作可以盡量自動化。
OS X Leopard 10.5系統內建的各軟體版本可以滿足絕大多數系統的要求,我的系統目前是10.5.5, 它的Apache是2.2.9(目前Open Source最新版本2.2.11), 而PHP是5.2.6(現在最新版本是5.2.8). 對於在Mac系統上使用LAMP的最大問題是, 這些組件可能需要針對OS X平台的binary版本, 而且PPC/Intel/Universal Binary等可能也是一個問題,根據Apple說它們可以很好地工作在Rosetta下面,但是我沒有測試,總之這些升級可能需要等待第三方或者是Apple來發布更新。
一. Web服務:
1. Enale Apache
Apache2的程式儲存在/etc/apache2目錄中.
這個功能可以通過GUI的直觀方式開啟,分別是在Client和Server上操作的圖示:
注1
注1
作完上面的工作就可以測試一下web server是否工作了。開啟任何一個瀏覽器,輸入http://localhost/, 就可以看到Apache的簡單的畫面了.
使用shell命令的話, 就使用:
- sudo apachectl start
同時, OS X的Web serice有一個特性,就是它自動地為原生每個使用者都自動開啟使用者的web service, 也就是說你可以在瀏覽器上輸入使用者的地址就可以看到使用者的web頁面了,比如: http://localhost/~student/.
2. 還有一點就是,系統預設的web內容的根目錄是/Library/WebServer/Documents, 而每個使用者自己的是/Users/使用者名稱/Sites/. 這些設定可以在/etc/apache2/httpd.conf檔案中找到相應的設定.
3. 防火牆:
如果你希望讓區域網路甚至外網的使用者訪問你的web, 那麼你要確認一下OS X的防火牆是不是對web service開啟了連接埠,雖然是預設情況下,當你開啟web server後系統自動開啟該連接埠,但是如果出現無法訪問問題的話,還是要檢查一下。該設定在顯示:
4. 禁止使用者web服務:
如果管理員希望禁止某個使用者的web服務, 很好解決, 只要刪除或者移動對應使用者的conf檔案就可以了, 對應於每個使用者的conf檔案可以在/etc/apache2/users/目錄中可以找到.
二. PHP
1. Enable PHP
php的設定檔php.ini儲存於/etc/目錄中, 它的程式部分在/usr/apache2/libexec/目錄中.
其實,對於PHP的支援是已經內建的,只不過是被注釋掉了。看看,
發現這一行: #LoadModule php5_module libexec/apache2/libphp5.so. 最前面有一個#符號,這一行變成了注釋行,只要是我們刪除那個#符號然後重新運行Apache就可以了。
在變更之前,我們作一個備份,然後再修改內容,是一個好的習慣。
- cp /private/etc/apache2/httpd.conf /tmp/httpd.conf
- mv /private/etc/apache2/httpd.conf /private/etc/apache2/httpd.conf.org
然後使用任何一個你熟悉的文字編輯器編輯/tmp/httpd.conf,刪除那個#號。我使用在Terminal裡面的nano, 它是內建的編輯器:
- nano /tmp/httpd.conf
按鍵ctrl+w輸入php5,這樣nano就找到了那一行,刪除後,按鍵Ctrl-x, 它詢問你是否儲存變更,輸入y, 再按斷行符號,就可以儲存了,最後把/tmp目錄下的檔案挪回來就好了。(如果系統詢問password,那麼輸入administrator的密碼)
- mv /tmp/httpd.conf /private/etc/apache2/
- sudo chown root:wheel /private/etc/apache2/httpd.conf
2. 設定變更的檢驗:
首先是運行下面的命令來重新啟動apache或者重新啟動電腦也可以:
- sudo /usr/sbin/apachectl restart
最後是檢驗結果了。開啟TextEdit,然後輸入下面一行代碼:
- <?php phpinfo(); ?>
儲存到使用者的sites目錄下面的檔案名稱為phpinfo.php檔案,再瀏覽器的地址欄輸入http://localhost/~test/phpinfo.php,只要是上面的步驟都正確就可以看到php的infomation頁面了.
3. Use SQLite.
在PHPInfo裡面,可以找到, sqlite已經被開啟了,見:
上面這些過程, 操作起來一般來說沒有問題, 畢竟是Leopard內建的, 但是節下來的工作就需要一些耐心了, 請看Mac OS X Leopard: 配置Apache, PHP, SQLite, MySQL, and phpMyAdmin(二).
注1: 資源來自於ref裡面的頁面。
Ref: http://developer.apple.com/mac/articles/internet/phpeasyway.html