linx下安装php的oci的扩展
公司刚来到新公司,公司让我搞网站,正好自学了段时间段的php,但是最后蛋疼的是要部署在linux,也是因为连接的oracle,就是很蛋疼的感觉,你懂得,在win下没有问题,但是在linux装oci8扩展折腾了好多时间,然后连接oracle又折腾了好久。
好,话不多说,下面来详细的步骤。
php也可以使用pdo访问oracle数据库,但还是需要安装客户端。
开始参考的张宴的博客,但是有问题,折腾了好久。
首先到oracle官网的这个页面下载相关的文件,注意要连数据库服务器的版本,一定要对应,否则安装成功也会连不上,同时也要区分32位、64位服务器,比如我要连的数据库服务器是oracle10.2.0.4,64位主机,那么我要下载下面三个文件:
oracle-instantclient-basic-10.2.0.4-1.x86_64.rpm
oracle-instantclient-devel-10.2.0.4-1.x86_64.rpm
oracle-instantclient-sqlplus-10.2.0.4-1.x86_64.rpm
用以下命令安装
rpm-ivhoracle-instantclient-basic-10.2.0.4-1.x86_64.rpmoracle-instantclient-devel-10.2.0.4-1.x86_64.rpmoracle-instantclient-sqlplus-10.2.0.4-1.x86_64.rpm
(当然这里小小的鄙视下oralce需要注册才行)
如果是redhat并且可以联网
yuminstalllibaio
wgethttp://pecl.php.net/get/oci8-1.3.5.tgz
因为我的是centos又不能联网所以就下载了
然后执行
tarzxvfoci8-1.3.5.tgz
cdoci8-1.3.5/
/home/local/php/bin/phpizeCFLAGS="-I/usr/include/oracle/10.2.0.4/client64/"CXXFLAGS="-I/usr/include/oracle/10.2.0.4/client64/"
./configure--with-php-config=/home/local/php/bin/php-config--with-oci8=/usr/lib/oracle/10.2.0.4/client64/
上面橙色的表示php的安装路径,红色的表示oracle路径,oracle路径会因为版本的不同文件夹名称有所不同,要到相应目录查看一下,确认路径正确。
然后执行make,如果报错,就执行
./configure--with-php-config=/home/renjun/php/bin/php-config--with-oci8=instantclient,/usr/lib/oracle/10.2.0.4/client64/lib/
成功后会提示你执行maketest,那就执行吧,可能会出现一堆的fail,但是不要紧。继续makeinstall。
修改php.ini文件,添加
extension="oci8.so"
然后重启nginx,用php-m如果有oci8说明成功了
就算是安装成功了也不行,最后在网上看到点东西,不得不修改config.php(用的thinkphp)
'TMPL_L_DELIM'=>'<{',//修改左定界符
'TMPL_R_DELIM'=>'}>',//修改右定界符
'DB_TYPE'=>'Oracle',//数据库类型
'DB_HOST'=>'210.51.13.20',//服务器地址
'DB_NAME'=>'(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=210.51.13.20)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=xxp)
))',//数据库名,
'DB_USER'=>'yewen',//用户名
'DB_PWD'=>'pawxx7865ed',//密码
'DB_PORT'=>'1521',//端口
'DB_PREFIX'=>'YW_',//数据库表前缀
'SHOW_PAGE_TRACE'=>true,//开启页面Trace
'URL_HTML_SUFFIX'=>'html',
'URL_MODEL'=>2
);
这样就行了,最后连接成功了。