为什么安装MongoDB驱动程序没有显示在phpinfo文件中?

时间:2014-08-24 06:30:26

标签: php apache mongodb ubuntu mongodb-php

我使用的是Ubuntu 12.04,PHP 5.5.13(cli)和Apache / 2.4.10。我安装了Mongodb 2.6.4。它工作正常。然后我安装了PHP-MongoDB驱动程序。它已安装但未在phpinfo()中显示。当我用mongodb执行php文件时,我收到以下错误:

 PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/mongo.so' - /usr/lib/php5/20121212/mongo.so: cannot open shared object file: No such file   or directory in Unknown on line 0
 [Sun Aug 24 11:48:39.403845 2014] [:error] [pid 3008] [client 127.0.0.1:58857] PHP Fatal error:  Class 'MongoClient' not found in /var/www/PHP/php-mongo/testingmongodb.php on line 3, referer: http://localhost/PHP/php-mongo/

我按如下方式安装了PHP Mongodb驱动程序:

 sudo pecl install mongo

有两个php.ini,所以我添加了

 extension=mongo.so

在php.ini

 /etc/php.ini
 /etc/php5/apache2/php.ini

然后,重新启动apache2

我也试过手动方式。

unzip php_mongo-1.5.1.zip
cd mongodb-php-driver
phpize
./configure
sudo make install

在排除phpize时,我收到以下错误:

 Cannot find config.m4. 
 Make sure that you run '/usr/bin/phpize' in the top level source directory of the module

我还创建了一个文件/etc/php5/conf.d/mongo.ini并添加了“extension = mongo.so”,但仍然没有发生任何事情。我无法弄清楚发生了什么。请帮助我。

1 个答案:

答案 0 :(得分:0)

如果使用CLI命令,则可能需要将Mongo驱动程序添加到cli特定的php.ini中:

echo "extension=mongo.so" >> /etc/php5/cli/php.ini

有关信息,以下是我安装Mongo和mongo驱动程序的方法(根据the doc):

sudo -s
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
apt-get update
apt-get -y install mongodb-org
grep -q "extension=mongo.so" /etc/php5/apache2/php.ini || echo "extension=mongo.so" >> /etc/php5/apache2/php.ini
grep -q "extension=mongo.so" /etc/php5/cli/php.ini || echo "extension=mongo.so" >> /etc/php5/cli/php.ini && pecl install mongo
service apache2 restart