我尝试与oracle数据库建立连接,但我仍然无法设置模块。我有rhel 7. 2服务器,我按照整个教程设置oracle instantclient并用php配置它。我完全不明白的一件事是oci8模块在php -i
执行后显示:
oci8
OCI8 Support => enabled
OCI8 DTrace Support => disabled
OCI8 Version => 2.1.3
Revision => $Id: 59f993160cf983dd24bb391b68a65a17303d2dba $
Oracle Run-time Client Library Version => 12.1.0.2.0
Oracle Compile-time Instant Client Version => 12.1
Directive => Local Value => Master Value
oci8.connection_class => no value => no value
oci8.default_prefetch => 100 => 100
oci8.events => Off => Off
oci8.max_persistent => -1 => -1
oci8.old_oci_close_semantics => Off => Off
oci8.persistent_timeout => -1 => -1
oci8.ping_interval => 60 => 60
oci8.privileged_connect => Off => Off
oci8.statement_cache_size => 20 => 20
但是脚本中的phpinfo()中没有这样的模块。如何解决?
PHP版本7.0.13 服务器Apache(httpd)
[![在此处输入图像说明] [2]] [2]
答案 0 :(得分:1)
常见的问题是没有为Apache设置LD_LIBRARY_PATH。
尝试将其添加到/etc/sysconfig/httpd
,例如:
LD_LIBRARY_PATH=/full/path/to/oracle-client
如果我的版本正确,则此版本的Apache(i)不喜欢设置变量的export
关键字(ii)需要完整路径,因为它不会扩展环境变量。如果我错了,试试其中一个或两个。
有很多关于在免费Underground Oracle & PHP Manual中设置环境的信息,请参阅第108页的“为Apache设置Oracle环境变量”
你说你跟着'整个教程'。有很多教程。我建议Oracle's installation instructions。
答案 1 :(得分:0)
答案是:
您还可以通过以下方式仅为oci8.so启用可执行堆栈:
答案 2 :(得分:0)
确保oci8.so位于php扩展文件夹中
以centos为/usr/lib64/php/modules
在ubuntu xammp中是/opt/lampp/lib/php/extensions/no-debug-non-zts-20170718
cd <extension folder >
sudo chmod 755 oci8.so
它对我有效
ps ax | grep "fpm"
检查“ php-fpm:主进程”的 pid
sudo kill -9 <pid>
再次启动php-fpm
sudo service php-fpm start