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


Installing php mongo driver on AWS Elastic Beanstalk

我正试图在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

我这样做对吗?

您不应该通过SSH将php-develmongo安装到Elastic Beanstalk中。当EB环境放大/缩小或服务器意外崩溃时,这些设置将消失。

尝试使用配置文件自定义EB环境。

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

  1. 在源捆绑包的顶层创建一个.eextensions目录
  2. 创建一个配置文件/your_app/.ebextensions/01install_mongo_driver.config

在配置文件01install_mongo_driver.config中键入以下内容以安装php-mogodb驱动程序。

commands:
  install_mongo_driver_command:
    command: pecl install mongo

因为64位AmazonLinux2013.09AMI上的PHP5.4已经包含php-devel,所以您不会手动安装它。

在AmazonLinux2上更新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/.eextensions/mongo.config

今天,通过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