LoginSignup
3
6

More than 3 years have passed since last update.

CentOS7, PHP7 から昔のOracleに繋ぎたい

Last updated at Posted at 2018-10-31

環境

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いけたぽ)

3
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
6