我在用着:
- CentOS 6.7
- Zend.1.2.15 使用 oci8,使用 instantclient 11.2 x64
- PHP 5.4.45
尝试连接到 Oracle:
- Oracle 数据库 10g 版本 10.2.0.4.0
已检查凭据,已尝试连接到另一台 Oracle 服务器,但错误仍然相同:
12546 ORA-12546: TNS:permission denied *
已授予 0777 权限/usr/local/oracle/11.2/client64/
以下是一些答案,但没有一个解决。
服务器没有任何类型的黑名单中的 IP。
相同的代码可以在具有 OracleInstantClient 的任何其他 Windows PC 上运行,并且无需在服务器上进行有关授予 IP 访问权限或任何权限的进一步配置。
我还可以检查其他内容来解决此问题吗?
经过几个小时的搜索,我发现了这篇文章:http://www.emsperformance.net/2013/12/20/connecting-to-oracle-database-from-php-with-oci8/ http://www.emsperformance.net/2013/12/20/connecting-to-oracle-database-from-php-with-oci8/这是迄今为止解释LAMP、Oracle、Zend安装过程的最好的文章。
我缺少的设置是:
setsebool -P httpd_can_network_connect on
编辑:过了一段时间,这个答案对某人来说仍然有用,值得说的是,发生这种情况是因为机器激活了 SELinux,通常在enforcing
模式。我不建议禁用 SELinux,但将其设置为permissive
看起来可以简化识别某些问题的过程。您可以通过以下方式检查 SELinux 状态sestatus
.
SELinux 上布尔值的完整列表可在以下位置找到:https://wiki.centos.org/TipsAndTricks/SelinuxBooleans https://wiki.centos.org/TipsAndTricks/SelinuxBooleans
总体信息:https://wiki.centos.org/HowTos/SELinux https://wiki.centos.org/HowTos/SELinux
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)