前言
首先,十分感謝開發 MxSrvs 的作者,能讓在 Mac 上開發 PHP 變得如此簡單,並且不那麼繁瑣。
我手動編譯有兩條原因:
1.畢竟現在 PHP 8.1 都出很久了,再不使用一下 8 版本,好像要有億點點?? 說不過去
2.MxSrvs 提供的已編譯好的最高版本僅到 PHP 7.4.6
因為以前想編譯 PHP 7.2 的時候,跟作者發過郵件溝通,作者給的回覆是正常編譯就好。最後發現,作者提供了後續一些好用的版本編譯,我也就沒有自己實際操作過去編譯到本地以及去適配到 Mxsrvs 這個工具。
開始準備工作
下載 PHP 8.0
PHP 官方下載
進入到 MxSrvs 的主程式路徑下的 /Applications/MxSrvs/bin
,根據 Mxsrvs 的命名規則,建立一個 php_8.0.16
資料夾,用來存放我們編譯後的檔案
進入目錄有兩種方法:
1、點選 MxSrvs 工具狀態列小圖示 -> 定位目錄 -> 主程式目錄 -> 雙擊進入 bin
資料夾
2、開啟訪達 -> 應用程式 -> 右邊搜尋 MxSrvs
-> 雙擊進入 MxSrvs
-> 雙擊進入 bin
資料夾
編譯開始
解壓下載的檔案,得到 [ php-8.0.16] 資料夾
編譯命令:
./buildconf --force./configure --prefix=/Applications/MxSrvs/bin/php_8.0.16 \--with-config-file-path=/Applications/MxSrvs/bin/php_8.0.16/etc \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-pear \--with-zlib \--with-curl \--enable-mysqlnd \--enable-pdo \--enable-fpm \--enable-cli \--without-iconv sudo make && sudo make installsudo cp php.ini-development /Applications/MxSrvs/bin/php_8.0.16/etc/php.ini
等編譯跑完,編譯期間需要輸入兩次(電腦)密碼,因為用了 sudo
一般安裝的時候,也不會遇到太多的缺失的元件之類的。如果缺東西,基本是缺什麼安裝什麼即可
brew install xxxx
然後再次編譯就行了。
適配 MxSrvs
我們重新啟動 MxSrvs 工具,這個時候就可以看到我們編輯的 PHP 版本了,切換到
8.0.16
,這個時候點選啟動按鈕是啟動不了的。
中間的啟動錯誤圖,因為沒有截圖,所以…
第一步,把所有編譯的時候,設定的資料夾名稱 php_8.0.16
替換成 php
,因為 MxSrvs 會在你切換 PHP 版本的時候,會把當前切換版本目錄改成 php
。
我是用
VScode
,把資料夾拖到編輯器,然後全域性搜尋替換的。
第二步,分別把 /Applications/MxSrvs/bin/php/etc
目錄下的檔案 php-fpm.conf.default
複製到當前目錄並重新命名為 php-fpm.conf
,還有就是 /Applications/MxSrvs/bin/php/etc/php-fpm.d
下的 www.conf.default
複製到當前目錄並重新命名為 www.conf
第三步,也是比較重要的一步,需要把我們編輯的 PHP 版本的組態檔 /Applications/MxSrvs/bin/php/etc/php.ini
與 MxSrvs 提供的版本的 pph.ini
逐行對比,然後修改成對應的相應設定。
這個時候基本那就可以說是做了所有的工作,可以享受成果了。