- - PR -
oracle-instant-clientでのtnsnames.oraの設置場所
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-05-22 14:04
少し質問を変えさせてください。
その後エラーメッセージには2種類あることが分かりました。 oci8://system:system@servername:1521/dbname oci8://system:system@servername:1521 oci8://system:system@dbname oci8://system:system@dbname:1521 でDB::connectをすると ORA-12154: TNS: 指定された接続識別子を解決できませんでした oci8://system:system@servername でDB::connectをすると ORA-12514: TNS: リスナーは接続記述子で要求されたサービスを現在認識していません になりました。 ORA-XXXXというエラーが出るということはPEARからoci関数を呼び出せているので、 エラーメッセージのように接続文字列に問題があるのかなと考えています。 tnsnames.oraでリスナーの設定をしていないのですが、 oracle_instant_clientの場合は /usr/lib/oracle/10.1.0.4/client/lib/ にtnsnames.oraを置くだけでよいのでしょうか?
[ メッセージ編集済み 編集者: koara 編集日時 2006-05-25 10:49 ] [ メッセージ編集済み 編集者: koara 編集日時 2006-05-25 10:50 ] [ メッセージ編集済み 編集者: koara 編集日時 2006-05-25 10:52 ] | ||||
|
投稿日時: 2006-05-25 16:39
koaraです。
少し進展しましたので、情報追加させてください。 WEBを調べるとoracle_instant_clientではtnsnames.oraがないなどの情報もありましたが、 DB::connectを実行しているphpがあるディレクトリにsqlnet.logというファイルが落ちており以下のメッセージが残っていました。 ここから推測するとやはりtnsnames.oraを探しているのではないかと思うのですがどうでしょうか? Fatal NI connect error 12514, connecting to: (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=servicename)(CID=(PROGRAM=httpd)(HOST=servername)(USER=nobody)))(ADDRESS=(PROTOCOL=TCP)(HOST=ip)(PORT=1521))) VERSION INFORMATION: TNS for Linux: Version 10.1.0.4.0 - Production TCP/IP NT Protocol Adapter for Linux: Version 10.1.0.4.0 - Production Time: 25-5月 -2006 10:37:39 Tracing not turned on. Tns error struct: ns main err code: 12564 TNS-12564: Message 12564 not found; No message file for product=network, facility=TNS ns secondary err code: 0 nt main err code: 0 nt secondary err code: 0 nt OS err code: 0 nt OS err code: 0 nt OS err code: 0 SERVICE_NAME, HOST, IPはこちらで使用しているサーバーの情報に間違いないのですが、 このように指定した覚えがないのが不思議です。 | ||||
|
投稿日時: 2006-05-30 09:36
koaraです。
一応、自己解決しましたのでご報告させてください。 うまくいかなかった原因は root(スーパーユーザー)のシェルがcshになっており、 export $LD_LIBRARY_PATH=/usr/lib/oracle/10.1.0.4/client/lib/ が無効になっていました。そこで、 setenv LD_LIBRARY_PATH /usr/lib/oracle/10.1.0.4/client/lib/ としました。 oracle_instant_clientのインストールは成功していたので、 php-4.3.2-23.ent.src.rpmをダウンロードしてきて rpmbuild --define 'oracle 1' php-4.3.2-23.ent.src.rpm としてrebuildしました。 次に出来上がった php-4.3.2-23 php-oci8-4.3.2-23 php-pgsql-4.3.2-23 をインストールしました。 最後にApacheを再起動してphpinfo()にて oci8というセクションが出来ていることを確認しました。 |
1