前言
首先,十分感謝開發 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
逐行對比,然後修改成對應的對應配置。
這時候基本上那就可以說是做了所有的工作,可以享受成果了。