使用 bash 定位 PHP 扩展文件夹

使用 bash 定位 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 扩展放在其他地方,它就不会加载。

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

答案1

也许你应该这样做:

php-config --extension-dir

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

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

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

答案2

你可以用这个

php -i | grep extension_dir

答案3

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

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

答案4

只是想补充一点,虽然

php-config --extension-dir

将为您提供扩展目录,但通常我们会修改活动 php.ini 文件中的某些扩展位置。 (系统上可以同时安装多个php版本。通过查看phpinfo函数的输出可以找到当前php.ini文件位置;使用在phpinfo函数的输出中查找php.ini)。

例如,使用变量 zend_extension,xdebug 可能位于扩展目录之外的其他文件夹中;主要位于 php.ini 文件的末尾。

zend_extension=/usr/lib/php/20170718/xdebug.so

所以替换目录下的模块文件时要小心; (曾经一度变得疯狂;因为虽然我正在更改文件,但实际上并未反映在 phpinfo 文件的输出中)。

相关内容