mac os big sur 安装 PHP 拓展:XDebug
在安装过程中,会出现:fatal error: 'php.h' file not found
,然后之前的版本只需要关闭csrutil
,具体可以参考我之前的一篇博客,但是在升级到Big Sur之后就没有用了,然后我找到另一种解决方式,就是上面那篇参考博客。
这里我复述一下,防止博客它的博客地址失效。
解决方法简单来说就是我们重新定义一个phpize
和php-config
,然后在编译的时候用我们重新定义的这两个文件。
环境检查
运行:
xcrun --show-sdk-path
检查有没有输出,如果没有,检查有没有安装XCode,没有就去安装一下,接下来运行:
xcode-select --install
这一步可能出现很多问题,没有关系,随便折腾,反正把最开始的那个路径显示出来。
具体步骤
首先创建一个目录,用来存储我们之后的用到文件,这里参考博客,就放在自己的home目录下了:
mkdir ~/php-private/
接下来就是把现有php版本的phpize和php-config拷贝到我们上面的目录中:
cp /usr/bin/phpize ~/php-private/
cp /usr/bin/php-config ~/php-private/
上面的目录可以采用:
whereis phpize
whereis php-config
这种方式来找原本的文件在哪里。
接下来修改我们拷贝下来的phpize
中的内容,在其中进行如下修改:
- 创建一个变量:
XCODE_SDK_ROOT=$(/usr/bin/xcrun --show-sdk-path)
- 修改
includedir
的值:
includedir="`eval echo ${XCODE_SDK_ROOT}${prefix}/include`/php"
具体的修改就是:
这里在博客中是用一个工具来实现的,但是我们可以自己手动改,结果是一样的。
修改完phpize
,接下来就是拷贝下来的php-config
中的内容:
- 创建变量:
XCODE_SDK_ROOT=$(/usr/bin/xcrun --show-sdk-path)
- 修改
includedir
的值:
include_dir="${XCODE_SDK_ROOT}${prefix}/include/php"
具体的步骤就是:
编译
在完成上面的步骤之后,接下来就是开始编译代码了。来到原本运行phpize
的源代码目录下:
将之前的phpize
替换成~/php-private/phpize
,这里就是采用我们修改后的phpize
命令替换之前的phpize
命令。
同理,在运行./configure
时,指定`php-config位置:
./configure --enable-xdebug --with-php-config=你之前定义修改后的php-config的代码位置,注意,这里用绝对路径,不要用~/php-private/php-config这样的值
这样就完成了采用新的php配置文件来编译源代码,编译成功之后就是老套路了,修改php.ini
,采用php -m
来查看配置是否生效。