サーバーでCGIを実行するには、どのようなソフトが必要なんですか?
あるページでダウンロードしたCGIを実行できないので・・・・

このQ&Aに関連する最新のQ&A

A 回答 (6件)

サーバーソフトは入っているのでしょうか?


一応一番簡単にインストールや環境を整えられるパターンを書いておきます。

An HTTP+ActivePerl の場合が一番簡単でしょう。
(他のPHPなどなどを動かすのもたった一行追加だけなので、手間いらずで簡単です)

An HTTPソフト はここから入手してください。
http://www.st.rim.or.jp/~nakata/

ActivePerlソフト はここから入手してください。
http://www.activestate.com/Products/ActivePerl/d …
下のほうにある、APi522e.exe
の方が安定していて良いかもしれません。

ActivePerlはスキなディレクトリにインストールしてください。Apacheなどをつかってしまうと、インストールディレクトリを工夫しなければならないなどの『憂き目』にあいますが、An HTTPDにはそんな制限はありません。

An HTTPDをスキなディレクトリに解凍してください。C:\HTTPDがよろしいかと思います。C:\HTTPD\HTTPD.exe となるように解凍してください。
(解凍するだけでインストールは不要です)

HTTPD.exeを起動します。なんか現れたと思いきやすぐに消えてしまったと思いますが、右下の方に、黄色いアイコンがありますので、これをクリックします。

メニューの「オプション-一般」を選択すると、いっぱい項目が出てきます。
「ドキュメントルート」というところが「2つ」ありますが、両方とも、C:\HOMEPAGEなどとしてしまいましょう。
C:\HOMEPAGE\index.html には、適当なindex.htmlファイルを放りこんでおいた方が良いかもしれません。
もし、ご自分でHPなどを作成なさっていて、ローカル上に、特定の作成用ディレクトリなどがあるのでしたら、C:\HOMEPAGE のかわりにそのディレクトリを指定しておいたほうが良いでしょう。
設定が終わったら、OKボタンを押します。

ここで、コンピューターを一度再起動してください。

