您的位置:首页 > 编程语言 > PHP开发

Mac 下编译 PHP 扩展遇到的一些问题

2018-02-09 15:52 597 查看
    MacOS 每次更新都会给编译 PHP 扩展带来一些麻烦,今天在安装 PCNTL 扩展的时候又遇上了,所以记录一下。
    我的系统版本是 macOS High Sierra 10.13.3,PHP 版本是 PHP-7.1.7。
    首先我从官网下载跟我系统版本相同的 PHP,默认下载到 Downloads 目录下面,之后运行 phpize,提示如下错误:grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory    使用 vim 查看 phpize,发现 phpize 默认的根目录是 /usr/include/php,我在 /user/include/ 目录下新建 php 目录,并将下载的代码 mv 到该目录下。
    重新运行 phpize,工作正常。
    运行 ./configure,工作正常。
    运行 make,提示如下错误:/usr/include/php/Zend/zend_portability.h:48:11: fatal error: 'zend_config.h' file not found    zend_config.h 文件缺失,我看了下,目录下确实没有这个文件,以为是下载的遗漏了,然后去 github php-src 里面也没找到。百度的结果是这个文件在 Xcode 的目录下面有。
    在“/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/php”这个目录下面存在该文件。将文件复制到当前 php 目录下,重新编译。
    后面会一直提示找不到“php_config.h tsrm_config.h build-defs.h”等文件,逐个从 Xcode 目录下将这些文件复制到当前 PHP 目录下,之后编译成功。
    编译成功之后在 php.ini 文件中将扩展添加进去,重启 apache,查看 phpinfo,可以看到扩展已经安装成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: