• ベストアンサー

別サーバーのcgiを実行させる

あるサーバーで動作しているcgiスクリプトから、別のサーバーに置いてあるcgiスクリプトを実行させる方法はあるでしょうか? require 'http://…/…/test.cgi'; としても実行することは出来ませんでした。 googleで検索したところrequireではURL指定ができないと解説しているサイトがありましたので、requireを使わずに、(CGI.pm等の標準モジュール(?))なども使わないで他のサーバーに設置したcgiを動作させる方法があれば、教えていただきたいです。

  • arcsin
  • お礼率46% (194/417)
  • CGI
  • 回答数1
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • angband
  • ベストアンサー率51% (86/168)
回答No.1

ちょっと面倒ですが、ソケットで外部のホストのポート 80番に繋いで、httpプロトコルでCGIのURLをリクエスト すればよいと思います。  そしてソケットから結果を読み出して、ヘッダを削除 すれば出力だけを得ることも可能です。 自分で作ってもいいし、CPANのHTTP::Requestを使っても いいでしょう。

関連するQ&A

  • 自宅LinuxサーバでのCGIの設置方法について

    ご指導お願いします。 FedoreCore4を使い自宅サーバ開設に挑んでいます。 WEBサーバ、FTPサーバ、メールサーバと設置しました。そして現在CGIを設置しようと検討しています。 FTPサーバを使いクライアントからCGIをアップしパーミッションを解説書通りにしたのですが実行されません。 そこでお聞きしたいのですが、 レンタルサーバのスペースように、フォルダごとアップし各実行権をあわせるのですはダメなのでしょうか? ちなみに、/cgi-bin に簡単なテストCGIのみをアップした場合には動作しています。 しかし今回のようにフォルダの中にCGI本体、ログ、画像 ...と入ったものは動作しません。 ***エラー表示******** 500 Server Error ***************** どうぞ宜しくお願いします。

  • CGIから別サーバーのCGIの呼び出し

    以下の二つのサーバーでCGIを動作させようと考えています。  サーバーA:ユーザーからアクセスできる。  サーバーB:サーバーAからアクセスでき、ユーザーからはアクセスできない。 この環境で (1)サーバーAでリクエストを受け、簡単な処理をする。 (2)サーバーA上のCGIからサーバーB上のCGIを呼び出す。 (3)サーバーB上で処理(etc. メールの送信)を行い、処理結果をサーバーAのCGIに返す。 (4)サーバーA上で簡単な処理を行い、結果をユーザーに表示する というような処理を考えています。 perlでは、このような処理を実装することは可能でしょうか? サーバーAからサーバーBにあるスクリプトファイルを読み込んで、サーバーAで実行するということはできそうなのですが、サーバーB上のCGIはサーバーBで実行するというようなことができるのかがわかりません。 初心者的な質問で申し訳ありませんが、よろしくお願いします。

    • ベストアンサー
    • CGI
  • www.URL 付のcgi を動かす

    URL付のcgi を動かすにはどうしたらいいのでしょう。 つまり2つの独立したサーバーがあり、お互いに 呼び出して実行したい場合、同一サーバーなら通常、 $test= 'home/public_html/cgi/test.cgi'; open (test); print while <test>; ちょっとまどろっこしいんですが、このように実行 できるかと思うんです。 しかし、別のサーバーにあるとこうはかけません。 したがって1行目を $test= 'http://test.com/cgi/test.cgi'; ・・・と書きたいところなのですが、どうもうまく 実行されないようです。 何かいい解決策があれば教えてください。

    • ベストアンサー
    • Perl
  • ApacheでCGIが実行されない:FedoraCore4

    質問が立続きになってしまい申し訳ございません。 私はFedoraCore4を使い自宅サーバ開設に挑んでいます。 なかなか上手くいかずに苦戦中です。。。 さて問題の質問は「Apache2.0でCGIを使いたい」のですが上手くいきません。 このあたりについてご指導をお願いします。 ■現在までの設定■ ApacheがドキュメントルートでCGIを利用できるように設定。  > conf/httpd.conf  の、  > #Add Handler cgi-script.cgi  部分の、  > #  を取り除きました。また、  > <Directory "/var/www/html">  のOptionの部分に、  > ExecCGI  の文字を追加しました。 この上記設定において「Movable Type」を設置し 実際に動作確認が出来ました。 「Movable Type」  > /var/www/html  に、本体とLogを設置しています。 以上は質問とはまったく別件になってしまいましたが、 一般の配布されているCGIスクリプトを設置してみましたが まったく動作しません。 いちおう設置場所につきましては、  > /var/www/html と、  > /var/www/cgi-bin で試しました。実際には > /var/www/cgi-bin に設置するんですよね~?(不安 一般の配布CGIを設置実行するに当たり上記記載の"httpd.conf"の 設定以外にどこか設定する部分ってあるのでしょうか?? どうぞわかり易いご指導をお願いします。

  • HTML上(javascript)からCGIを実行する方法

    javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI) を実行する方法を探しています。 下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に 『test』と表示するのみ)を表示したいと考えています。 利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、 cgiが使用できるサーバ上のcgi結果を取得したいものです。 通常のcgiのように、1ページでcgi結果を表示するものではなく、 HTMLファイルの一部にcgi処理結果を表示させたいものです。 そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの 実行結果を表示する事は出来ないのでしょうか。 よろしくお願い致します。 ※下例のプログラムではcgi結果は表示されませんでした・・・。 ---<index.htm>---------------------------------------- <HTML> <BODY> <SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT> </BODY> </HTML> ---<test.cgi>---------------------------------------- #!/usr/bin/perl print "test"

  • AN HTTPDのバーチャルホストでCGIを実行

    AN HTTPDのバーチャルホストでCGIを実行する方法を教えて下さい。 htmlの設置場所 ← (1)http://html.com/■■■■■■ が参照URLアドレス cgiの設置場所 ← (2)http://cgi.com/■■■■■■ が参照URLアドレス htmlからcgiを実行する構成ですがテスト環境を構築するにはどのようにすれば宜しいでしょうか? バーチャルホストの設定とC:\WINDOWS\system32\drivers\etc\hostsファイルにプライベートIPアドレスとドメインの関連付けは完了しております。 htmlの設置場所のhtmlはきちんと表示されます。 また、cgiの設置場所に試しにhtmlを設置してみてもきちんと表示されます。 htmlからcgiの呼ぶパスが間違っているのでしょうか? <form action="http://cgi.com/test.cgi" method="post"> どうぞ宜しくお願い致します。

    • ベストアンサー
    • CGI
  • Apache WebサーバでCGIが実行できない

    Apache WebサーバでCGIを実行すると Premature end of script headers というエラーになります。原因が判りません。何方かご教示をお願いします。

  • CGIの外部呼出しについて

    こんにちは。 私は今自分のサイトに日記を設置したくて、nicky.cgiというCGIをダウンロードしました。 現在使っているサーバーはCGIが利用禁止ですので、CGIの外部参照可能な別サーバーにnicky.cgiをアップロードし、それをimgタグで呼び出してみたのですが… なぜか上手くいきません。CGIの方はちゃんと動作していますし、タグの方も特別おかしいところはありません。ですが、呼び出したページを見てみると画像が読み込めなかったときと同じような×マークが出るだけで、CGIは呼び出せませんでした。 これは何故でしょうか?ちなみにローカルで見てもサーバーにアップしても呼び出せてません。 また他に呼び出す方法はあるでしょうか?一応javascriptを使う方法もやってみましたができませんでした。 やってみてできなかったタグは <IMG SRC="http://○○○○.cgi" BORDER="0">というのと、 <script src="http://○○○○.cgi" language="javascript"></script> のふたつです。 CGIは上にも書きましたが別サーバにアップしたもののURLを指定していますが、もしかしてここが違うのでしょうか…。 タグなどのおかしいところや他の呼び出す方法があれば教えてくださると助かります。

    • 締切済み
    • CGI
  • サーバーでCGIを動作させるには?

    自宅サーバーでCGIを動作させたいのですが、うまく動作しません。 ○サーバー環境 OS:Windows Server 2003 Web Edition SP1 CPU:Intel Xeon 2.8GHz メモリ:1GB RAM ○現在の状況 htmlは、問題なく動作してます。 cgiを実行すると、エラー404となります。 ○CGI動作にあたって行った作業 (1)ASPの実行を許可しました (2)Perl構成にあたり、ActiveState社のActivePerl-5.8.820-MSWin32-x86-274739.msiをダウンロードし、Dフォルダにインストールしました。 (3)IISマネージャで、「Webサービス拡張」→「Perl CGI Extension」を許可しました。 (4)IISマネージャで、「Webサービス拡張」→「すべての不明なCGI拡張」を許可しました。 (5)実行アクセス権を設定するために、実行するCGIを格納するディレクトリの「実行アクセス許可」を「スクリプトおよび実行可能なファイル」としました。 (6)CGI拡張子と実行可能ファイルを関連付けるために、実行するCGIを格納するディレクトリの「アプリケーションの設定」→「構成」→「アプリケーションの拡張子」→「追加」で、 実行可能ファイル「D\Perl\bin\perl.exe"%s"%s」 拡張子「.cgi」としました。 ○CGIが動作するか確認するために、サンプルCGIを作成し、上記設定を行ったディレクトリ以下に配置しました。 ○結果 クライアントで、http://サーバー名/ディレクトリ名/ファイル名 と入力すると、エラー404 ページが見つかりません。と出ます。 間違った操作や、考えられる間違い箇所がありましたら、指摘ください。

  • ユーザーディレクトリでCGIの実行ができない。

    環境 FedoraCore2 Apache で、ルートディレクトリでCGIの実行が可能であるのに、ユーザーディレクトリに設置したCGIは500エラーを起こして実行できません。 ブラウザを通してアクセスすると500が出ますが、ユーザーでコマンドラインからCGIを実行すると正常に結果を返します。 なお、コマンドラインでCGIを実行した場合にはログは残りませんが、ブラウザでアクセスした場合、以下のログファイルにログが記録されていました。 error_log [Tue May 16 08:49:21 2006] [error] [client 192.168.11.2] Premature end of script headers: test.cgi suexec.log [2006-05-16 08:49:21]: uid: (503/test) gid: (503/503) cmd: test.cgi [2006-05-16 08:49:21]: cannot get docroot information (/home/test) ちなみに、ネットで見つけた#!/usr/bin/perlの後ろに--を付加する方法では同様の500エラーが出てしまいました。 どなたか、原因及び解決法をご存じの方、ご教授いただければ幸いです。

専門家に質問してみよう