#環境
CentOS 7.5 PHP 7.2.11 Oracle 10.2.0.5
#とりあえず
Laravel 5.7 を使いたかったので、PHP 7.1.3以上が必要
せっかくなので、現時点での最新安定版 PHP 7.2.11 を入れる
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install --enablerepo=remi,remi-php70 php php-devel php-mbstring php-pdo php-g
Oracleを使うにはoci8とかいうのを入れる必要があるらしい(あとあと揉める)
yum install php72-php-oci8
さっくり入る
ただしこの段階で php 動かすとエラーが出る
PHP Warning: PHP Startup: Unable to load dynamic library 'oci8' (tried: /usr/lib64/php/modules/oci8 (/usr/lib64/php/modules/oci8: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/oci8.so (libclntsh.so.18.1: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_oci' (tried: /usr/lib64/php/modules/pdo_oci (/usr/lib64/php/modules/pdo_oci: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/pdo_oci.so (libclntsh.so.18.1: cannot open shared object file: No such file or directory)) in Unknown on line 0
クライアント入れないといけない感じ
#Oracleのクライアント入れる
なお、oracleのサーバとクライアントのバージョンが離れすぎてると動かないので注意
https://www.oracle.com/jp/system-requirement/interoperability-support-195844-ja.html
以下から、対応したバージョンの
・instant client package basic
・instant client package sdk
をDLしてインストール
https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
oracle instant client を rpm で入れる場合、インストール先に注意
https://mike-neko.github.io/blog/oracle-cent/
#Oracleのクライアントに対応したPHP拡張
めでたくOracleのクライアントは入ったけど、こっちが用意したのは10.2.0.5
php拡張はなんか18を要求してて困る
どっか設定で変更できるのかと思ったけどぜんぜんない
yum install php-oci8 した場合、問答無用で oracle18用のoci8が入ってしまうっぽい
手動でインストールする必要がありそう
php公式からtar.gzをダウンロード、拡張を個別に作り直し
https://qiita.com/asano_yuki/items/24fd22412057338093ae
dtraceを有効にしておく(すごくハマる)
https://mike-neko.github.io/blog/oracle-cent/
p.s.ノーサポートだけど、最新のクライアントでも昔のサーバつなげるっぽい(18でも10いけたぽ)