• 締切済み

LWP::Simpleでのgetについて

つい先日ローカルにサーバ環境をインストールし、 色々とプログラムを試しているのですが、 タイトルに記述したLWP::Simpleのgetを使用すると500エラーとなってしまいます 実行内容は下記のような単純なものです use LWP::Simple; $url = "http://localhost/test.cgi";#自動リンク防止に「:」を全角にしてます $html = get($url); print "Content-Type: text/html\n\n"; print $html; ・test.cgi単体では動作しています(単純に文字を出力するのみ) ・$url をローカルでなく外部URL(例 yahoo等)にしてもエラーとなりました ・getを行わなず $html = "a";のように任意文字列にした場合は出力されます ・perl/lib/LWP/ には Simple.pm が入っています ・use 行をevalで囲み $@ を見てみましたがエラーは入っていませんでした ・セキュリティソフトがブロックしている可能性も考え、切ってみましたが駄目でした ・レンタルサーバー上で実行した場合は成功しました($urlを外部URLにて) こちらはApacheやOS側で他に何か設定等が必要なのでしょうか それとも不足しているものがあるのか・・・手詰まり状態です 些細なことで結構ですので、助言いただけると助かります 以上、よろしくお願いします ----------------------------------- Apache/2.2.4 Perl/v5.8.8 WinXP/HE サーバ環境はXAMPP及びXAMPP Add-Onsで一括インストール

みんなの回答

  • maura
  • ベストアンサー率46% (48/104)
回答No.2

$Config{'osvers'}が 5になってるのが問題みたいみたいですが 調べてましたが意味がわかりません。 perl/lib/Error.pm 11行目~13行目 "$Config{'archname'}-$Config{'osvers'}" eq "MSWin32-x86-multi-thread-4.0" or die "Errno architecture (MSWin32-x86-multi-thread-4.0) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})"; -- をコメントアウトしてみては?

suzuki-_-
質問者

お礼

まだ知識が浅いので解決に至りそうもなく、 Windowsのシステム上でのちょっとした不具合も出てしまったので、 今回は諦めようと思っています(全てアンインストール予定) ご協力ありがとうございました

suzuki-_-
質問者

補足

ありがとうございます コマンドプロントで perl -V と実行したところ、 仰るように私の環境は osvers=5.0 と表示されました Error.pmがなかったのでErrno.pmのことと解釈し、そちらにある 11~13行目をコメントアウトしてみましたが、実行されずエラーとなりました。。。 削除しても相変わらず同じ構文が出力されます また、ちょっと気になったところでは、 mauraさんの記述では各所が 4.0 となっていますが、 私のほうでは下記のように 5.0 との表記でした // "$Config{'archname'}-$Config{'osvers'}" eq "MSWin32-x86-multi-thread-5.0" or die "Errno architecture (MSWin32-x86-multi-thread-5.0) does not match executable architecture ($Config{'archname'}-$Config{'osvers'})"; // 伺った内容を元に色々と試行錯誤してみたいと思います

  • maura
  • ベストアンサー率46% (48/104)
回答No.1

ソースは、間違い内容ですが、500エラーが出るのが なんなのか。。 1行 use CGI::Carp qw(fatalsToBrowser); を加えて実行してみると如何でしょうか? ヒントとなるエラーが見えると思います。 use LWP::Simple; use CGI::Carp qw(fatalsToBrowser); $url = "http://localhost/test.cgi";#自動リンク防止に「:」を全角にしてます $html = get($url); print "Content-Type: text/html\n\n"; print $html; ローカルにOracle 10g は、インストールしていませんよね? もししているならば、 use ENV qw(PERL5LIB); $PERL5LIB = ''; を 他のuse の前に書いていたほうがいいです。

suzuki-_-
質問者

補足

ご返答ありがとうございます ご返答頂いた内容を記述し実行してみたところ、 下記のようなエラー内容が出力がされました // Software error: Errno architecture (MSWin32-x86-multi-thread-4.0) does not match executable architecture (MSWin32-x86-multi-thread-5.0) at C:/Program Files/xampp/perl/lib/CGI/Carp.pm line 319. Compilation failed in require at C:/Program Files/xampp/perl/lib/IO/Socket.pm line 17. BEGIN failed--compilation aborted at C:/Program Files/xampp/perl/lib/IO/Socket.pm line 17. For help, please send mail to the webmaster (admin@localhost), giving this error message and the time and date of the error. Software error: [Tue Mar 6 18:33:10 2007] cgi.cgi: Errno architecture (MSWin32-x86-multi-thread-4.0) does not match executable architecture (MSWin32-x86-multi-thread-5.0) at C:/Program Files/xampp/perl/lib/CGI/Carp.pm line 319. [Tue Mar 6 18:33:10 2007] cgi.cgi: Compilation failed in require at C:/Program Files/xampp/perl/lib/IO/Socket.pm line 17. [Tue Mar 6 18:33:10 2007] cgi.cgi: BEGIN failed--compilation aborted at C:/Program Files/xampp/perl/lib/IO/Socket.pm line 17. Compilation failed in require at C:/Program Files/xampp/perl/lib/LWP/Simple.pm line 160. For help, please send mail to the webmaster (admin@localhost), giving this error message and the time and date of the error. // ・C:/Program Files/xampp がApacheを含め全てのディレクトリになります ・cgi.cgi が実行したファイルです 上記内容で参考になるでしょうか Oracleのほうはインストールしていません

関連するQ&A