tnsnames.oraを参照してPHPをOracleに接続する必要になりました
というのもLAC構成ではサーバーそれぞれにはIPがあるけど、それの中央サーバーみたいなのは存在しないそうで・・・
こういう接続の方法をOracle Netというらしいです(あってるのか?)
前提条件としてPHPがあるwebサーバーにOracleはインストールされていません
PHPでOracleを使う為に必要な5つのこと | のぶろぐでやったとおりにOracle InstantClientはインストールされています
元々の接続の方法
~~~
$conn = oci_connect(‘hr’, ‘welcome’, ‘localhost/ORCL’);
~~~
方法1
tnsnames.oraのパスを変更する
~~~
cp /usr/lib/oracle/11.2/client/network/admin/tnsnames.ora /etc
~~~
PHPにORACLE_HOMEがわからないのか、何なのかわかりませんがetc以下に置くと認識できる模様
ただ強引すぎる気がします(´Д`;)ヾ
ちなみにphpinfo()を見る限りではちゃんとOracle InstantClientで設定したパスが入っています
方法2
PHPにtnsnames.oraの位置を強引に教えてあげる
~~~
putenv(“TNS_ADMIN=/usr/lib/oracle/11.2/client/network/admin”);
$conn = oci_connect(‘hr’, ‘welcome’, ‘ORCL’);
~~~
oci_connect()をする前にputenvでTNS_ADMINを設定してあげるとtnsnames.oraの位置が明示的に変えられるらしい
apacheに書いてみたけど効かなかったのでここはPHPでやらないとダメらしい
と言った感じで半日戦った記録なのでしたヽ(`Д´)ノ
コメント