1

私のプロジェクトの全体的な目標は、別のサーバーにある Oracle データベースに接続し、PHP を使用してクエリを実行し、JavaScript を使用してデータのグラフを作成できるようにすることです。

私のサーバーはCentOSを実行しています

これまでのところ、Web の指示に従い、サーバーと Oracle Insant Client に oci8 をインストールしました。

次に、リモート サーバーにトンネリングするためのシェル スクリプトを作成しました。

次に、データベースへの接続を試行するためのテスト php ファイルを作成しました。

<?php
$conn = oci_connect('name', 'pw', 'servername/databasename');
if(!$conn){
        $e = oci_error();
        trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}

oci_close($conn);

?>

これをブラウザにロードすると、次のエラーが表示されます

警告: oci_connect(): ORA-12541: TNS: 行 3 の /var/www/html/djc/ociConnect.php にリスナーがありません 致命的なエラー: ORA-12541: TNS: /var/www/html/djc にリスナーがありません6 行目の /ociConnect.php

エラーについて調査しましたが、主な問題は lsnrctl start であることがわかっています

機能しません。lsnrctl 関数がありません。また、TNSNAMES.ORA または LISTENER.ORA ファイルもありません。

サーバーで lsnrctl を動作させる方法がわかりません。また、この問題に正しい角度から取り組んでいるのかどうかもわかりません。

また、(rpmからインストールした)sqlplusを起動しようとすると、コマンドが見つかりませんでした。

助言がありますか?正しいマナーで目標を達成しようとしているかどうかさえわからないので、どんな助けも大歓迎です。

4

1 に答える 1

2

以前は次のように接続していました。

//Putenv("NLS_LANG=SPANISH_SPAIN.WE8ISO8859P15");
$db="(DESCRIPTION=
     (ADDRESS_LIST=
       (ADDRESS=(PROTOCOL=TCP)
         (HOST=$GLOBALS[dbhost])(PORT=$GLOBALS[dbport])
       )
     )
       (CONNECT_DATA=(SID=$GLOBALS[dbname]))
 )";
 $conn = OCILogon($GLOBALS['dbuser'],$GLOBALS['dbpasswd'],$db);

$GLOBALS['dbuser']、$GLOBALS['dbpasswd']、$GLOBALS[dbhost]、$GLOBALS[dbname]、$GLOBALS[dbport] を適宜置き換えます。

于 2012-04-18T20:08:03.937 に答える