PHP 扩展(如 `mongodb`)未加载 macOS 上 Laravel Herd 启用的特定 PHP 版本(例如 8.1)?

问题描述 投票:0回答:1

我在 macOS 上使用 Laravel Herd,并由 Herd 管理多个 PHP 版本(7.4、8.1、8.2、8.3)。我使用

php -v
验证 PHP 8.1 已激活。

按照 Herd 文档添加扩展 (https://herd.laravel.com/docs/1/advanced-usage/additional-extensions),我使用

mongodb
brew install php
安装了
sudo pecl install mongodb
扩展。

我在两个位置发现了

mongodb.so

  • /opt/homebrew/lib/php/pecl/20230831/mongodb.so
  • /opt/homebrew/Cellar/php/8.3.4/pecl/20230831/mongodb.so

但是,安装后,扩展线

extension=/opt/homebrew/lib/php/pecl/20230831/mongodb.so
会自动添加到8.3版本的Herd
php.ini
中。并且 mongodb 扩展在运行
php -m
后在 php 8.3 上显示正常,即使活动版本是 php 8.1。

由于我需要 php 8.1 上的扩展,当我手动将同一行添加到 8.1 版本的 Herd

php.ini
时,遇到了错误:

Warning: PHP Startup: Unable to load dynamic library 
'/opt/homebrew/lib/php/pecl/20230831/mongodb.so'

任何人都可以提供一些关于为 laravel herd 启用的单个 php 版本安装 php 扩展的推荐方法吗?

php mongodb macos php-extension laravel-herd
1个回答
0
投票

PHP 的每个版本都需要自己的扩展版本。相同版本的模块可以在 PHP 8.1 上很好地工作,但不能在 PHP 8.3 上工作。

因此,您必须下载特定于您的 PHP 8.1 的适当版本。

根据您的 PHP 和 MongoDB 版本检查 MongoDB 兼容性表

© www.soinside.com 2019 - 2024. All rights reserved.