Добрый день, коллеги-разработчики!
Уже две недели я ищу, как установить OCI8 PHP extension
на Elastic Beanstalk с помощью .ebextensions
, но, к сожалению, не могу найти похожие.
Прежде чем я решил использовать .ebextensions
, я сначала попробовал подход Docker. Я создал образ с расширением OCI8 PHP и Oracle Instant Client . Он отлично работал в моем локальном приложении Docker Hub, но при попытке развернуть его в EB возникли ошибки.
Прочитав дополнительную информацию, я наткнулся на эту статью AWS:Как установить модули PECL 7 в средах Elastic Beanstalk, работающих на PHP, со стеками Amazon Linux 1? . Из этого я сделал вывод, что это лучший вариант в моем случае. Проблема сейчас в том, что почти нет статей, которые относятся к OCI8, Elastic Beanstalk и .ebextensions
.
Кто-нибудь пробовал использовать файлы конфигурации .ebextensions
для установки расширения OCI8 PHP ? Любая подсказка действительно поможет.
Нам удалось установить oci8 и клиент oracle с помощью расширения.ebextensions. Мы создали 2 конфигурационных файла, один для оракула :
commands:
01_install_basic:
command: |
cd /tmp
wget https://download.oracle.com/otn_software/linux/instantclient/oracle-instantclient-basic-linuxx64.rpm
rpm -i oracle-instantclient-basic-linuxx64.rpm
test: '! rpm -qa |grep oracle-instantclient-basic'
02_install_devel:
command: |
cd /tmp
wget https://download.oracle.com/otn_software/linux/instantclient/oracle-instantclient-devel-linuxx64.rpm
rpm -i oracle-instantclient-devel-linuxx64.rpm
test: '! rpm -qa |grep oracle-instantclient-devel'
03_install_sqlplus:
command: |
cd /tmp
wget https://download.oracle.com/otn_software/linux/instantclient/oracle-instantclient-sqlplus-linuxx64.rpm
rpm -i oracle-instantclient-sqlplus-linuxx64.rpm
export CLIENT_HOME=/usr/lib/oracle/21/client64
export LD_LIBRARY_PATH=$CLIENT_HOME/lib
export PATH=$PATH:$CLIENT_HOME/bin
test: '! rpm -qa |grep oracle-instantclient-sqlplus'
, а второй для модуля oci8
commands:
02_install_oci8:
command: echo '' | /usr/bin/pecl install oci8-2.2.0
test: '! php -m |grep oci8'
. Возможно, это не идеально, но для нас это работает!
С уважением,
Эрик