无法在 Laravel 10 中安装 jenssegers/mongodb

2024-04-07

我是 Laravel 的新手。我想使用 Laravel 10 连接到 MongoDB,需要安装 jenssegers/mongodb。当我运行命令时composer require jenssegers/mongodb 3.8.0 --ignore-platform-reqs在终端中,我收到如下错误:

PHP Warning:  PHP Startup: Unable to load dynamic library 'php_mongodb.dll' (tried: D:\ProgramFiles\xampp\php\ext\php_mongodb.dll (The specified module could not be found), D:\ProgramFiles\xampp\php\ext\php_php_mongodb.dll.dll (The specified module could not be found)) in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'php_mongodb.dll' (tried: D:\ProgramFiles\xampp\php\ext\php_mongodb.dll (The specified module could not be found), D:\ProgramFiles\xampp\php\ext\php_php_mongodb.dll.dll (The specified module could not be found)) in Unknown on line 0
Info from https://repo.packagist.org: #StandWithUkraine
./composer.json has been updated
Running composer update jenssegers/mongodb
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires jenssegers/mongodb 3.8.0 -> satisfiable by jenssegers/mongodb[v3.8.0].
    - jenssegers/mongodb v3.8.0 requires illuminate/support ^8.0 -> found illuminate/support[v8.0.0, ..., v8.83.27] but these were not loaded, likely because it conflicts with another require.


Installation failed, reverting ./composer.json and ./composer.lock to their original content.

请注意,我使用 PHP 8.1.10 并下载 php_mongodb.dll(从这个链接 http://pecl.php.net/package/mongodb/1.5.3/windows并且它支持 PHP 7.3)php\ext文件夹并添加extension=php_mongodb.dll to php.ini文件,但看起来找不到该模块,如上面的结果所示。

这是我的composer.json:

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "php": "^8.1",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^10.0",
        "laravel/sanctum": "^3.2",
        "laravel/tinker": "^2.8",
        "laravel/ui": "^4.2"
    },
    "require-dev": {
        "fakerphp/faker": "^1.9.1",
        "laravel/pint": "^1.0",
        "laravel/sail": "^1.18",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^7.0",
        "phpunit/phpunit": "^10.0",
        "spatie/laravel-ignition": "^2.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true,
        "allow-plugins": {
            "pestphp/pest-plugin": true,
            "php-http/discovery": true
        }
    },
    "minimum-stability": "stable",
    "prefer-stable": true
}

我尝试过另一个命令,例如composer require jenssegers/mongodb:dev-develop --ignore-platform-reqs, composer require jenssegers/mongodb 3.8 --ignore-platform-reqs, composer require jenssegers/mongodb:* --ignore-platform-reqs, composer require jenssegers/mongodb:*或类似的但没有帮助。

我该如何解决这个问题? 任何帮助,将不胜感激。


2023 年 10 月更新

该软件包现在有一个支持 laravel 10 的新版本 4。该软件包本身已重命名为mongodb/laravel-mongodb因为该包已转移到 MongoDB Inc. 存储库链接:https://github.com/mongodb/laravel-mongodb https://github.com/mongodb/laravel-mongodb

因此,要在 laravel 10 上安装它,您可以运行以下命令,假设您已经设置了正确的 PHP MongoDB 扩展版本

composer require mongodb/laravel-mongodb

Update

所以我后来发现PHP MongoDB扩展dll文件可以直接从他们的网站下载github 仓库 https://github.com/mongodb/mongo-php-driver。所以访问这个链接 https://github.com/mongodb/mongo-php-driver/releases并且您可以获得适用于 Windows 的 MongoDB 扩展 1.15(确保为您的 PHP 版本获得正确的扩展,并且其线程安全。文件名中提到了)。因此,下载 MongoDB 扩展 1.15 将可以克服第三和第四个问题。

因此,如果您使用 1.15 版本的 mongodb 扩展,运行

composer require jenssegers/mongodb:dev-master

应该足以解决作曲家问题并让您的应用程序运行

旧答案

目前,有以下问题

  • 您正在使用 laravel 10。jenssegers/mongodb目前(在撰写本答案时)软件包没有任何支持 laravel 10 的稳定版本(计划很快发布一个支持 laravel 10 的新版本,但尚未公布发布日期)。因此,您需要使用他们的 master 分支,该分支添加了对 laravel 10 的支持(master 分支仍在开发中,因此预计会有重大变化)。您可以使用安装主分支代码
    composer require jenssegers/mongodb:dev-master

  • 您使用的是 PHP 8.1,但安装了 PHP7.3 的 MongoDB 扩展,并且它们不兼容。您需要下载兼容版本,最好是1.13版本(最新的Windows版本)。你可以在这里下载https://pecl.php.net/package/mongodb/1.13.0/windows https://pecl.php.net/package/mongodb/1.13.0/windows(一定要下载线程安全版本)

  • jenssegers/mongodb将尝试安装最新版本mongodb/mongodb,这需要 PHP 扩展版本 1.15。不幸的是,Windows 版本 1.15 尚未发布,因此您必须使用该软件包的 1.12 版本,它将在该扩展的 1.13 版本上运行
    composer require mongodb/mongodb:^1.12 jenssegers/mongodb:dev-master

  • 现在最后一个问题是 master 分支jenssegers/mongodb还需要 MongoDB 扩展 1.15。不幸的是,可能没有安全的方法来解决这个问题。你可以跑
    composer require mongodb/mongodb:^1.12 jenssegers/mongodb:dev-master --ignore-platform-reqs
    并安装它,但它可能在所有情况下都起作用,也可能不起作用。

