【问题标题】:Trying to install MongoDB PHP Driver in Elastic Beanstalk Amazon Linux尝试在 Elastic Beanstalk Amazon Linux 中安装 MongoDB PHP 驱动程序
【发布时间】:2019-04-10 07:17:13
【问题描述】:

尝试在运行 Amazon Linux 的 Elastic Beanstalk 中安装 MongoDB PHP 驱动程序。已经使用以下代码在 .ebextensions 文件夹中创建了一个配置文件:

container_commands:
  01installMongoExtension:
    command: 'printf "\n" | pecl install -f mongo'
    ignoreErrors: true

得到一个错误:

Application deployment failed at 2018-11-06T20:01:32Z with exit status 2 and error: Hook /opt/elasticbeanstalk/hooks/appdeploy/pre/10_composer_install.sh failed.

以下内容:

Problem 1
- Installation request for alcaeus/mongo-php-adapter 1.1.3 -> satisfiable by alcaeus/mongo-php-adapter[1.1.3].
- alcaeus/mongo-php-adapter 1.1.3 requires ext-mongodb ^1.2.0 -> the requested PHP extension mongodb is missing from your system.
Problem 2
- Installation request for mongodb/mongodb 1.1.2 -> satisfiable by mongodb/mongodb[1.1.2].
- mongodb/mongodb 1.1.2 requires ext-mongodb ^1.2.0 -> the requested PHP extension mongodb is missing from your system.
Problem 3
- alcaeus/mongo-php-adapter 1.1.3 requires ext-mongodb ^1.2.0 -> the requested PHP extension mongodb is missing from your system.
- doctrine/mongodb 1.6.0 requires ext-mongo ^1.6.7 -> satisfiable by alcaeus/mongo-php-adapter[1.1.3].
- Installation request for doctrine/mongodb 1.6.0 -> satisfiable by doctrine/mongodb[1.6.0].

不知道从哪里开始,看到配置文件应该安装驱动程序......

想补充一点,我看到 Jenkins 在 /var/app/ondeck/ 目录中构建应用程序的 repo 文件。

【问题讨论】:

  • 嗯。那应该是pecl mongodb,因为mongo 包已被弃用,依赖错误实际上是ext-mongodb,这当然是较新的包。如果 ignoreErrors 也被删除,您可能会收到有关弃用的消息。另外请阅读ALL文档参考MongoDB PHP Driver,因为对多依赖安装的混淆确实很常见。
  • 好的,我会尝试,但有趣的是当我查看 cat /var/log/awslogs.log 时,安装命令甚至没有运行。有没有办法让 Beanstalk 在 Composer 尝试安装它的依赖项之前运行 .ebextensions 配置文件? -- 这有意义吗?
  • 可能不会。但重点是它是“错误的包装”。正如我指出的那样,您“忽略错误”,因此日志中没有任何内容并不奇怪。
  • 谢谢,我会删除那个忽略命令,看看有没有什么问题。

标签: php mongodb amazon-web-services amazon-elastic-beanstalk php-5.6


【解决方案1】:

请看这里:https://codinglatte.com/posts/php/php-7-with-mongodb-to-elastic-beanstalk/

您需要使用pecl7 而不是pecl

【讨论】:

    【解决方案2】:

    经过大量研究,我找到了适用于 php 7+ 的工作解决方案

    commands:
     01installMongoExtension:
      command:  /usr/bin/yes 'no'| /usr/bin/pecl7 install mongodb
      test: '! /usr/bin/pecl7 info mongodb'
    

    在根目录下创建 .ebextensions 文件夹。在该文件夹中创建 php7-mongodb-driver.config 文件并将上面的代码粘贴到其中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-15
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      • 2014-08-30
      • 1970-01-01
      相关资源
      最近更新 更多