1. 其實我真的沒想過安裝歷程會這麼Emmm… 怎麼描述呢,就是那種其實你要說難不難,但是就是也挺噁心,還有Mac 的本機自備環境以及有些文件不自動載入所引起的各種問題。
2.還有就是,這樣的問題真的很少資料,所以記錄一下。
且是 Xcode 處於未安裝狀態。
本機自備 PHP 版本 7.3
本地的環境設定工具,用的是 MxSrvs ,一款 Mac 版 PHP 開發環境。工具官網:http://www.xsrvs.com/ 工具雖小,但五臟俱全,開發完全足夠。
官網需求
這裡多說一句,雖然官方沒有標註autoconf 需要多少版本以上,但是編譯安裝的時候需要2.68 以上。
從Git 下載原始碼套件下載位址,我下載的是
因為是本地,所以我就把下載的套件直接進入控制台目錄了,就不寫前面的什麼CD目錄之類的了,然後運行下面的程式碼,因為我要編譯到工具裡的PHP 版本中,所以用的是工具提供的phpzie
。
/Applications/MxSrvs/bin/php/bin/phpize./configure \--enable-openssl \--enable-http2 \make && sudo make install
不意外的遇到了問題1,這個問題,百度、必應都沒找到相關的東西,然後問了一些群友,有的人說是因為版本太高的問題,說最適合Swoole 的版本是7.2 版本。
最終,指向問題本質的回答給了我靈感,大致答案的意思是,從macOs 10.10 以後的版本開始, Mac 自帶的PHP 版本,取消了部分資料夾,也就是說,自帶的PHP 沒有編譯安裝所需的檔案。
知道原因,其實就很好解決了,畢竟我們開發,沒有幾個用自帶環境的,所以,只需要考慮,怎麼將工具使用的PHP 版本,動態到系統環境變量即可。由於以前有設定過系統環境變數路徑,稍微有點映像,就百度了設定環境變數的方法。
其實就是透過.bash_profile 來設定環境變數
但是,你重啟之後,每次都需要在命令列輸入
source ~/.bash_profile
來使之生效,這樣就比較麻煩,我們可以利用Mac 自動載入.zshrc 檔案的機制,把
source ~/.bash_profile
加入到檔案尾,使之每次不需要人工輸入。達到動態設定環境變數的目的。
至此,第一個問題解決。
繼續第二次安裝,然後出現了第二個問題,解決這個問題,就比較繞了。
其實本質上遇到的問題都是同樣的,都是因為Mac 自帶的軟體,都沒有這個.h 的頭文件,所以才出現這些問題的,第一個問題,透過綁定到工具的變量,實現了變更環境變量,算是取巧的一個處理方法,openssl 這個擴展講道理還是用到的地方很多的,所以就安裝在自己的機器整體環境中。
在安裝openssl 之前,需要先安裝Xcode ,這一步,我沒有省去,好像在Mac 上好多的環境變量都跟Xcode 文件目錄掛鉤,著實噁心,但是也不能不安裝,安裝完之後,我們再安裝openssl ,命令列輸入
brew install openssl
如果偵測到你的已經存在,會提示你重新安裝可以執行
brew reinstall openssl@1.1
其中有一句,就是让把这个添加到
If you need to have openssl@1.1 first in your PATH run: echo 'export PATH="/usr/local/opt/openssl@1.1/bin:$PATH"' >> ~/.zshrc
把这个也添加之前修改过的 .zshrc 文件即可。
接下来就是重头戏了。说白了就是简单的粘贴复制,把 openssl 的文件夹,路径为
/usr/local/Cellar/openssl@1.1/1.1.1h/include/openssl
复制到
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/
目录下即可
至此,第二个问题解决。
然后再运行编译 Swoole ,等待编译完成就可以了
打完收工!
以上是Mac 編譯安裝 Swoole 遇到 .h 檔案不存在問題解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!