Red Hat Linux Server、Apache 2.2、PHP 5.5.4
当我在命令行中运行此命令时,一切似乎都很正常:
php -r '$mysqli = mysqli("127.0.0.1","un","pw","things","3306");‘
同时,我有一个不能运行的.php文档。我得到这个错误..。
PHP致命错误:在第2行的/path/to/vars.php中找不到类'mysqli‘
从下面的代码:
<?php
$mysqli = new mysqli("localhost", "un", "pw", "things", "3306");
?>其他.php页面(不使用mysqli)可以正常工作。知道这是怎么回事吗?提前谢谢。
发布于 2020-04-21 05:15:24
就像我说的,今天我在Apache2.4,PHP5.5.12,Windows Server2008上遇到了完全相同的问题。
但是我能够解决这个问题。
诊断
我在命令提示符和web服务器/浏览器上都运行了phpinfo(),注意到php.ini文件的路径在两者中都不同。现在,我意识到我需要在Apache中强制设置php.ini文件的路径。
解决方案
我通过指向我的Apache服务器上正确的php.ini和dll文件修复了这个问题。在httpd.conf文件中,我按顺序编写了这些行。
PHPIniDir "C:/path/php/php5.5.12"
LoadFile "C:/path/php/php5.5.12/php5ts.dll"
LoadModule php5_module "C:/path/php/php5.5.12/php5apache2_4.dll" 仅第一行就解决了这个问题。
发布于 2016-05-17 18:07:02
从CLI(命令行)运行php不同于webserver。
应该在两者中都启用mysqli扩展。
通常,如果安装了它,您可以进入'php.ini‘并取消对'mysqli’行的注释。在某些安装中,存在一个用于Apache的'php.ini‘副本和另一个用于命令行的副本。我想它们都位于'/etc/php5/‘下面的某个地方。
发布于 2018-09-30 00:34:30
我在Unix Stack Exchange上问过几乎相同的问题;这就是这个问题是如何解决的。
有时重启Apache甚至在重启之后也不起作用,但停止httpd服务并重新启动它对我来说很有效:
关于Fedora
sudo systemctl stop httpd && sudo systemctl start httpd在没有systemd的系统上(比如Ubuntu),你可能可以使用这样的东西(没有测试它):
sudo service apache2 stop && sudo service apache2 starthttps://stackoverflow.com/questions/19305919
复制相似问题