macOS提供了直觀的用戶界面、強大的功能和穩(wěn)定性,成為廣大用戶首選的操作系統(tǒng)之一。PHP具有簡單易學(xué)、靈活、強大和可擴展的特點,被廣泛用于構(gòu)建動態(tài)網(wǎng)頁、Web應(yīng)用程序和服務(wù)端API。macOS與PHP的結(jié)合剛好為開發(fā)者提供了一個強大的環(huán)境來構(gòu)建和運行PHP應(yīng)用程序。
一、使用軟件包
macOS 下有幾個預(yù)編譯和打包的 PHP 版本??梢酝ㄟ^它使用標(biāo)準(zhǔn)的配置的 PHP,但是若需要不同的功能集(比如一個安全服務(wù)器,或者一個不同的數(shù)據(jù)庫驅(qū)動程序),可能需要自己編譯 PHP 和/或 web 服務(wù)器。如果不熟悉如何自己編譯軟件,可以試著找一下包含自己所需功能的 PHP 預(yù)編譯版本。
在 macOS 上安裝 PHP 最簡便的方式是用 homebrew:
- 安裝 homebrew:參考 brew.sh 上的說明
- brew install php
下面可選資源提供了在 macOS 上易于安裝的軟件包和預(yù)編譯的二進制 PHP。
- MacPorts:http://www.macports.org/
- Liip:? http://php-osx.liip.ch/ (PHP 5.3 – PHP 7.3; 已廢棄)
- Fink: http://www.finkproject.org/
二、使用內(nèi)置PHP
PHP 從 macOS X(10.0.0)開始,到 macOS Monterey(12.0.0)之前內(nèi)置到系統(tǒng)中。在默認的 web 服務(wù)器中啟用 PHP,只需將 Apache 配置文件 httpd.conf 中的幾行配置指令最前面的注釋符號去掉,而 CGI 或 CLI 默認都可使用(可以很容易的被終端程序使用)。建議將 PHP 升級到最新的版本,在大多數(shù)活躍的軟件中, 新的版本會修復(fù)錯誤和添加新的功能,PHP 也是如此。按照以下的使用說明,可以快速的建立一個本地 PHP 開發(fā)環(huán)境。
標(biāo)準(zhǔn)的安裝類型為 mod_php,在 macOS 的 Apache web 服務(wù)器(默認 web 服務(wù)器,可以從系統(tǒng)設(shè)置中訪問)中啟用 PHP 包含以下的步驟:
1、找到并打開Apache的配置文件;
默認情況下,這個配置文件的位置是:/private/etc/apache2/httpd.conf。 使用 Finder 或者 Spotlight 來找到這個文件可能不是很容易的事情,因為在默認情況下它一般是 root 用戶擁有所有權(quán)的私有文件。
注意: 要打開這個文件,可以在命令行下面使用基于 Unix 的文本編輯器,例如 nano,因為他的屬主是 root,所以我們需要使用 sudo 來打開(以 root 用戶權(quán)限)。例如我們在 Terminal 程序中敲入下面的指令(操作后,會提示輸入密碼):sudo nano /private/etc/apache2/httpd.conf 注意 nano 中的命令:^w(搜索),^o(保存),以及 ^x(退出)。^ 表示 Ctrl 鍵。
在 Mac OS X 10.5之前的版本中捆綁的是舊版本的 PHP 和 Apache。因此在舊的計算機中 Apache 配置文件的位置可能是 /etc/httpd/httpd.conf。
2、使用文本的編輯器取消注釋(刪除前面的 #)看起來類似于下面的行(這兩行常常不在一起,需要在文件中找到這兩行):
# LoadModule php5_module libexec/httpd/libphp5.so # AddModule mod_php5.c
注意位置/路徑。如果在以后重新編譯了 PHP,以上文件應(yīng)被更換或者注釋掉。
3、確保將所需要的文件擴展名解析為 PHP(例如:.php .html 以及 .inc),否則不能正常運行;
由于以下的配置已經(jīng)寫入 httpd.conf(自 Mac Panther 版起),一旦 PHP 被啟用則 .php 文件會被自動解析為 PHP 腳本。
<IfModule mod_php5.c> # If php is turned on, we respect .php and .phps files. AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps # Since most users will want index.php to work we # also automatically enable index.php <IfModule mod_dir.c> DirectoryIndex index.html index.php </IfModule> </IfModule>
注意:在 Mac OS X 10.5(Leopard)以前版本中,捆綁的是 PHP 4 而不是 PHP 5,因此上面的配置指令稍有不同,需要將 5 更改為 4。
4、確保 DirectoryIndex 加載了所需的默認索引文件;
這個也是在 httpd.conf 中設(shè)置的。 通常情況下使用 index.php 和 index.html 。默認情況下 index.php 會被啟用,因為在我們上面的配置指令中寫明了。根據(jù)實際情況可以做相應(yīng)的調(diào)整。
5、設(shè)置 php.ini 的位置或者使用默認的位置;
macOS 上通常默認的位置是 /usr/local/php/php.ini ,調(diào)用 phpinfo() 也可以得到此信息。如果沒有使用 php.ini,PHP 將使用所有的默認值。參見常見問題中的尋找 php.ini。
6、定位或者設(shè)置 DocumentRoot;
這是網(wǎng)站所有文件的根目錄。此目錄中的文件由 web 服務(wù)器提供服務(wù),從而使得 PHP 文件將在輸出到瀏覽器之前解析為 PHP 腳本。通常情況下默認的路徑是 /Library/WebServer/Documents,但是可以根據(jù)需要在 httpd.conf中設(shè)置為任何其他目錄。另外,用戶自己的缺省 DocumentRoot 是 /Users/yourusername/Sites。
7、創(chuàng)建一個 phpinfo() 文件;
phpinfo() 將會顯示PHP的相關(guān)系統(tǒng)信息??梢栽?DocumentRoot 下創(chuàng)建一個 PHP 文件,其代碼如下:
<?php phpinfo(); ?>
8、重啟 Apache,然后從瀏覽器訪問上面創(chuàng)建的文件。
要重啟Apache,可以在 shell 中執(zhí)行 sudo apachectl graceful,也可以停止/啟動 macOS 系統(tǒng)首選項中的“Personal Web Server”選項。默認情況下,從瀏覽器訪問本地文件的 URL 一般類似于:http://localhost/info.php,或者使用:http://localhost/~yourusername/info.php 來訪問用戶自己 DocumentRoot 中的文件。