犬ターネット

libclntsh.so.12.1: cannot open shared object file

2019-01-28 php oracle

PHP + Oracle 環境を作った際、cliから php -m を実行するとモジュール一覧に oci8 と PDO_OCI は表示されるのに、apache を起動すると以下エラーが出て oci8 も PDI_OCI も認識されない。

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/oci8.so' - libclntsh.so.12.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 '/usr/lib64/php/modules/pdo_oci.so' - libclntsh.so.12.1: cannot open shared object file: No such file or directory in Unknown on line 0

いろいろやった結果、selinux が悪さをしていた様子。以下を実行して Permissive モードにしたらエラーが消えて認識されるようになった。

setenforce 0

しかし次は ORA-01804 のエラーが出て接続ができない。こっちは Apache の環境変数に ORACLE_HOME 等を設定し apache 再起動することで回避できた。

vim /etc/sysconfig/httpd

export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export NLS_LANG=Japanese_Japan.JA16EUC
OracleでCSVインポート
インフルエンザA型