LINUX下PHP开启ORACLE支持(OCI8)(补充PDO_OCI)

原文地址:http://www.2cto.com/database/201412/364299.html

http://www.cnblogs.com/huangzhen/archive/2011/09/14/2176607.html

使用php的常见问题是:编译php时忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想删除目录重装,那么此时就需要自己重新增加某模块支持了,Linux操作系统下可以用phpize给PHP动态添加扩展.下面就以扩展模块 oci8为例(php连接oracle数据库需要改扩展支持)做简单的说明.(以下所有资源可以访问http://download.csdn.net/detail/haiqiao_2010/8294513 进行统一下载)

1.下载Oracle客户端程序包,其中包含OCI、OCCI和JDBC-OCI等相关文件

1.1 根据Linux系统选择对应的软件,我的为32位系统,所以下载如下文件:

oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm

oracle-instantclient11.2-devel-11.2.0.3.0-1.i386.rpm

1.2下载地址: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html (Oracle官网下载需要注册用户)

2.安装oracle客户端,运行以下命令即可:

 

rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0.i386.rpm

rpm -ivh oracle-instantclient11.2-devel-11.2.0.3.0.i386.rpm

3.安装oci8 php扩展

3.1 下载oci8-1.4.10.tgz

下载地址:http://pecl.php.net/get/oci8-1.4.10.tgz

3.2 把下载文件上传至linux服务器,并进行解压

命令:tar zxvf oci8-1.4.10.tgz#解压

3.3 转到解压目录

命令:cd oci8-1.4.10

3.4 使用phpize准备 PHP 外挂模块的编译环境,会根据指定的环境变量生成编译时需要的makefile,phpize是属于php-devel的内容,所以centos下只要运行yum install php-devel进行安装即可 (注意:/usr/local/php/bin/phpize 为我的php目录,不同则需改之;如果是64位的系统,client改成client64)

/usr/local/php/bin/phpize CFLAGS=”-I/usr/lib/oracle/11.1/client” CXXFLAGS=”-I/usr/lib/oracle/11.1/client”

3.5 编译,安装

 

要有与现有php完全相同的php压缩包。我用的是php-5.5.3.tar.gz。展开后进入里面的ext/oci8目录下,

然后执行命令: /usr/local/php/bin/phpize #这是一个可执行的文本文件,要确保它在系统中

会发现当前目录下多了一些configure文件,

如果没报错,则运行命令;

./configure –with-php-config=/usr/local/php/bin/php-config –with-oci8=/usr/lib/oracle/11.1/client

 

注意要先确保/usr/local/php/bin/php-config存在。如果你的php安装路径不是默认的,要改。

再运行以下命令 ,然后它告诉你一个目录,你把该目录下的oci8.so拷贝到你php.ini中的extension_dir指向的目录中

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/client,然后重新make就会成功了。

4. 修改PHP.ini(/usr/local/php/etc/php.ini)

在extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/”后增加一行:

extension = “oci8.so”

注意:要确保/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/ 该目录下有oci8.so文件

5.重启apache,让oci生效

6.在web目录下创建phpinfo.php文件在其中输入一下内容,并通过web访问

 

<?php
	phpinfo();
?>

如果找到OCI8的部分就说明OCI安装正常了,如下图所示\
\

说明oci8安装成功,接下来就可以使用php访问oracle数据库

 

补充:pdo_oci的安装

1)进入文件夹

# cd php-5.3.10/ext/pdo_oci/

2) 用phpize来扩展,文件夹内执行: phpize

[root@jinniu-test3 pdo_oci]# /alidata/server/php/bin/phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626

3) 编译安装

# ./configure --with-php-config=/alidata/server/php/bin/php-config --with-pdo-oci=/usr/lib/oracle/12.1/client64
# make && make install

这里同样注意,如果发生错误,则修改Makefile,在其中的INCLUDES继续添加以下内容(根据自己的路径修改):

-I/usr/include/oracle/12.1/client64 -I/usr/lib/oracle/12.1/client64

执行顺利完成后,最后一行可以看到,已经将pdo_oci.so文件放入php的modules下,只需修改下php.ini文件,添加extension=pdo_oci.so即可

RPM包管理 – yum在线管理 – yum命令

rpm是由红帽公司开发的软件包管理方式,使用rpm我们可以方便的进行软件的安装、查询、卸载、升级等工作。但是rpm软件包之间的依赖性问题往往会很繁琐,尤其是软件由多个rpm包组成时。
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。












整理最新命令

=================系统 – 服务管理=====================
(一).服务管理分类
查看 – 所有RPM包安装服务
chkconfig –list //不支持查看源码包
源码包安装服务
查看服务安装位置,一般是/usr/local/下
创建符号链接 – 让源码包服务被服务管理命令识别
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
让源码包的apache服务能被chkconfig命令管理自启动
vi /etc/init.d/apache
#chkconfig:35 86 76 //参数(运行级别,启动顺序,关闭顺序)
#description:source package apache
添加apache服务加到chkconfig服务
chkconfig –add apache
查看chkconfig服务启动情况,就会看到服务包已加入队列里面
chkconfig –list
(二).独立服务的启动
/etc/init.d/独立服务名 start|stop|status|restart|
service 独立服务名 start|stop|status|restart|
(三).独立服务的自启动
方法一
chkconfig –level 2345 httpd on
方法二
修改/etc/rc.d/rc.local 文件加入命令,系统自动开机会加载这个文件。
================系统 – 进程管理===================
(一) 查看系统中所有进程
ps aux
返回数据解释
(二) 查看系统健康状态
top [选项]
 
 
 
 
 
 
 
(三) 查看进程树
pstree [选项]
选项:
-p: 显示进程PID
-u: 显示进程所属用户
(四)终止进程
查看可用的进程信号
kill -l
#终止进程
kill [进程信号] [PID]
#重启进程
kill -l 22354
#强制杀死进程
kill -9 22368
2.killall命令
killall [选项][信号] 进程名
#按照进程名杀死进程
选项:
-i:交互式,询问是否要杀死某个进程
-I:忽略进程名的大小写
3.pkill命令
pkill [选项][信号] 进程名
#按照进程名终止进程
选项:
-t 终端号:踢出用户
查看登录用户,找到终端号
w
根据终端号剔出用户
pkii -9 -t tty1
4.把进程放入后台工作
1.tar -zcf etc.rar.gz /etc &
暂停命令执行,按下ctrl+z快捷键
2.查看后台的工作
jobs [-l]
选项:
-l:显示工作的PID
3.将后台暂停的工作恢复到前台执行
fg %工作号
参数:
%工作号:%号可以省略,但是注意工作号和PID的区别
4.把后台暂停的工作恢复到后台执行
bg %工作号
=======================日志管理========================