Linux下安装oracle客户端并配置php5.3
因项目需要在linux下进行php5.3的oracle客户端编译,简要介绍一下步骤及走过的弯路。
1.下载oracle客户端程序包,其中包含oci、occi和jdbc-oci等相关文件。
1.1下载文件地址
根据操作系统的版本选择对应的软件,我需要的是x86_64选择
instant client for linux x86-64
1.2需要下载的文件如下:
oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm
oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm
需要强调的一点是这里需要注册一个oracle的账户才能正常下载。
2.安装oracle客户端程序包。
将程序包上传到服务器指定目录里
chmod +x *.rpm
#给rpm包赋执行权限
rpm -ivh oracle-instantclient11.1-basic-11.1.0.7.0-1.x86_64.rpm oracle-instantclient11.1-devel-11.1.0.7.0-1.x86_64.rpm oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.x86_64.rpm
#安装rpm包
echo "/usr/lib/oracle/11.1/client64/lib/" > /etc/ld.so.conf.d/oracle_client.conf
#将库路径加到默认加载中
/sbin/ldconfig
#重新加载动态链接库
3.安装oci8的php扩展(这里指定php的安装路径为/usr/local/webserver/php)
yum install libaio
#yum安装libaio库,libaio是linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高
wget
#下载oci扩展
tar zxvf oci8-1.4.10.tgz
#解压
cd oci8-1.4.10
/usr/local/webserver/php/bin/phpize cflags="-i/usr/lib/oracle/11.1/client64" cxxflags="-i/usr/lib/oracle/11.1/client64"
#使用phpize准备 php 外挂模块的编译环境,会根据指定的环境变量生成编译时需要的makefile,phpize是属于php-devel的内容,所以centos下只要运行yum install php-devel进行安装即可
./configure –with-php-config=/usr/local/webserver/php/bin/php-config –with-oci8=/usr/lib/oracle/11.1/client64
make
make install
#编译,安装
需要强调的是make的时候会报错,显示各种找不到库文件,需要对makefile文件进行修改加入oralce的运行库地址
打开makefile,寻找include,形式如下:
includes = -i/usr/local/php/include/php -i/usr/include/oracle/10.2.0.3/client
然后在末尾加上="-i/usr/lib/oracle/11.1/client64,然后重新make就会成功了。
4.修改php.ini(/usr/local/webserver/php/etc/php.ini)
在extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"后增加一行:
extension = "oci8.so"
5.重启apache让oci生效
6.在web目录下创建phpinfo.php文件在其中输入一下内容,并通过web访问
<?php
phpinfo();
?>
如果找到oci8的部分就说明oci安装正常了,如下图所示
接下来就能通过php访问oracle数据库了,需要注意的是php下oracle的连接字符串
<?php
$username='***';
$passwd='***';
$protocol='tcp';
$service_name='***';
$oracle_server_ip_address='***.***.***.***';
$port='1521′;
$db = "(description=(address_list = (address = (protocol = $protocol)(host = $oracle_server_ip_address)(port = $port)))(connect_data=(sid=$service_name)))";
$conn = oci_connect($username,$passwd, $db);
putenv("nls_lang=simplified chinese_china.al32utf8");
if (!$conn) {
$e = oci_error();
print htmlentities($e['message']);
exit;
}else {
echo "连接oracle成功!";
return $conn;
}
?>
推荐阅读
-
Java入门——在Linux环境下安装JDK并配置环境变量
-
Linux下安装jdk1.8并配置环境变量的教程
-
Linux(CentOS)环境下安装下载Nginx并配置
-
Linux下安装Python3和django并配置mysql作为django默认服务器方法
-
Linux下安装oracle客户端并配置php5.3
-
Linux下安装使用Mutt邮件客户端并配置邮件警报功能
-
Linux 7下脚本安装配置oracle 11g r2教程
-
Linux操作系统ubuntu17下安装jdk并配置环境变量
-
如何在Linux系统下安装Java,并配置jdk系统环境变量
-
Linux 下 Docker 安装elasticsearch并配置密码使用X-pack做安全验证