在Mac OS 10.15上为PHP7安装MongoDB

3

我在我的Mac Catalina 10.15上安装了MongoDB,也安装了PHP7.3版本。现在,我想使用PHP的mongoClient()类。我尝试过 composer require mongodb/mongodb,但它提示缺少mongodb扩展:

Using version ^1.5 for mongodb/mongodb
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- mongodb/mongodb 1.5.1 requires ext-mongodb ^1.6 -> the requested PHP extension mongodb is missing from your system.
- mongodb/mongodb 1.5.0 requires ext-mongodb ^1.6 -> the requested PHP extension mongodb is missing from your system.
- Installation request for mongodb/mongodb ^1.5 -> satisfiable by mongodb/mongodb[1.5.0, 1.5.1].

To enable extensions, verify that they are enabled in your .ini files:
- /etc/php.ini
You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.

Installation failed, reverting ./composer.json to its original content.

我尝试按照php文档的步骤安装PHP扩展,但出现了以下错误:

pear/install/mongodb/php_phongo.c  -fno-common -DPIC -o .libs/php_phongo.o
/private/tmp/pear/install/mongodb/php_phongo.c:22:10: fatal error: 'php.h' file not found
#include <php.h>
          ^~~~~~~
1 error generated.
make: *** [php_phongo.lo] Error 1
ERROR: `make' failed

有需要帮助的吗?

在Mac上安装php工具似乎很困难。你用哪个框架来安装它?PECL,Brew?你安装了autoconf吗?除此之外,PHP驱动程序页面顶部有一个警告 - 警告:该扩展已弃用。应使用MongoDB扩展代替。天啊,他们在说什么。我需要一位算命师来帮忙。 - barrypicker
请查看 https://www.php.net/manual/en/set.mongodb.php ... - barrypicker
@barrypucker 我使用Mac OS自带的PHP版本,并使用PECL安装了PHP的mongodb驱动程序。 - Dany M
3个回答

2

我在升级到MacOS Catalina后也遇到了同样的问题。

运行以下两个命令:

  1. brew doctor
  2. brew link --overwrite php

0

我也更新了macOS到10.15 Catalina并开始设置。在安装mongodb驱动程序期间出现了相同的错误。

解决问题后,我通过以下步骤更新了答案:

步骤1: 运行命令:brew install php71

步骤2: 编辑目录下的httpd.conf /etc/apache2/httpd.conf

添加以下行

LoadModule php7_module /usr/local/opt/php@7.1/lib/httpd/modules/libphp7.so

然后检查是否没有其他启用的php7_module。

还要添加这些行

<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

步骤3:重启Apache:sudo apachectl restart

步骤4: 如果您需要将php@7.1放在PATH中的第一位,请运行以下命令: echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.bash_profile

为了让编译器找到php@7.1,您可能需要设置: export LDFLAGS="-L/usr/local/opt/php@7.1/lib" export CPPFLAGS="-I/usr/local/opt/php@7.1/include"

步骤5: 现在启动php@7.1并在登录时重新启动: brew services start php@7.1

步骤6: 打开新终端并检查php版本,应该是7.1

步骤7: 然后运行命令:sudo pecl install MongoDB

&它将成功安装php mongodb驱动程序而不会出现任何错误。 请确保按照所有步骤操作!

我执行了这些步骤来解决我的laravel项目中未找到的MongoDB驱动程序问题。


感谢您的回答。我没有 Step 1 的这样路径。在 Cellar/ 目录下没有 pho 目录,您有什么想法在哪里可以找到它吗? - Dany M
我更新了我的答案,希望可以帮助 macOS 用户安装 PHP MongoDB 驱动程序以用于 Laravel 项目等。 - Ranjan Fadia

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接