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中文网其他相关文章!