在AWS Elastic Beanstalk上安装php mongo驱动程序

时间:2013-11-11 19:58:47

标签: php elastic-beanstalk mongodb-php

我正在尝试在Elastic Beanstalk上部署php应用程序。除了打电话给mongo司机以外,一切都很好。

我尝试安装它遵循这些步骤(失败):

  1. SSH到Elastic Beanstalk实例。
  2. sudo yum install php-devel(对于phpize)
  3. sudo pecl install mongo
  4. 按照说明尝试命令:sudo echo "extension=mongo.so" >> /etc/php.ini 失败。错误信息是:

    -bash: /etc/php.ini: Permission denied

  5. 我能以正确的方式解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

您不应通过SSH连接到Elastic Beanstalk来安装php-develmongo。当您的EB环境无法进入/缩小或服务器崩溃时,这些设置将消失。

尝试使用Configuration File来自定义您的EB环境。

更新:在64位Amazon Linux 2013.09上添加PHP 5.4的配置文件示例

  1. 在源包的顶层创建.ebextensions目录。
  2. 创建配置文件/your_app/.ebextensions/01install_mongo_driver.config
  3. 在配置文件01install_mongo_driver.config中键入以下内容以安装php mongodb驱动程序。

    commands:
      install_mongo_driver_command:
        command: pecl install mongo
    

    因为64位上的PHP 5.4 Amazon Linux 2013.09 AMI已经包含php-devel,所以你不会手动安装它。

答案 1 :(得分:2)

在Amazon Linux 2上的PHP 7上更新MongoDB

files:
 "/etc/php.d/99mongo.ini" :
   mode: "000755"
    owner: root
    group: root
    content: |
      extension=mongo.so
commands:
  install_mongo_driver_command:
    command: sudo pecl7 install mongodb
    ignoreErrors: true

上面的添加在php.ini上启用了扩展名,并为您的PHP安装了mongodb。 ignore errors可以防止在第二次安装时出现任何错误。 (例如,如果服务器崩溃并必须重新启动)。这是为了防止出现“已安装mongodb”的错误

注意:此文件存储在:/your_app_root/.ebextensions/mongo.config

答案 2 :(得分:0)

今天,通过AWS Beanstalk在最新版本的Amazon Linux 2中安装 mongodb 的正确设置如下,其他一切对我来说都是失败的。如果您无法解决该问题,请像我一样做,然后连接到服务器并查看日志。

packages:
  rpm:
    php-pear: []
    php-devel: []
    gcc: []
files:
    "/etc/php.d/99mongo.ini":
        mode: "000755"
        owner: root
        group: root
        content: |
            extension=mongo.so
commands:
    install_mongo_driver_command:
        command: sudo pecl install mongodb
        ignoreErrors: true