![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e6f04cf)
本日、DBI->CONNECTで返ってこないと質問をしたものです。
色々と調べているうちに、もしかしたらDBアクセスはおわり、その後のCGIが表示できなくなっているかもしれないと思うようになりました。
ORCLE9iがあるあとで、PERL,Apacheをインストールしました。
DBアクセスをしない状況ですと、CGIのプログラムは何の問題も無く、動きます。
ただ、DBアクセスしようとするとエラーもでない状況で、画面に何も出ません。
ApacheのORACLEに関する環境設定が必要なのでしょうか?
環境は、Windows XP
Active Perl 5.8.7.813
DBI 1.602 ,DBD-Oracle 1.17
Apache 2.0.54
どなたか、わかる方いらっしゃいますでしょうか?
この件で2日悩んでおります。
宜しくお願いします。
No.4ベストアンサー
- 回答日時:
> 直接ORACLEアクセスはあきらめて、ACCESS経由にしました。
> 自分のパソコンにmdbを作成した場合には、成功しました。
ODBC 経由にするということですか?(Windows には明るくないので,違う接続方法があるのだとしたらごめんなさい)
Oracle のODBCドライバをインストールし、コントロールパネルからODBCの接続設定をし、その際にインストールしたドライバを選択。
Oracle のサービスIDやらユーザ名やらを入力して完了。
上手くいっていれば ACCESS から該当のデータベースが見れるはず。
以降は、データソース名(DSN)をつかってPerlから操作できるようになります。
ODBCの接続設定で利用するパラメータは、DBI,DBDでの接続パラメータと変りないです。
ベンダーごとにことなる処理をラッピングして、共通的な処理にまとめ上げるのがODBCの役割でもあるので。
ですから、やっぱりうまくいかないってケースもありえます。
#Oracleのサービス名の解決が面倒なんで、よくハマるみたいです。
#基本的には、ホスト名,ポート名,SID,ユーザ名,パスワードなんですけど、デフォルトの接続ポートが 1521 なので、他の質問で 8080 とされていたことが少し気になります。
違いがあるとしたら、使っているドライバの差異じゃないかなと思います。
DBDの中身についてはよく知らないのですが、pure に Perl だけで作られているんでしょうかね?何かしら Oracle のライブラリ DLL とか使ってないんだろうか?
実はOracleクライアントが必要だったってオチもあるんじゃないかと。
これって、配布するプログラムなんですか?配布先で動く環境を整えるのが面倒そうですね。
No.5
- 回答日時:
> 自分のパソコンにmdbを作成した場合には、成功しました。
> ただ、ファイルサーバー上だと、コネクトができませんでした。
自分のPCにスクリプトを置いたら、同じくDBIでコネクトできるのでしょうか?
となると、Oracleサーバ側でアクセス元を制限してるのかなぁ。
Firewallと、Oracleユーザ設定の両方を確認して下さい。
No.3
- 回答日時:
ブラウザ上で動作確認していませんか?
CGIとして動かすと、(ヘッダを出力してない等)CGI側の問題なのか、
Oracleへの接続の問題なのか、分かりにくいという事です。
Perlが返してくれるエラーの内容も確認できませんので、
問題がどちらか明確に切り分けるためにも
作成したスクリプトをWindowsのコマンドプロンプト上で実行して下さい。
use CGI::Carp qw(fatalsToBrowser);で、ブラウザ上でもエラー内容が見れたりしますが。
御礼が遅くなり、申し訳ありませんでした。
親切にありがとうございます。
結局、直接ORACLEアクセスはあきらめて、ACCESS経由にしました。
自分のパソコンにmdbを作成した場合には、成功しました。
ただ、ファイルサーバー上だと、コネクトができませんでした。
たぶん、ORACLEの時も同じようにCONNECTができなく、だめだったと思います。
ファイルサーバーの場合に、何かあるのでしょうか?
もし、知っていらっしゃいましたら、教えてください。
宜しくお願いします。
No.2
- 回答日時:
僕自身 Oracle は9i までしか使っていなく、使っていたのもだいぶ前ですし、Perlではなくて java でしたし、Windows ではなくLinuxだったので外している可能性は高いです。
もし、参考になればと思い回答してみます。
Apacheのユーザ権限などで環境変数 ORACLE_HOMEとかNLS_LANGとかORACLE_SIDを httpd.confで設定したいのであれば
SetEnv ORACLE_HOME C:¥~
のように SetEnv で設定が必要かもしれません。
(suexec を使っている場合は、CGIは違うユーザで動作するのでまた違うのかも。その場合はCGI側でENV指定してみてはどうでしょう)
また、Oracle側の設定は終わっているのですか?
Oracleは接続の仕組みが直感的じゃなかったと思うので、なんとか.ora にホストの登録とかしていたような。
(すみません。もうOracle開発環境は手放して久しいので、ファイル名などはわすれてしまいました)
とりあえずOracle client が入っているのであれば、sqlplus で接続確認してみてはどうでしょうか?
Oracleまで届いていて、エラーがあるのであれば ORA-XXXX のエラーが見れると思うので一応確認してみてはどうでしょう。
Windows 環境でよくあるパターンとして、何かしらのセキュリティ関連(ファイアーウォールとか、アンチウイルスソフトとか)が遮断していたとか。
#もう確認済みとは思いますが、プログラム指定するタイプのファイアーウォールソフトを使っていた場合は、sqlplus は許可しても perl の許可を忘れていたりすることもあると思うので。
基本的な事柄ばかりで、あまり参考にならないかもしれませんね。すみません。
御礼が遅くなり、申し訳ありませんでした。
親切にありがとうございます。
結局、直接ORACLEアクセスはあきらめて、ACCESS経由にしました。
自分のパソコンにmdbを作成した場合には、成功しました。
ただ、ファイルサーバー上だと、コネクトができませんでした。
もし、知っていらっしゃいましたら、教えてください。
宜しくお願いします。
No.1
- 回答日時:
前の質問、「Oracle」が「oracle」になってますよ。
・サンプル
my $dbh = DBI->connect("dbi:Oracle:$dbname", $dbuser, $dbpass)
or die "Unale to connect to $dbname: $DBI::errstr\n";
コマンドプロンプトからスクリプト実行すれば、Apacheと切り離せるんじゃないでしょうか。
参考URL:http://perldoc.jp/docs/modules/DBD-Oracle-1.14/O …
kuroizellさん、ありがとうございます。
Oracleに変えてみましたが、結果は同じでした。
コマンドプロンプトからスクリプト実行すれば、Apachetoと切り離せるとは、参考のURLを
見ましたが、私の能力では意味がわかりませんでした。
誠に申し訳ありませんが、教えていただけないでしょうか?
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
- MySQL Mac です。ローカルホストの phpMyAdmin にアクセスできません。 1 2023/06/06 17:14
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- その他(ブラウザ) このページは動作していません HTTP ERROR 401 2 2022/11/28 12:11
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- その他(SNS・コミュニケーションサービス) 【至急】Microsoft teamsログインできないループ・・ 3 2023/05/17 13:17
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CANONプリンターのソフトウェア...
-
無線lan中継器がモデムに繋がら...
-
ワイファイ 監視カメラを買いま...
-
パソコンにこのような表示が出...
-
なんでネットが繋がるの?
-
バッファロー製ルーターのKEYが...
-
「おかけになった電話番号は電...
-
PCでwin7サポート終了後にイ...
-
インターネット接続なしで家庭...
-
pingでLostが30~50%ありますが...
-
スケベ買いとは何ですか? ネッ...
-
ブラウザでネット閲覧できるの...
-
ネットワーク切断を検出するには?
-
Wi-Fiでアプリ履歴ばれる?
-
読めますか:揚収
-
プロバイダー無しでパソコンを...
-
パソコンのWireless LAN adapte...
-
マンションだとアクセス歴が管...
-
インターネットは繋がってるの...
-
なぜ両端ともタイプAのUSBケー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CANONプリンターのソフトウェア...
-
メールを受信しようとすると「I...
-
comodo firewallとsshの設定
-
【至急】カラーミーに詳しい方...
-
perlでDBアクセスする際にapach...
-
IEプラウザの不具合について
-
起動すると、プロキシサーバー...
-
ノート型PCへの外付けHDD...
-
goo.ne.jp/に接続できない。
-
ネットワークカメラの映像が見...
-
フリーメールに登録、ログイン...
-
phpadminがエラーで起動しません。
-
プロキシが勝手に設定されるこ...
-
ワードでURLにハイパーリンクで...
-
https以外に接続できない
-
ノートンインターネットセキュ...
-
ダイアルアップ接続?
-
PROXY規制中って???
-
リモートシステムとは?
-
インターネットへアクセスさせない
おすすめ情報