Назад | Перейти на главную страницу

mod_xsendfile в AWS Elastic Beanstalk

Я понимаю, что для mod_xsendfile (что является большим обломом), поэтому мне интересно, можно ли вообще добавить его через .ebextensions config, учитывая, что его нужно скачать и скомпилировать.

Возможно ли это сделать только с .ebextensions config или мне нужно создать и поддерживать пользовательский AMI, чтобы он работал с Elastic Beanstalk? Если возможно, как мне настроить его без пакета yum?

В дополнение к вашему собственному ответу:

Помимо httpd24-devel, вам также понадобится установленный gcc, иначе apxs -cia mod_xsendfile.c завершится ошибкой.

К счастью, мне удалось настроить это, используя только .ebextensions конфиги. Я создал следующий файл конфигурации ...

packages:
    yum:
        httpd24-devel: []
commands:
    xsendfile_download: 
        command: wget https://tn123.org/mod_xsendfile/mod_xsendfile.c
        cwd: /home/ec2-user
        ignoreErrors: true
    xsendfile_install: 
        command: apxs -cia mod_xsendfile.c
        cwd: /home/ec2-user
        ignoreErrors: true

Первый, это гарантирует, что правильная версия httpd-devel будет установлена ​​вместе с apxs, которые необходимы для компиляции расширений Apache.

поскольку apxs по умолчанию не входит ни в одну EB-версию Amazon Linux, а поскольку стандартный AMI для php 5.6 включает Apache 2.4, мы должны убедиться, что используем конкретный пакет yum для httpd24.

следующий, мы запускаем две пользовательские команды: Первая команда скачивает mod_xsendfile в домашний каталог (который всегда /home/ec2-user/ на Amazon Linux), а второй компилирует Это. Поскольку это происходит каждый раз при создании экземпляра, mod_xsendfile всегда будет готов к использованию к моменту запуска apache.

Оказывается, на самом деле это было довольно простое решение, и его можно использовать для обеспечения загрузки и компиляции любого пакета Apache при каждом создании нового экземпляра на AWS Elastic Beanstalk.

НОТА: Если вы хотите сделать его более отказоустойчивым (например, если бы mod_xsendfile link когда-либо находился в автономном режиме, когда экземпляр запускался), вы можете разместить файл в другом месте, например S3, и вместо этого загрузить его оттуда.

Но это заставляет его работать, по крайней мере ... никакого специального AMI не требуется!