提问人:sricks 提问时间:2/19/2013 最后编辑:sricks 更新时间:2/19/2013 访问量:2131
Mongo 不会在启用 error_reporting 的情况下加载 phpinfo
Mongo will not load in phpinfo with error_reporting enabled
问:
几个小时以来,我一直在尝试让 Mongo 在 Ubuntu Server 12.04 上使用 Apache2 在 PHP 5.3 上工作。
它给出了错误:
Fatal error: Class 'MongoClient' not found in /var/www/projects/learn/create.php on line 7
Mongo 出现在 中,但没有出现在 .经过长时间的搜索,我尝试在我的 :php -m
phpinfo()
php.ini
Default Value: E_ALL & ~E_NOTICE
这会导致 Mongo 出现在我的语句中,并且不会抛出任何错误。唯一的问题是我需要打开错误报告(因为我是新开发人员)。phpinfo()
$m = new MongoClient()
是什么可能导致 Mongo 仅在启用详细错误报告时无法加载?
编辑:另外可能注意的是,我在单个PHP文件中打开了错误报告,并正确显示任何错误,同时仍然让Mongo加载
答:
2赞
priyolahiri
2/19/2013
#1
在很可能没有在您的开发/服务器设置中安装 mongo 扩展。首先检查是否安装。创建一个名为 phpinfo.php 的文件,其中包含以下内容:
从浏览器运行它。搜索 MONGO。看看版本是什么。如果不存在,请从命令行执行以下操作:
sudo pecl 安装 mongo
如果您有 Ubuntu 桌面 sudo gedit /etc/php5/conf.d/mongo.ini
如果您有 Ubuntu 服务器 sudo vi /etc/php5/conf.d/mongo.ini
在文件中插入以下行: 扩展名=mongo.so
保存文件。退出。使用 sudo /etc/init.d/apache2 restart 重新启动 Apache
切勿直接编辑 php.ini 文件以在 Ubuntu 中加载/卸载扩展。在 /etc/php5/conf.d/ 的文件中进行更改
评论
Default Value: E_ALL & ~E_NOTICE
php -m
是命令行,所以你可能在 Web 服务器下运行了 phpinfo()。不同的.ini文件,所以可能 mongo 的东西没有被加载到 Web 服务器的 php 副本正在查看的任何.ini中。phpinfo() 会确切地告诉你哪些文件正在加载。php5