公司刚来到
新公司,公司让我搞网站,正好自学了段时间段的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 -ivh 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
(当然这里小小的鄙视下oralce 需要注册才行)
如果是redhat 并且可以联网
yum install libaio
wget http://pecl.php.net/get/oci8-1.3.5.tgz
因为我的是centos 又不能联网所以就下载了
然后执行
tar zxvf oci8-1.3.5.tgz
cd oci8-1.3.5/
/home/local/php/bin/phpize CFLAGS="-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/
成功后会提示你执行make test,那就执行吧,可能会出现一堆的fail,但是不要紧。继续make install。
修改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
);
这样就行了,最后连接成功了。