php - 如何使用 Amazon AWS Elastic Beanstalk 安装 PHP 扩展?

标签 php amazon-web-services amazon-ec2 amazon-elastic-beanstalk geoip

我们正在为 EC2 实例上的 PHP 应用程序使用 aws elastic beantalk。由于我们选择了负载平衡,因此它会一次又一次地更改实例。

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

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

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

最佳答案

如果您保存环境设置,则在执行您的应用程序时,您将始终拥有相同的 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

这是为了安装 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/

关于php - 如何使用 Amazon AWS Elastic Beanstalk 安装 PHP 扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38730483/

相关文章:

php - wordpress .po 文件中的#: (file, 行号) 行是否必要

PHP + AJAX 在查询数据库时不产生结果

amazon-web-services - 如何跳过代码流水线阶段?

java - 分析 OnPrem 和 AWS 环境之间的 SQL 查询性能

linux - Hugo 错误 - 当前主题不支持当前版本

amazon-ec2 - 如何查找我当前正在使用多少EBS分配大小

amazon-web-services - Django channel 2 和 EC2/Elasticbeanstalk

PHP:正则表达式从字符串中替换除字母数字字符之外的所有内容

mysql - 具有共享用户数据库的网站

php - Zend 框架 : How to unset the one stylesheet from the HeadLink helper