多版本PHP编译安装扩展so

  • 发表于
  • PHP

系统中装有多个版本PHP,编译so的时候会找默认的PHP版本进行编译,这样可能编译会出错,并且就算编译成功也不是我们想要的指定版本PHP扩展。

php-config

php-config 是一个简单的命令行脚本用于获取所安装的 PHP 配置的信息。

在编译扩展时,如果安装有多个 PHP 版本,可以在配置时用 --with-php-config 选项来指定使用哪一个版本编译,该选项指定了相对应的 php-config 脚本的路径。

php-config 脚本在命令行所能使用的选项可以通过 -h 选项来显示:

Usage: /usr/local/bin/php-config [OPTION]
Options:
--prefix[...]
--includes[...]
--ldflags [...]
--libs[...]
--extension-dir [...]
--include-dir [...]
--php-binary[...]
--php-sapis [...]
--configure-options [...]
--version [...]
--vernum[...]

命令行选项

选项说明
--prefixPHP 所安装的路径前缀,例如 /usr/local
--includes列出用 -I 选项包含的所有文件
--ldflagsPHP 编译时所使用的 LD 标志
--libsPHP 编译时所附加的库
--extension-dir扩展库的默认路径
--include-dir头文件的默认路径前缀
--php-binaryPHP CLI 或者 CGI 可执行文件的完整路径
--php-sapis列出所有可用的 SAPI 模块
--configure-options重现当前 PHP 在编译时的配置选项
--versionPHP 版本号
--vernumPHP 版本号,以整数表示

简单点说人话

# 进入编译目录
$ cd dir
# 生成configure配置文件
$ phpize
# 指定你的php-config
$ ../configure --with-php-config=/usr/local/bin/xxx/php-config
$ sudo make && make install