Riv*_*Tam 6 php linux apache apache2 mongodb
我有一个使用Apache的站点,它只是以下代码:
<?php $m = new MongoClient(); ?>
Run Code Online (Sandbox Code Playgroud)
当我尝试访问它时,我在error.log中收到错误
`PHP Fatal Error: Class 'MongoClient' not found`
Run Code Online (Sandbox Code Playgroud)
以下是可能出错的设置,但我认为不是.
php -i | grep 'Configuration' => Configuration File (php.ini) Path => /etc/php5/cli | Loaded Configuration File => /etc/php5/cli/php.ini
grep 'mongo' /etc/php5/cli/php.ini => extension=mongo.so
php -i | grep 'extension' =>
extension_dir => /usr/lib/php5/20121212 => /usr/lib/php5/20121212
ls /usr/lib/php5/20121212/ | grep 'mongo.so' => mongo.so
我无法找到任何建议我安装错误或错误配置.我使用pecl和pear(sudo pear install -f pecl/mongo和sudo pecl install mongo)在过去两小时内安装了它
我多次重启我的Apache甚至我的电脑.
那么为什么我会收到错误Class 'MongoClient' not found?
我在Ubuntu上.PHP 5.5版.
编辑:当我在交互模式下运行php时,我刚刚发现MongoClient是有效的.也许它与用户权限/用户安装问题有关?
问题是我php -i | grep 'Configuration'用来查找.ini文件.这导致了/etc/php5/cli/php.ini.回想起来,这应该是一个明显的赠品:cli意味着命令行界面,基本上是解释器.我需要的是Apache正在使用的ini文件.
不幸的是,没有很好的方法可以做到这一点,因为我无法登录www-data用户,但我创建了一个包含代码的文件
<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
并且显示.ini文件位置实际上是/etc/php5/apache2/php.ini.
一旦我更新了那个 ini文件extension=mongo.so,模块就在启动时加载了,所以我重新启动了,现在一切正常.
| 归档时间: |
|
| 查看次数: |
21771 次 |
| 最近记录: |