Red Hat Linux Server,Apache 2.2,PHP 5.5.4
当我在命令行中运行它时,一切似乎都很好:
php -r'$ mysqli = new 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)工作正常。知道这里发生了什么吗?提前谢谢。
答案 0 :(得分:1)
就像我说的那样,今天我面对的是与Apache 2.4,PHP 5.5.12,Windows Server 2008完全相同的问题。
但是我能够解决这个问题。
诊断:
我在命令提示符下以及在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"
仅第一行即可解决此问题。
答案 1 :(得分:0)
从CLI(命令行)运行php是从网络服务器进行的。
请在两者中启用mysqli扩展。
通常情况下,如果已安装,您可以进入&#39; php.ini&#39;并取消注释&#39; mysqli&#39;的行。在某些安装中,有一个&#39; php.ini&#39;用于Apache,另一个用于命令行。我认为它们都位于&#39; / etc / php5 /&#39;。
之下答案 2 :(得分:0)
我在Unix堆栈交换上问了几乎相同的问题,该问题得到解决。有时重新启动apache即使重新启动系统也无效,但是停止服务并再次启动它对我来说是有效的:
在Fedora上
sudo systemctl stop httpd && sudo systemctl start httpd
在没有systemd的系统上(例如Ubuntu),您可能可以使用类似这样的东西,而无需对其进行测试:
sudo service apache2 stop && sudo service apache2 start