アプリ版:「スタンプのみでお礼する」機能のリリースについて

つい先日ローカルにサーバ環境をインストールし、
色々とプログラムを試しているのですが、
タイトルに記述した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で一括インストール

A 回答 (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'})";
--
をコメントアウトしてみては?

この回答への補足

ありがとうございます

コマンドプロントで 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'})";
//


伺った内容を元に色々と試行錯誤してみたいと思います

補足日時:2007/03/06 20:01
    • good
    • 0
この回答へのお礼

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

ご協力ありがとうございました

お礼日時:2007/03/06 22:28

ソースは、間違い内容ですが、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 の前に書いていたほうがいいです。

この回答への補足

ご返答ありがとうございます

ご返答頂いた内容を記述し実行してみたところ、
下記のようなエラー内容が出力がされました
//

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のほうはインストールしていません

補足日時:2007/03/06 18:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!