所以你有的选择是

  1. 使用WSL2或docker获取linux环境。然后你可以安装 1.15 版本的 PHP 扩展,然后运行
    composer require jenssegers/mongodb:dev-master
    并让它发挥作用
  2. 坚持使用 windows 并降级到 laravel 9。然后你可以运行
    composer require mongodb/mongodb:^1.12 jenssegers/mongodb
  3. 忽略平台要求并希望它能够正常运行
    composer require mongodb/mongodb:^1.12 jenssegers/mongodb:dev-master --ignore-platform-reqs

希望这可以帮助

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 Laravel 10 中安装 jenssegers/mongodb 的相关文章

  • Symfony2,如何向表单添加隐藏的日期类型字段?

    我正在尝试以下场景 In myclassType public function buildForm FormBuilder builder array options builder gt add day hidden gt add da
  • 用 PHP 截断文件末尾

    我有一个日志文件 我想在 PHP 读取该文件后将其截断 我的代码目前如下所示 fp fopen file r ftruncate fp 125000 fclose fp 但是 这会通过保留first1MB 不过 我想保留last1Mb 的文
  • Laravel 5.4 将json保存到数据库

    帮我将 json 保存到数据库 表字段类型 文本 我有带有强制转换数组的模型 class Salesteam extends Model protected casts team members gt array 我想要像这样 index
  • 使用 PHP 更新 XML 节点

    我有一个 XML 文件 test xml
  • 无法通过 Vue.js 从 Laravel 后端下载文件 (pdf)(Axios 帖子)

    我在 Vue 中有一个多步骤表单 一旦收集到所有信息 我就会将结果发布到 Laravel 控制器 这是网站的经过验证的区域 我正在使用护照 所以本质上我有一个 Vue SPA 它是在 Laravel 5 7 框架内构建的网站的管理区域 Vu
  • 计算 PHP 字符串中特定字符的所有出现次数的最有效方法是什么?

    计算 PHP 字符串中特定字符的所有出现次数的最有效方法是什么 用这个 echo substr count abca a will echo 2
  • 优雅地退出 Laravel 作用域

    我有一个范围 它根据用户角色以限制方式起作用 您可以将一组规则转发到限制数据库最终输出的范围 一个非常简化的角色限制示例 first name foo 只会返回其记录first name开始于foo 这实际上意味着我已禁止具有该角色的用户查
  • 使用 Javascript/Node.js 在代码内执行 mongoimport

    node js javascript 中是否有任何库可供个人使用mongoimport在代码中 据我了解 mongoimport 有点像 exe 您必须先执行它 然后才能使用其文本输入环境 是否可以在我的代码中执行 mongoimport
  • 当路由不存在时重定向 laravel 4

    我正在使用 laravel 4 当我的项目处于生产模式时 我得到 抱歉 找不到您要查找的页面 当我到达一条不存在的路线时 当我 grep 我的代码时 它在两个地方找到 vendor symfony debug Symfony Compone
  • 将 Cloudinary 与 spatie/media-library Laravel 包一起使用

    有人使用 Laravel 包 spatie media library 和 Cloudinary 吗 我认为用 Flysystem 来实现它是微不足道的 我实际上使用 Cloudinary 作为带有 silvanite nova field
  • Yii 未检测到骆驼案例操作

    伊伊正在给我404 Error如果我声明这样的操作 站点控制器 php public function actionRegisterUser 这就是我在main php label gt Register User url gt site
  • Laravel,控制器中的 Auth::user()

    Laravel 框架 为什么我无法在 laravel 项目的控制器中使用 Auth user 查看用户是否已登录 Session 是否未连接到控制器 HomeController php public function isauthoriz
  • 将客户分配到 magento 的多个客户组

    您好 我想将多个组分配给特定客户 例如 Rajat 客户 属于 批发 零售商 电力 实际上我在上面看到了同样的话题每个客户有多个客户组 https stackoverflow com questions 6153011 multiple c
  • 将 echo 和 print 合并到一个语句中

    echo 1 print 2 3 返回 214 脚本如何以 14 结尾 当你这样做时 echo 1 print 2 3 PHP 会做 demo http codepad viper 7 com OfrNrs line op fetch ex
  • 2 使用我的代码在数组中查询

    我使用滑块来显示我的 WordPress 精选文章 它选择一个自定义类别并返回一定数量的帖子 如何将显示的第一篇帖子设为自定义帖子 我可以直接在滑块代码中添加特定帖子的 ID吗使该帖子首先出现 然后是原始查询返回的其他内容 例如 在页面上
  • PHP-如何根据条件配对数组中的项目

    如何将数组中的项目配对 假设我有一个数组Fighters 我想根据他们的情况将他们配对Weights 体重最接近的拳手应作为配对最佳匹配 但如果他们是在同一个团队中 他们不应该配对 团队 1 战斗机A体重为60 战斗机B体重为65 2队 战
  • 创建单个随机 Magento 优惠券

    我遇到了一些麻烦 我想要做的是每次有人订阅我们的时事通讯时 在 Magento 中自动生成一个随机优惠券代码 这张优惠券可减 10 美元 并且有exp 订阅后两周的日期 因此 我正在尝试编写一个简单的脚本 当提交 订阅我们的时事通讯 表单时
  • sqlite3和pdo_sqlite有什么区别

    我正在将我的 Web 应用程序从 MySQL 迁移到 SQLite 数据库 我发现有两个 PHP 扩展用于与 sqlite 通信 php sqlite3 dll and php pdo sqlite dll 什么扩展比较好 或者另一个问题
  • 我如何向 Windows Server IIS 7 中的文件夹授予权限

    我是 PHP 和 Windows Server 新手 在查看我在 PHP 中创建的表单时遇到以下错误 Error in exception handler The stream or file C inetpub wwwroot wrp a
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