PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

Mac 编译安装 Swoole 遇到 .h 文件不存在问题解决方案

谨言慎行
谨言慎行 原创
2020-11-05 16:26:30 1897浏览

前言

1. 其实我是真的没想过安装历程会这么 Emmm… 怎么描述呢,就是那种其实你要是说难也不难,但是就是也挺恶心,还有就是 Mac 的本机自带环境以及有些文件不自动加载引起的各种问题。

2.还有就是,这样的问题真的很少资料,所以记录一下。


本机环境


并且是 Xcode 处于未安装状态。
本地自带 PHP 版本 7.3
本地的环境配置工具,用的是 MxSrvs ,一款 Mac 版 PHP 开发环境。工具官网:http://www.xsrvs.com/ 工具虽小,但是五脏俱全,开发完全足够。

重点问题

1. 出现找不到 PHP 的头部文件

2. 出现找不到 Openssl 的头部文件(报错信息跟 PHP 的差不多)

准备工作

官网需求

这里多说一句,虽然官方没有标注 autoconf 需要多少版本以上,但是编译安装的时候需要 2.68 及以上。

从 Git 下载源码包 下载地址,我下载的是

安装过程

因为是本地,所以我就把下载的包直接进入控制台目录了,就不写前面的什么CD目录之类的了,然后运行下面的代码,因为我要编译到工具里的 PHP 版本中,所以用的是工具提供的 phpzie


但是,你重启之后,每次都需要在命令行输入

source ~/.bash_profile

来使之生效,这样就比较麻烦,我们可以利用 Mac 自动加载 .zshrc 文件的机制,把

source ~/.bash_profile

添加到文件尾,使之每次不需要人工输入。达到动态设置环境变量的目的。

至此,第一个问题解决。

继续第二次安装,然后出现了第二个问题,解决这个问题,就比较绕了。
其实本质上遇到的问题都是同样的,都是因为 Mac 自带的软件,都没有这个 .h 的头文件,所以才出现这些问题的,第一个问题,通过绑定到工具的变量,实现了变更环境变量,算是取巧的一个处理方法,openssl 这个扩展讲道理还是用到的地方很多的,所以就安装在自己的机器整体环境中。
在安装 openssl 之前,需要先安装 Xcode ,这一步,我没有省去,好像在 Mac 上好多的环境变量都跟 Xcode 文件目录挂钩,着实恶心,但是也不能不安装,安装完之后,我们再安装 openssl ,命令行输入


如果检测到你的已经存在,会提示你重新安装可以运行

brew reinstall openssl@1.1


其中有一句,就是让把这个添加到

把这个也添加之前修改过的 .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中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。