PHP:如何访问 phpMyAdmin / php.ini 和 extension_dir 之间的奇怪冲突

Posted

技术标签:

【中文标题】PHP:如何访问 phpMyAdmin / php.ini 和 extension_dir 之间的奇怪冲突【英文标题】:PHP: how to access phpMyAdmin / weird conflict between php.ini and extension_dir 【发布时间】:2021-01-02 13:07:57 【问题描述】:

首先,这是我的第一篇文章,在过去的五个小时里,我一直在努力阅读所有我能解决的问题。

我是 php/mysql 的新手,在 Windows 上使用 MAMP,PHP 版本 7.4.1 并尝试访问 phpMyAdmin,这给了我著名的错误“缺少 mysqli 扩展”,这就是我开始研究这个的原因.

在尝试了我在互联网上找到的所有解决方案后(取消注释 php.ini 中的行、运行脚本以查看是否正在加载扩展、降级到 PHP 版本 7.3.7、卸载和重新安装 MAMP 等)并运行了许多测试终于明白了我遇到的部分问题:

• 每次我将 php.ini 设置为显示错误(删除两行前的“;”并将 display_errors 设置为“On”)时,它都会神秘地将我在 php.info 页面中看到的 extension_dir 更改为另一个目录.我无法使用 php.ini 将其改回(它不起作用),因此无法加载扩展 mysqli.dll(我可以使用脚本检查它是否存在)。我已经尝试将它放在我创建的新目录中以匹配它所说的路径,但它也不起作用。

• 当我将 php.ini 文件恢复为不显示错误时(即,当我将两个 ; 添加回原来的位置时),extension_dir 变回正确的目录并且它可以工作!扩展加载,我可以访问 phpMyAdmin。

这对我来说根本没有任何意义。也许只删除一个“;”在 php.ini 中导致 extension_dir 更改为其他内容,但我不明白为什么,尤其是当我读过的每个 php 教程都告诉我这是显示错误的方式时。

我想继续看到我的代码错误并通过 MAMP 访问 phpMyAdmin,此时我的大脑感觉就像土豆泥,所以如果你知道这里发生了什么......

【问题讨论】:

这能回答你的问题吗? Extension mysqli is missing, phpmyadmin doesn't work 不,不幸的是它没有,我忘了在帖子中提到它,但我在 Windows 上! 所以用这个***.com/questions/6617288/… 【参考方案1】:

好的,我找到了导致问题的原因,它是我忘记删除的 php.ini 中的文本!

【讨论】:

以上是关于PHP:如何访问 phpMyAdmin / php.ini 和 extension_dir 之间的奇怪冲突的主要内容,如果未能解决你的问题,请参考以下文章

在 Nginx 中使用 php 7.0 安装 PhpMyadmin 4.7.2,访问被拒绝

在 CentOS 上将 PHP 5.3 更新到 PHP 5.5 后,我无法访问 phpmyadmin

更改密码后拒绝 phpMyAdmin 访问,config.inc.php 仅可读

自定义安装apache+php+mysql+phpmyadmin

如何在 MAMP PRO 中降级 phpMyAdmin 版本

Linux phpmyadmin 访问 localhost/phpmyadmin 时只看到文本