它必须在phpinfo()转储中的某个地方,但我只是不知道在哪里。它应该在“附加模块”部分下吗?别的地方吗?我试图弄清楚为什么一些扩展似乎没有加载,但我甚至不知道我应该在哪里看。
您正在寻找特定的扩展吗?在你的phpinfo();,只需按Ctrl+F在你的web浏览器,键入前3-4个字母的扩展你正在寻找,它应该会显示你是否加载。
通常在phpinfo()中,它不会在一个位置显示所有加载的扩展,它为每个加载的扩展提供了一个单独的部分,在那里它显示了所有的变量,文件路径等,所以如果没有用于扩展名的部分,可能意味着它没有加载。
或者你可以打开你的php.ini文件,并使用Ctrl+F方法找到你的扩展名,看看它是否被注释掉了(通常是在行开始附近的分号)。
你想要运行:
php -m
在命令行中,
或者如果你有打开服务器配置文件的权限
/etc/php5/apache2/php.ini
看看所有的扩展,
你甚至可以通过像这样在开和关之间切换来启用或禁用它们
<Extension_name> = <[On | Off]>
运行命令。你会得到安装的扩展:
php -r "print_r(get_loaded_extensions());"
或运行此命令获取所有模块的安装和卸载版本
dpkg -l | grep php5
如果你想测试一个特定的扩展是否被加载,你也可以使用extension_loaded函数,请参阅这里的文档
php -r "var_dump(extension_loaded('json'));"
你问你在phpinfo()输出中哪里看到加载的扩展。
答:
它们被列在底部作为单独的节/表,并且仅当它们被加载时。 下面是一个加载扩展Curl的例子。
...
...
我在Linux Debian上安装了它
sudo apt-get install php7.4-curl
你可以通过这个命令看到PHP安装的所有扩展
-Debian/Ubuntu
dpkg --get-selections | grep -i php
-RHEL /被久远
yum list installed | grep -i php
-费多拉 22+
dnf list installed | grep -i php
我也遇到了同样的问题,我需要知道安装了哪些模块及其版本。现在,我的解决方案是让PHP从命令行告诉我。注意,“Core”是PHP。
php -r '$all = get_loaded_extensions(); foreach($all as $i) { $ext = new ReflectionExtension($i); $ver = $ext->getVersion(); echo "$i - $ver" . PHP_EOL;}'
输出:
Core - 7.4.30
date - 7.4.30
libxml - 7.4.30
...
mcrypt - 1.0.5
bcmath - 7.4.30
bz2 - 7.4.30
...
xml - 7.4.30
xmlwriter - 7.4.30
xsl - 7.4.30
zip - 1.15.6
推荐文章
- 如何看到PHP加载的扩展?
- 如何使用Laravel和Eloquent查询两个日期之间?
- 从Laravel 5中的另一个控制器访问控制器方法
- 使用类型提示时不能传递空参数
- PHP是空时为空?
- 什么是自动装填;你如何使用spl_autoload, __autoload_register ?
- 将查询字符串解析为数组
- 在PHP中::(双冒号)和->(箭头)之间的区别是什么?
- 从SimpleXMLElement对象中获取值
- 如何从PHP数组中删除重复的值
- 使用PHP获取客户端IP地址
- 获取PHP中的URL参数
- 致命错误:类“ZipArchive”未在
- 设置cookie永不过期
- '<是什么?=' PHP中的意思?