如何通过Amazon AWS Elastic Beanstalk安装PHP扩展?

use*_*100 5 php amazon-ec2 amazon-web-services geoip amazon-elastic-beanstalk

我们在EC2实例上的PHP应用程序中使用了aws Elastic beantalk。由于我们选择了负载平衡,因此它会不断更改实例。

我想知道我们是否安装了PHP插件,它会受到实例更改的影响还是在新实例中可用?

提出这个问题是因为我们观察到每次实例被弹性beantalk更改时,我们的应用程序都被重新部署。

我们需要安装Geoip插件。如何在不影响实例更改的情况下安装它?

use*_*276 6

YAML

packages:
    yum:
        php70-pecl-redis.x86_64: []
Run Code Online (Sandbox Code Playgroud)

  • 它也可以在没有确切版本号的情况下工作,这样 `php-pecl-redis: []` (2认同)

Tul*_*ria 5

如果您保留环境设置,则在执行应用程序时,您将始终具有相同的EC2设置。

我更喜欢使用代码进行这种自定义(您也可以使用AWS控制台进行此操作)。因此,使用以下路径在源根目录中创建一个文件: .ebextensions / php-modules.config,其中包含以下内容(ps:我正在生产中使用它,没有问题):

commands:
    01_redis_install:
        # run this command from /tmp directory
        cwd: /tmp
        # don't run the command if phpredis is already installed (file /etc/php.d/redis.ini exists)
        test: '[ ! -f /etc/php.d/redis.ini ] && echo "redis not installed"'
        # executed only if test command succeeds
        command: |
            wget https://github.com/nicolasff/phpredis/zipball/master -O phpredis.zip \
            && unzip -o phpredis.zip \
            && cd phpredis-phpredis-* \
            && phpize \
            && ./configure \
            && make \
            && make install \
            && echo extension=redis.so > /etc/php.d/redis.ini
Run Code Online (Sandbox Code Playgroud)

这用于安装php-redis,但是您也可以使用相同的方法来进行geoip。

有关更多信息:http : //docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP.container.html#php-configuration-namespace

该示例的来源:http : //qpleple.com/install-phpredis-on-amazon-beanstalk/