在Linux上为PHP配置OCI8连接

简介:
Oracle 11g 客户端可以很方便地帮助PHP连接到远程Oracle数据库。本问介绍如何安装PHP以及其OCI8 扩展以及 Oracle客户端到Windows和Linux平台上。更详细的介绍可以阅读这里 The Underground PHP and Oracle Manual 。 OCI8是PHP的扩展组件用以连接和操纵Oracle数据库(该名字源于Oracle中’C call interface’ API接口,该API最早在Oracle8中公布)。OCI 8 是开源的且已包括在PHP中了。 Oracle 简洁客户端(Instant Client)是一套免费且易安装的库文件,可以允许应用程序连接到远程数据库中。当Oracle数据库Sever端在本地时,该客户端不再是必要的。 当使用11g客户端,其中的OCI8 函数将支持Oracle 9.2,10.x,以及11.x的数据库。 软件需求:
软件 注意
Oracle Instant Client 下载"Instant Client Package – Basic”,也需要” Instant Client Package – SDK”
Apache HTTPD Server 版本1或2均可
PHP - PHP Hypertext Processor 版本 5.2
在Linux平台上启用PHP的OCI8扩展 在Linux平台上PHP往往需要重新编译。若用户使用Oracle Enterprise Linux,则预编译好的PHP RPM包可以直接从 oss.oracle.com 上下载。 为了搭建PHP和OCI8: 1. 你需要下载 Apache HTTPD Server ,且下载 PHP 5.2 source code  即PHP 5.2源码,根据安装手册安装PHP与APACHE。在这里不需要为OCI8配置什么。 2. 从OTN上下载基础和SDK客户端包,地址: Instant Client page 。ZIP或RPM格式均可。 开始安装包:

rpm -Uvh oracle-instantclient11.1-basic-11.1.0.7.0-1.i386.rpm

rpm -Uvh oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm

以上第一个RPM包将Oracle库文件安置在usr/lib/oracle/11.1/client/lib,而第二个在/usr/include/oracle/11.1/client建立头文件。 3. 从 PECL 上下载最新的OCI 8 1.3.5扩展将覆盖PHP 5.2源码中的默认版本。手动下载并如此安装: pecl install oci-1.3.5.tgz 或最新版本可直接如此下载安装: pecl install oci8 输出如下: downloading oci8-1.3.5.tgz ... Starting to download oci8-1.3.5.tgz (137,987 bytes) .....done: 137,987 bytes 10 source files, building running: phpize Configuring for: PHP Api Version: 20041225 Zend Module Api No: 20060613 Zend Extension Api No: 220060519 1. Please provide the path to the ORACLE_HOME directory. Use 'instantclient,/path/to/instant/client/lib' if you're compiling with Oracle Instant Client : autodetect 1-1, 'all', 'abort', or Enter to continue:

若您安装了Instant Client RPM包,回车后PECL将自动定位RPM包并安装OCI8.so共享库文件。 4. 修改php.ini并确认extension_dir 指向了oci8.so所在目录 并在php.ini中加上: extension=oci8.so,启用oci 8。 5. 将Instant Client(简洁客户端)的目录添加到/etc/ld.so.conf中,或手动设置LD_LIBRARY_PATH包含目录/usr/lib/oracle/11.1/client/lib,并重启Apache。 在重启Apache前要设好Oracle环境变量,如下脚本: #!/bin/sh LD_LIBRARY_PATH=/usr/lib/oracle/11.1/client/lib:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH echo Starting Apache /usr/sbin/apachectl start 以上脚本未设置NLS_LANG等语言环境变量,即使用默认环境。 现在来确认扩展是否正确安装,我们可以通过以下php脚本予以确认: 自浏览器打开该脚本地址URL,如http://localhost/phpinfo.php,若显示页面出现"oci8”说明配置成功。 下面我们尝试连接Oracle数据库,Oracle授权以及数据库信息会返回给oci_connect()函数以创建连接。一般我们要用到一个tnsname以便远程连接,不懂得话建议你阅读下Oracle的基础文档,除了Net connection identifier(网络连接id 可能是tnsname也可能是easyconnect字符串等)外当然还需要用户名和密码。有好几种方法可以通过PHP连接数据库,下面是其中一个示例使用Oracle的EasyConnect语法的链接标示并要求以HR用户模式登陆名为MYDB的远程数据库: $c = oci_connect('hr', 'hr_password', '//mymachine.mydomain/MYDB'); 您可能需要阅读Oracle Using the Easy Connect Naming Method文档以便了解EasyConnect。 注意在数据库中HR用户可能被锁住了,我们假设你是一位称职的DBA,可以很容易解决这类问题。 开始尝试在PHP上使用Oracle,下面是个简单的示例,你可能需要修改其中连接标示(指'mymachine.mydomain/MYDB'这个)以便连接自己的数据库,示例用以显示HR用户拥有的所有表: \n"; } oci_free_statement($stid); oci_close($conn); ?> 问题: 检查Apache错误日志文件,避免可能发生的启动错误。 零时打开display_error=on选项以显示脚本中的问题,这需要在php.ini中加入” display_error=on”。 用SQL*PLUS检测可能的环境问题等。 结语 安装Oracle简洁客户端以及OCI 8扩展十分简便,各组件安装和更新也很容易。 未来PHP 5.3将默认包含OCI 8 1.3版扩展。


本文转自maclean_007 51CTO博客,原文链接:http://blog.51cto.com/maclean/1276844


相关文章
|
6天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
67 7
|
2月前
|
安全 PHP 开发者
php中配置variables_order详解
`variables_order` 是 PHP 配置中的一个关键指令,它决定了不同来源的变量被导入到全局变量空间的顺序。正确配置 `variables_order` 不仅可以确保变量的正确处理和覆盖顺序,还能提高应用程序的安全性。开发者应根据具体应用的需求,合理配置 `variables_order`,确保应用的稳定和安全运行。
33 5
|
2月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
2月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
77 9
|
2月前
|
监控 PHP Apache
优化 PHP-FPM 参数配置:实现服务器性能提升
优化PHP-FPM的参数配置可以显著提高服务器的性能和稳定性。通过合理设置 `pm.max_children`、`pm.start_servers`、`pm.min_spare_servers`、`pm.max_spare_servers`和 `pm.max_requests`等参数,并结合监控和调优措施,可以有效应对高并发和负载波动,确保Web应用程序的高效运行。希望本文提供的优化建议和配置示例能够帮助您实现服务器性能的提升。
81 3
|
2月前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
60 5
|
3月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
81 2
|
4月前
|
关系型数据库 MySQL PHP
php wampserver的使用配置
本文介绍了WampServer在Windows系统下的配置和使用方法,包括如何修改PHP时区为中国标准时区PRC、更改Apache服务器端口号以避免冲突、设置起始页以及如何创建和管理虚拟目录。通过这些步骤,用户可以更有效地在本地环境中开发和测试PHP程序。
php wampserver的使用配置
|
3月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
662 3
|
3月前
|
监控 安全 网络协议
快速配置Linux云服务器
【10月更文挑战第3天】快速配置Linux云服务器