背景
首先,了解一下 WAMPServer 的处理方式php.ini
文件。如果你使用phpinfo()
,您可能会注意到加载的路径ini
文件是NOT the ini
PHP 安装中的文件。相反,它指向 Apache 安装。
但如果你看一下它,它就是一个0KB
符号链接。实际上是一个链接ini
PHP 安装中的文件。但这不是php.ini
,它改为指向phpForApache.ini
。所以这:
...\wamp64\bin\apache\apache2.4.23\bin\php.ini
实际上是
...\wamp64\bin\php\php[VERSION]\phpForApache.ini
因此,您可以忽略 Apache 文件夹中的内容并专注于您的ini
PHP 文件夹中的文件。然而,你不能忽视php.ini
。您需要同时纠正两者。
感谢乔恩·斯特林建议检查加载的配置文件phpInfo()
.
我做了什么
我从 PHP 网站安装了 PHP 7.1,但忘记转移我的ini
文件来自 PHP 7.0 安装。我改为使用默认值ini
PHP网站提供的文件。
这不起作用,因为有一些调整ini
让 PHP 与 WAMP 一起工作所需的文件。所以我复制了两个ini
从我的 7.0.x 文件夹中删除文件,然后它开始工作,除了 mysqli 的错误之外。
我的问题的根本原因
挠了一个小时后,弗莱德-ii-'s 最后一个问题终于让我找到答案了。我让 PHP 尝试引用旧的扩展文件。原因如下:
The php.ini
文件和phpForApache.ini
文件,由 WAMP 提供,都硬编码了一些路径。例如,PHP 7.0.10 的扩展文件夹路径编码如下:
extension_dir ="c:/wamp64/bin/php/php7.0.10/ext/"
我已经复制了ini
文件结束,但它们指向 7.0 的扩展文件夹。这dll
7.0.x 的文件不适用于 7.1.x。
Answer
我进入了两个文件(php.ini
phpForApache.ini
)在 PHP 7.1.4 文件夹中,并将文本“7.0.10”的所有实例全局替换为“7.1.4”。现在一切正常了。