首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有php-fpm的ORA-28547在码头集装箱中

带有php-fpm的ORA-28547在码头集装箱中
EN

Stack Overflow用户
提问于 2020-10-17 14:41:28
回答 4查看 618关注 0票数 0

我得到了一个正常工作的php停靠容器,充当nginx前端的php后端。我所说的工作是,它按照预期在浏览器中呈现phpinfo输出。我的php容器是由devilbox码头回购公司的php 7.4产品生产的.它启用了OCI8。

问题:在尝试oci_connect时,我一直得到ORA-28547。

我所做的:

1-将/usr/lib/oracle/client64 64/lib添加到ld.so.con.d中的一个文件中,并运行ldconfig -v 2--重新启动码头容器。

现在phpinfo显示oracle_HOME=/usr/lib/oracle/client64 64/lib

4--将tnsnames.ora添加到/usr/lib/oracle/client6 6/lib/ you /admin(该文件夹中有一个README.md文件,甚至告诉您这样做)5--重新启动码头容器。oci_connect仍然在相同的错误中失败。

我错过了什么?

非常感谢你的指点,我想我已经浏览了互联网的尽头,但还没有找到解决方案。

-解决方案:重新安装实例化客户端、relink库(ldconfig)以使用新的实例化客户端库。创建修改后的dockerfile,以便在创建容器时执行此操作。

我修改了php-fpm的Dockerfile文件,以添加新的即时客户端文件,而不是原始文件提供的文件。我没能和他们合作。我已经尝试过几次重建映像(停靠-组合-构建),这就是这个文件的作用所在:

来自devilbox/php-fpm:7.4-work

#instantclient.conf内容: /opt/instantclient运行echo "/opt/instantclient“>/etc/ld.so.con.d/insttclient.conf

WORKDIR /opt

运行wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip

运行wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip

运行wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-basic-linux.x64-19.8.0.0.0dbru.zip

运行解压缩instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip

运行解压缩instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip

运行解压缩instantclient-basic-linux.x64-19.8.0.0.0dbru.zip

运行mv instantclient_19_8实例化客户机

添加tnsnames.ora /opt/实例化客户机/网络/管理

运行ldconfig -v

CMD "php-fpm“

揭露9000

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-10-17 18:10:32

你能检查一下吗

https://github.com/caffeinalab/php-fpm-oci8/blob/master/Dockerfile

,这似乎创建了一个p-fpm-oci8对接者图像。

"wget“

wget https://raw.githubusercontent.com/caffeinalab/php-fpm-oci8/master/oracle/instantclient-basic-linux.x64-12.2.0.1.0.zip区bsdtar -xvf- -C /usr/local &

wget https://raw.githubusercontent.com/caffeinalab/php-fpm-oci8/master/oracle/instantclient-sdk-linux.x64-12.2.0.1.0.zip区bsdtar -xvf- -C /usr/local &

wget https://raw.githubusercontent.com/caffeinalab/php-fpm-oci8/master/oracle/instantclient-sqlplus-linux.x64-12.2.0.1.0.zip \ bsdtar -xvf- -C /usr/local && \

可以在将下载的即时客户端文件放置到本地主机dir中时删除。

/usr/本地

然后把它们提取出来-

/usr/局部/实例化_12_2或18,19c等价物

必须调整4个"ln“命令以反映本地主机实例化dir。

实例化客户端的tnsnames.ora可以从主机按卷命令获得。

-最后一种解决办法

经过多次尝试和错误之后,我想出了一个Dockerfile,它创建了正确的文件配置,并在没有任何问题的情况下连接到数据库:

-Dockerfile:(使用devilbox映像构建php-fpm 7.4 )

代码语言:javascript
复制
Final solution:

我修改了php-fpm的Dockerfile文件,以添加新的即时客户端文件,而不是原始文件提供的文件。我没能和他们合作。我已经尝试过几次重建映像(停靠-组合-构建),这就是这个文件的作用所在:

来自devilbox/php-fpm:7.4-work

添加instantclient.conf /etc/ld.so.con.d/

WORKDIR /opt

运行wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip

运行wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip

运行wget https://download.oracle.com/otn_software/linux/instantclient/19800/instantclient-basic-linux.x64-19.8.0.0.0dbru.zip

运行解压缩instantclient-sdk-linux.x64-19.8.0.0.0dbru.zip

运行解压缩instantclient-sqlplus-linux.x64-19.8.0.0.0dbru.zip

运行解压缩instantclient-basic-linux.x64-19.8.0.0.0dbru.zip

运行mv instantclient_19_8实例化客户机

添加tnsnames.ora /opt/实例化客户机/网络/管理

运行ldconfig -v

CMD "php-fpm“

揭露9000

票数 0
EN

Stack Overflow用户

发布于 2020-10-17 16:08:42

代码语言:javascript
复制
# Insert following to .bash_profile or .profile of the User starting the php-fpm
export ORACLE_HOME=/usr/lib/oracle/client64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export PATH=$PATH:$ORACLE_HOME/bin
export TNS_ADMIN=$ORACLE_HOME/network/admin
# Test to Ping Remote Db to be connected  by PHP 
tnsping <tns-name of remote DB - i.e. db12c.world>
 # restart here the php Engine 
票数 1
EN

Stack Overflow用户

发布于 2020-10-17 19:32:30

,我明白了!是防火墙问题。我启动了一个tcpdump捕获会话,php、oci8和实例化客户端库没有什么问题。已启动通信量,但数据库没有响应。我让它在一个不同的数据库上工作,在这个数据库中,这个盒子没有防火墙问题。

我现在将尝试重建码头形象,以便我可以看到我必须手动添加,如果有的话。

这是不正确的(防火墙是问题的根源)。重建码头文件告诉我哪里出了问题。请参阅原始问题的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64403671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档