![Dockerfile 在本地运行但在 EB(Elastic Beanstalk)部署(带有 OCI8 扩展的 PHP 7.3)上失败](https://linux22.com/image/767118/Dockerfile%20%E5%9C%A8%E6%9C%AC%E5%9C%B0%E8%BF%90%E8%A1%8C%E4%BD%86%E5%9C%A8%20EB%EF%BC%88Elastic%20Beanstalk%EF%BC%89%E9%83%A8%E7%BD%B2%EF%BC%88%E5%B8%A6%E6%9C%89%20OCI8%20%E6%89%A9%E5%B1%95%E7%9A%84%20PHP%207.3%EF%BC%89%E4%B8%8A%E5%A4%B1%E8%B4%A5.png)
各位开发人员,大家好!
我已经搜索了 2 个星期如何OCI8 PHP extension
在 Elastic Beanstalk 上安装,.ebextensions
但遗憾的是我无法搜索到类似的方法。
在我得出结论之前.ebextensions
,我首先尝试了 Docker 方法。我使用OCI8 PHP 扩展和Oracle 即时客户端依赖项。它在我的本地 Docker Hub 应用程序上运行良好,但当我尝试将其部署到 EB 时出现错误。
在阅读更多信息后,我偶然发现了这篇 AWS 文章:如何在使用 Amazon Linux 1 堆栈运行 PHP 的 Elastic Beanstalk 环境中安装 PECL 7 模块?。由此,我得出结论,对我来说这是最好的选择。现在的问题是几乎找不到与 OCI8、Elastic Beanstalk 和相关的文章.ebextensions
。
有谁尝试过使用.ebextensions
配置文件来安装OCI8 PHP 扩展? 任何线索都会有帮助。
答案1
我们已经能够使用 .ebextensions 安装 oci8 和 oracle 客户端。我们创建了 2 个配置文件,一个用于 oracle 内容:
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'
它可能并不完美,但对我们来说它还是有用的!
问候,
埃里克