現環境
CentOS Linux release 7.7.1908 (Core)
Oracle12.1
php7.4.2系
Laravel6.2系
現在php7.2系でOracleを使っています。
以下のコマンドで、php7.4にバージョンを上げました。
$ yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php74 php $ yum -y install --enablerepo=remi,remi-php74 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
composer update を行ったところ、
oci8 is missing from your system.
のエラーがでました。
拡張系のディレクトリは
/etc/php.d/配下を見ているようでした。
php7.2系の時は
php.ini
extension_dir = "/usr/lib64/php/modules" extension=oci8.so
この記載で行けていたので、同様にphp.iniを修正したところ、
PHP Warning: PHP Startup: Unable to load dynamic library 'oci8.so' (tried: /usr/lib64/php/modules/oci8.so (/usr/lib64/php/modules/oci8.so: undefined symbol: _object_init_ex), /usr/lib64/php/modules/oci8.so.so (/usr/lib64/php/modules/oci8.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
上記の文言がでました。
モジュールがないのかは下記で確認しました。
find / -name 'oci8.so' /usr/lib64/php/modules/oci8.so
モジュールはありました。
原因はこちらでしょうか?
/usr/lib64/php/modules/oci8.so: undefined symbol: _object_init_ex), /usr/lib64/php/modules/oci8.so.so
php7.4でオラクル導入された方いましたら教えて頂きたいです。
宜しくお願い致します。
追記
再度phpをcentOSから削除し再インストールしました。
yum remove php-* yum install --disablerepo=* --enablerepo=epel,remi,remi-safe,remi-php74 php
この段階で、
php -v ではモジュールが見つからないエラーはでませんでした。
php-oci8をいれてみてはとのことだったので、
sudo yum -y install --enablerepo=remi,remi-php74 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-oci8
いれましたところ、
php -v 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.19.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.19.1: cannot open shared object file: No such file or directory)) in Unknown on line 0 PHP 7.4.2 (cli) (built: Jan 21 2020 11:35:20) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies
このように出力されます。疑問に思ったのが、
(libclntsh.so.19.1: cannot open shared object file: No such file or directory))
oracleのディレクトリを確認したところ
cd /usr/local/lib/instantclient_12_1/ BASIC_README adrci genezi libclntsh.so -> libclntsh.so.12.1 libclntshcore.so.12.1 libipc1.so libmql1.so libnnz12.so libocci.so.12.1 libociei.so libocijdbc12.so libons.so liboramysql12.so ojdbc6.jar ojdbc7.jar sdk uidrvci xstreams.jar
libclntsh.so.19.1がlibclntsh.so.12.1であれば上手くいくのかなと思いました。
この認識であってますでしょうか?
回答2件
あなたの回答
tips
プレビュー