はい、インストールは全て終了しました。CGIを動かしてみましょう。
まずは、もう一度、HTTPD.exe を起動します。これで、WWWサーバーが動いている状態です(ローカルで、http://が使える状態)
IE(かNN)を起動して、「http://localhost」と入力します。
ほら!! さきほど入れた、index.htmlが出てきたはずです。
あとは、インターネットと同じ要領で.cgiを指定すれば良いだけです。

例えば、C:\HOMEPAGE\ABC\hello.cgi というcgiが実行したければ、
http://localhost/abc/hello.cgi と入れれば実行されます。

CGIを使うのであれば、このようなCGIの動作確認環境は必須です。
では、頑張ってください!!
    • good
    • 0

OSが記入してありませんが、


WINDOWSで走らす場合MEと2000はアクティブパール不可です。LINUXの場合はOKです。
    • good
    • 0

こんにちは。


ウチのローカルサーバーも『An HTTP+ActivePerl』です。
参考URLの『自宅マシンWWWサーバ化計画』を参照させて頂いて、環境を整えることが出来ました。
よろしかったらsuno-manさんもご覧になられてみてください♪

参考URL:http://www.kent-web.com/
    • good
    • 0

>>サーバーではなく自宅のパソコン(自宅サーバー)で実行する方法を知りたいのです。


こんなのいかがですか?↓

ActivePerl Perlインタープリター for Windows
http://www.forest.impress.co.jp/library/activepe …

CGIがPerlなら、これさえあればWindowsのローカル環境で走らせて動作確認できます。

Rubyなら開発/実行環境をそのままインストールしてしまった方が話が早いでしょうね。

ruby Win32版実行形式(cygwin) for Win95/NT
http://www.vector.co.jp/soft/win95/prog/se063778 …
    • good
    • 0

CGIはどこかCGIが使えるサーバにアップしなきゃ使えません。


で、ソフトはこちらが用意するのは編集用のテキストエディタ、アップするためのFTPソフトぐらいでしょうか。

何にしても一度、基礎から勉強された方がいいと思います。
今のままでしたら、分からないままアップしてサーバを停止させたりするかも知れません・・・。
CGIは便利だけど失敗すると危険な物です。

この回答への補足

すみません!!
説明不足でした。
サーバーではなく自宅のパソコン(自宅サーバー)で実行する方法
を知りたいのです。

補足日時:2001/03/17 18:47
    • good
    • 0

たぶん、サーバのOSと、CGIを記述している


言語(たぶんperlでしょう)についての情報が
必要になると思います。
補足情報を書いておくとよいと思いますよ。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aと関連する良く見られている質問

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

あるサーバーで動作しているcgiスクリプトから、別のサーバーに置いてあるcgiスクリプトを実行させる方法はあるでしょうか?

require 'http://…/…/test.cgi';

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

Aベストアンサー

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

自分で作ってもいいし、CPANのHTTP::Requestを使っても
いいでしょう。

QサーバーでCGIを実行すると500Errorが発生します

CGI初心者です。
マニュアル類、過去の質問に目を通しましたがそれでも解決
しない問題に直面した為、質問させて頂きます。

CGIをサーバー(ロリポップ)にアップロードさせて
実行したところ、500Errorが発生します。

■CGIの内容
検索フォームに入力されたキーワードをキーにして
Amazonのデータを取得し、HTMLに表示させるというものです。
自作のCGIです。

■ファイル構成
index.html (属性:604)
ItemSearcher.cgi(属性:700)
AMAZON_REST.pm (属性:700)

CGIの一行目は下記のとおりで、ロリポップ指定の記述法に従っております。
#!/usr/bin/perl

・CGIはローカルの環境では問題なく動作します。
・転送モードはASCIIでアップロードしました。

プログラムがバグっているわけでもなく、
環境設定もロリポップの指示のとおりに行いましたが
動作できなくて途方にくれております。

他にもチェックすべき箇所がございましたら
ご指摘をよろしくお願いいたします。

CGI初心者です。
マニュアル類、過去の質問に目を通しましたがそれでも解決
しない問題に直面した為、質問させて頂きます。

CGIをサーバー(ロリポップ)にアップロードさせて
実行したところ、500Errorが発生します。

■CGIの内容
検索フォームに入力されたキーワードをキーにして
Amazonのデータを取得し、HTMLに表示させるというものです。
自作のCGIです。

■ファイル構成
index.html (属性:604)
ItemSearcher.cgi(属性:700)
AMAZON_REST.pm (属性:700)

CGIの一行目は下記のとおりで、...続きを読む

Aベストアンサー

AMAZON_REST.pm以外にrequire(もしくはinclude)しているモジュールはありませんか?CGI本体だけでなくAMAZON_REST.pmが要求しているモジュールにも注意してください。

(蛇足)
モジュールのパーミッションは600でいいと思います(700でも動きますけど)。

QホームページからCGIプログラムの実行

自宅で、linux+apache2の環境です。

apacheで
HTML本体のルートディレクトリは:
 DocumentRoot->/home/www/

CGI実行可能のディレクトリは:
ScriptAlias /cgi-bin/ -> /home/CGI/

と設定されています。
 質問は、/home/www/index.htmlに /home/CGI/test.cgiを実行したいとき、どう宣言すれば
よいでしょうか。
 できれば、LAN外も、LAN中でも使えるために、相対バスを使いたいです。

Aベストアンサー

細かいところは省略。

<form action="../CGI/test.cgi">
</form>

./home/www から1つ登ると ./home ですね。その下にある、CGIフォルダなので、1つ登ったフォルダの下にあるCGIフォルダって言うことで、../CGI ですね。
ってことは、

../CGI/test.cgi

ですね。

QCGIから別サーバーの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で実行するというようなことができるのかがわかりません。

初心者的な質問で申し訳ありませんが、よろしくお願いします。

Aベストアンサー

 無理やり実装することは可能ですけど、面倒ですよ?
 自分でソケットを開いてHTTPで通信するんです。

Qさくらのサーバーでwww配下のcgiを使用し、サーバールートのファイル

さくらのサーバーでwww配下のcgiを使用し、サーバールートのファイルを表示

ルートディレクトリ(wwwフォルダと同じ階層)にテキストファイルを設置し、
www配下に設置したcgiをブラウジングした際に、テキストファイルの内容を表示する仕組みを作ろうとしています。

別のサーバーでは動いているようですが、
なぜかさくらでは変数の値が表示されません。(<hr>は表示されています)

ちなみにcgiのファイルとフォルダのパーミッションは755に設定しています。

わかる方いらっしゃいますでしょうか?
よろしくお願いします。


cgiのソースは下記になります。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
#! /usr/bin/perl

open (FILE, "</home/txt1.txt");
$lst = <FILE>;
close(FILE);

open (FILE, "</home/txt2.csv");
$dat = <FILE>;
close(FILE);

print <<END;
Content-Type: text/html; charset=Shift_JIS

<html>
<head>
<title>testcgi</title>
</head>
<body>
$lst
<hr>
$dat
</body>
</html>
END
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

さくらのサーバーでwww配下のcgiを使用し、サーバールートのファイルを表示

ルートディレクトリ(wwwフォルダと同じ階層)にテキストファイルを設置し、
www配下に設置したcgiをブラウジングした際に、テキストファイルの内容を表示する仕組みを作ろうとしています。

別のサーバーでは動いているようですが、
なぜかさくらでは変数の値が表示されません。(<hr>は表示されています)

ちなみにcgiのファイルとフォルダのパーミッションは755に設定しています。

わかる方いらっしゃいますでしょうか?
よろしくお願...続きを読む

Aベストアンサー

>恐れ入りますが、openの成功・失敗の記述方法を教えて頂けないでしょうか?
open(FILE,"filename") || die "I can't open this file";
die 演算子は perl の初歩の初歩。

>パスはあっていました。
No.2さんの言う通りだと思うんですが、もう面倒くせぇから相対パスで指定すれば良いんじゃね?


このカテゴリの人気Q&Aランキング

おすすめ情報