веб-сервисы Amazon — как добавить php ext-mailparse в экземпляр эластичного бобового стебля?

Я не смог добавить расширение MailParse PHP (https://pecl.php.net/package/mailparse) к экземпляру Elastic Beanstalk, работающему под управлением PHP 7. Моя цель — добавить его в последовательность загрузки, чтобы он всегда устанавливался при создании экземпляра.

Моя проблема в том, что версия Amazon для EB от Amazon не поддерживает PECL, поэтому я не уверен, как ее загрузить.

Я пытался адаптировать различные подходы для установки других расширений / модулей php, но безуспешно.

https://packagist.org/packages/php-mime-mail-parser/php-mime-mail-parser — Я попытался включить это через мой файл composer.json, но это не удалось, потому что «ext-mailparse» не был установлен.

http://wiki.cerbweb.com/Installing_PHP_Mailparse_Ubuntu — Я попытался запустить эти команды для установки расширения, но первая команда для установки зависимостей не удалась.

https://serverpilot.io/community/articles/how-to-install-the-php-mailparse-extension.html — «sudo: apt-get: команда не найдена»

У меня есть ощущение, что есть более простой способ сделать это, но я застрял. Кто-нибудь может помочь?

1

Решение

Создайте два файла:

.ebextensions / 01mailparse.config

commands:
01install_mailparse:
command: "pecl7 install --force mailparse"

Обратите внимание на использование --force флаг. Я добавил это, поскольку иногда AWS EB автоматически повторно развертывает приложение таким образом, что PECL завершается сбоем, если оно находит расширение, которое уже установлено.

.ebextensions / 02prioritize.config

commands:
01change_mailparse_load_priority:
command: "sed '/extension=\"mailparse.so\"/d' /etc/php.ini > /etc/php.ini && echo 'extension=\"mailparse.so\"' > /etc/php-7.0.d/zz_mailparse.ini"

Это удаляет регистрацию расширения mailparse из php.ini файл (PECL добавляет строку вверху, странно) и регистрирует ее для загрузки в конце списка (префикс zz).

Обратите внимание, что я использовал два файла. По какой-то причине использование двух команд для одного и того же файла создавало файл развертывания. Буду признателен, если кто-нибудь сможет уточнить это.

0

Другие решения

Добавить в @MauroОтвет ниже позволяет установить mailparse и удалить расширение из /etc/php.ini в одном файле.

.ebextensions / 01_mailparse.config (PHP 7.x)

commands:
01_mailparse_install:
command: |
pecl7 install --force mailparse
sed -i '/extension="mailparse.so"/d' /etc/php.ini

files:
"/etc/php.d/mailparse.ini":
mode: "000644"owner: root
group: root
content: |
extension="mailparse.so"

.ebextensions / 01_mailparse.config (PHP 5.6)

commands:
01_mailparse_install:
command: |
pecl install --force mailparse-2.1.6
sed -i '/extension="mailparse.so"/d' /etc/php.ini

files:
"/etc/php.d/mailparse.ini":
mode: "000644"owner: root
group: root
content: |
extension="mailparse.so"

| позволяет многострочные значения. Я модифицировал sed Команда и добавил блок файлов, чтобы он мог работать на нескольких версиях PHP без особых изменений.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector