使用MacPorts在Mac OS X 10.11上安装MongoDB

我正在尝试在运行Mac OS X 10.11(El Capitan)的计算机上安装MongoDB。</ p> \ n

我的Apache + PHP配置已经正常工作。</ p>

我通过MacPorts为MongoDB安装了MongoDB和PHP驱动程序:</ p>

 <  code> sudo port install mongodb 
sudo port install php55-mongodb
</ code> </ pre>

安装正确运行。</ p>

我添加了mongodb.so 文件到php.ini文件中加载的扩展名:</ p>

  extension = / opt / local / lib / php55 / extensions / no-debug-non-zts-20121212 / mongodb  .so 
</ code> </ pre>

当我在php文件中运行phpinfo()函数时,mongodb扩展似乎正确加载:
</ a> </ p>

我尝试通过初始化MongoClient实例来测试我的连接:</ p>

 &lt;?php 

$ mongoDB = 新的MongoClient();
\ n var_dump($ mongoDB);

?&gt;
</ code> </ pre>

不幸的是,我得到了一个 HTTP ERROR 500 </ em>,我得到了 我的Apache日志中的以下行:</ p>

  PHP致命错误:在...... 
</ code> </ pre>

中找不到类'MongoClient'

我做错了吗?</ p>
</ div>

展开原文

原文

I am trying to install MongoDB on my computer running Mac OS X 10.11 (El Capitan).

My Apache + PHP configuration was already working correctly.

I installed MongoDB and PHP drivers for MongoDB through MacPorts:

sudo port install mongodb
sudo port install php55-mongodb

Installation ran correctly.

I added mongodb.so file to the extensions loaded in the php.ini file:

extension=/opt/local/lib/php55/extensions/no-debug-non-zts-20121212/mongodb.so

When I run phpinfo() function in php file, mongodb extension seems to be loaded correctly: enter image description here

I tried to test my connexion by initializing a MongoClient instance:

<?php

    $mongoDB = new MongoClient();

    var_dump($mongoDB);

?>

Unfortunately, I got a HTTP ERROR 500, and I got the following line in my Apache logs:

PHP Fatal error:  Class 'MongoClient' not found in ...

Did I make something wrong ?

du3979
du3979 你确定你不是在混合这里吗?看来你正在尝试使用提供MongoClient的MongoPHP扩展(php.net/manual/en/class.mongoclient.php),但实际上你安装了MongoDBPHP扩展(参见php.net/manual/en/set。mongodb.php)。
大约 4 年之前 回复

2个回答



最后找到了我的问题的解决方案。</ p>

因为@neverpanic和@Zagonine让我明白了 , php-mongodb </ strong>和 php-mongo </ strong>不是相同的扩展名。</ p>

如果你想使用旧的PHP驾驶课程,你 应该使用 php-mongo </ strong>包而不是新的 php-mongodb </ strong>。</ p>

尝试安装最新的 php-mongo </ strong>扩展,我还遇到了与OpenSSL相关的其他问题。 为了绕过它,我安装了旧版本的 php-mongo </ strong>扩展名:</ p>

  sudo / usr / local / pear / bin / pecl install mongo-  1.5.8 
</ code> </ pre>

希望它会帮助其他人。</ p>
</ div>

展开原文

原文

Finally found a solution to my problem.

As @neverpanic and @Zagonine made me understand, php-mongodb and php-mongo are not the same extension.

If you want to use old PHP driving classes, you should use php-mongo package instead of the very new php-mongodb.

Trying to install latest php-mongo extension, I had an other problem related to OpenSSL. To bypass it, I installed an old version of php-mongo extension:

sudo /usr/local/pear/bin/pecl install mongo-1.5.8

Hopefully it will help someone else.

douchuang4181
douchuang4181 感谢您的回答。 它真的帮助了我。
2 年多之前 回复



在大多数网站上,我看到你需要添加扩展 mongo.so </ code>而不是 mongodb 你的 php.ini </ code>中的.so </ code>。

如果它没有解决你的问题,我建议你用 PELC 。</ p>

运行命令行:</ p>

  $ sudo pecl install mongo 
</ code> </ pre>

并将此行添加到 php.ini </ code> :</ p>

  extension = mongo.so 
</ code> </ pre>

Doc php.net Mongo安装 </ p>
</ div>

展开原文

原文

On most of site I saw you need to add the extension mongo.so and not mongodb.so in your php.ini.
If it's not solved your problem, I recommand you to install MongoDB Drive with PELC.

Run command line:

$ sudo pecl install mongo

And add this line to your php.ini:

extension=mongo.so

Doc php.net Mongo Installation

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问