我可以依赖 php 扩展存储在 /usr/lib/php5/20121212 中吗?

Can I rely on php extensions to be stored in /usr/lib/php5/20121212

我正在创建一个安装 pear 模块 (pam) 的 ansible 角色。我希望角色使用 creates= 子句检查模块是否已安装。

这个模块在 /usr/lib/php5/20121212/pam.so 中自行安装,但依赖它感觉有点不稳定。找出 php 扩展模块存储位置的更好方法是什么?

不,对安装位置做出假设是不安全的。 PHP 模块 API 编号随每个 PHP 主要版本而变化。例如,20121212 是用于 PHP 5.5 的 API 数字。此外,确切的路径将根据配置而改变。例如,我的 PHP 5.5 系统将扩展存储在 /usr/lib/php/extensions/no-debug-non-zts-20121212.

要获取特定版本 PHP 的默认扩展安装位置,运行 php-config --extension-dir,使用为该 PHP 安装的 php-config 二进制文件版本。