使用 bash 定位 PHP 扩展文件夹

Iso*_*ric 22 bash ubuntu php

我正在尝试构建一个 bash 脚本来安装 Source Guardian PHP 扩展,但是每个后续版本的 Ubuntu 上的目标目录都不同。

在 Ubuntu 14.04 上安装 PHP5 会导致扩展存储在 /usr/lib/php5/20121212+lfs/ 中,在 Ubuntu 15.04 中此目录发生变化,例如 /usr/lib/20131226/

我检查了 /etc/php5/fpm/php.ini 和 /etc/php5/fpm/php-fpm.conf 但这些文件都没有提到 20121212+lfs 或 20131226。

如果我将 Source Guardian 扩展放在其他任何地方,它不会加载。

有没有办法以编程方式确定扩展文件夹?

小智 36

也许你应该这样做:

php-config --extension-dir
Run Code Online (Sandbox Code Playgroud)

如果php-config不存在,则apt-get install php-config是 Ubuntu/Debian 或yum install php-configCentOS/Red Hat)

该命令将提供php扩展文件夹的确切位置。

不要忘记更改您php.ini的以使用扩展。

  • 它并不比解析 php -i 输出简单,并且需要安装额外的软件。为什么? (3认同)

小智 28

你可以用这个

php -i | grep extension_dir
Run Code Online (Sandbox Code Playgroud)

  • 您可能还想尝试`php -i | grep ^extension_dir` 因为还有一个 `sqlite3.extension_dir`。插入符号将仅从字符串的开头匹配(对于那些不了解正则表达式的人),如果您以某种方式使用输出,这会有所帮助 (3认同)

小智 7

您可以搜索 xdebug 文件扩展名:find $(php -r 'echo ini_get("extension_dir");') -type f -name 'xdebug.so'

或者只是获取值:php -r 'echo ini_get("extension_dir");'