必须分享一下thinkphp5.1成功连接Oracle11g,花费3天爬坑成功

过多废话不多说,直接上安装步骤
1.下载oracle-instantclient并安装
(这里选择的版本感觉要和链接的数据库版本一致,因为我先前安装12.2,PDO连11g是失败的)
https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64
oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64

rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
rpm -ivh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm

2.安装服务器LNMP环境(忽略)
我个人用的一键自动安装脚本,看个人习惯,

3.安装PECL(不用pecl安装oci8可以忽略此步骤,因为我用pecl安装的时候失败了,不知道什么原因)
//php版本 > 7
$ wget http://pear.php.net/go-pear.phar
$ php go-pear.phar

//php版本 < 7
$ yum install php-pear
//否则会报错PHP Parse error: syntax error, unexpected //'new' (T_NEW) in /usr/share/pear/PEAR/Frontend.php on 

4.下载oci8并编译
pecl install oci8(我安装时失败了,用的后面的编译安装)
或者
http://pecl.php.net/package/oci8
wget http://pecl.php.net/get/oci8-2.2.0.tgz
tar -zxvf oci8-2.2.0.tgz
cd oci8-2.2.0
chmod 777 *

phpize
./configure --with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib
make && make install

5.php.ini增加extension=oci8.so 扩展

vim /usr/local/php/etc/php.ini
extension=oci8.so

6.安装PHP的pdo_oci
tar -zxvf php-7.2.19.tar.gz
cd ~/oneinstack/src/php-7.2.19/ext/pdo_oci/

phpize
./configure --with-pdo-oci=instantclient,/usr/lib/oracle/11.2/client64/lib \
--with-oci8=instantclient,/usr/lib/oracle/11.2/client64/lib
make && make install

7.配置php.ini扩展
vim /usr/local/php/etc/php.ini
extension=pdo_oci.so

8.安装thinkphp
composer create-project topthink/think tp5
chown -R www.www /data/wwwroot/
find /data/wwwroot/ -type d -exec chmod 755 {} \;
find /data/wwwroot/ -type f -exec chmod 644 {} \;

9.安装TP5.1的orclae扩展
composer require topthink/think-oracle=v2.1 

10.修改数据库配置
// 数据库类型
'type' => '\think\oracle\Connection',
// 服务器地址
'hostname' => '110.110.110.110',
// 数据库名
'database' => 'orcl',
// 用户名
'username' => 'userName',
// 密码
'password' => 'userPassword',
// 端口
'hostport' => '1521',

你可能感兴趣的:(编程语言,数据库)