我正在尝试构建一个 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-config
Ubuntu/Debian 或yum install php-config
CentOS/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 文件的输出中)。