- 締切済み
PEARでOracleへ接続時にエラー
Linuxサーバ環境でpearを用いてPHPからOracleに接続したいのですがうまくいきません。 <?php require_once("DB.php"); $dsn = "oci8://SCOTT:tiger@DBサーバIP/DB名"; $db = DB::connect($dsn); if (DB::isError($db)) { echo "接続エラー"; } else { echo "接続成功"; } ?> というPHPにアクセスすると、接続エラーとしか表示されません。 接続先のDBに該当のユーザは存在しており、このWebサーバからSQLplusで sqlplus scott/tiger@//DBサーバIP:1521/DB名 で接続はできております。 OS:CentOS 5.2 (VMWare上で稼働) カーネル:2.6.18-92.el5 Apache:2.2.9 PHP:5.2.6 PHP-PEAR:1.4.9 接続先Oracle:9.2.0.1.0 (イントラ同セグメント内で稼働) 尚、同様の方法でWebサーバ内で稼働しているMysqlへは問題なく接続できております。 以上、心当たりのある方がいらっしゃいましたらお願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- mookun2007
- ベストアンサー率59% (28/47)
回答No.2
- mookun2007
- ベストアンサー率59% (28/47)
回答No.1
補足
回答ありがとうございます。 (1)PHPのコンパイルについて --enable-sigchildを追加してコンパイル&インストールし直しました。 (2)Oracleインスタントクライアントについて >> --with-oci8=instantclient,/usr/local/lib/instantclient_10_2 \ >これですが、この下にlibディレクトリはありませんか? >libディレクトリまでのパスを指定すると思うのですが。 libディレクトリはありませんでした。 導入したOracleインスタントクライアントはbasicとsdk(あとsqlplus)で、いずれも上記ディレクトリへ解凍しましたが、libディレクトリは入っていない模様です。 (3)apacheの環境変数について 何気なく参考サイトを見ながら設定してたみたいです(汗) 【設定ファイル】 /usr/local/apache2/bin/envvars 【設定内容】 LD_LIBRARY_PATH="/usr/local/apache2/lib:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH export LD_LIBRARY_PATH=/usr/local/lib/instantclient_10_2:$LD_LIBRARY_PATH NLS_LANG=Japanese_Japan.AL32UTF8 export NLS_LANG でダメで、 TNS_ADMIN=/usr/local/lib/instantclient_10_2 をここに追記して、 /usr/local/lib/instantclient_10_2/tnsnames.ora を作成して、 TNS名 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = DBサーバIP)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = DBサーバ上のサービス名) ) ) を作成してみましたが、結果変わらずです。 mookun2007さんは普通のOracleクライアント(インスタントでない)をお使いでしたでしょうか? またTNSの設定状況についても自信が無いので、参考までにmookun2007さんの設定状況を教えて頂く事は可能でしょうか?