ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Linuxコミュのhttp://xx.xx/cgi-bin/x.prgでCGIプログラムを実行したい。

  • mixiチェック
  • このエントリーをはてなブックマークに追加
トピックを作りましたが、よかったでしょうか。

たぶん、はじめまして、です。
LinuxもFedoraも初心者です。
いま、fedora11でWebサーバとCGIプログラムの動作テストをしています。
httpサーパは、Apatcheです。

こういうPerlのプログラムを用意しました。
/var/www/cgi-bin/hello.cgi
--- hello.cgi ---
#!/usr/bin/perl
print "contest-type: text/html\r\n";
print "\r\n";
print "<html>\r\n";
print "Hello, everybody!<p>\r\n";
print "</html>\r\n";

LAN接続した他のPCのブラウザから、
http://192.168.x.x/cgi-bin/hello.cgi
を実行すると、OKです。

これは、PerlというCGI実行ソフトが、hello.cgiというプログラムを実行しているんですね。

実は、ARAGO FOR INTERNET(argoi.exe)というwindows版で愛用していたCGI実行ソフトがあります。

今回はLinux版です。
argoi.exeでは、cgiプログラムの拡張子は、.prgにします。

/var/www/cgi-bin/内に、つぎのように2つのファイルを入れて、
/var/www/cgi-bin/hello.prg
/var/www/cgi-bin/argoi.exe


ブラウザから、
http://192.168.x.x/cgi-bin/argoi.exe?hello.prg
を実行すると、OKです。

ですが、perlと同様に、
http://192.168.x.x/cgi-bin/hello.prg
という指定で実行したいです。

argoi.exeの場合には、ファイルの先頭行に、
--- hello.prg ---
!#/xxxxx/argoi.exe hello.prg
のように記述しておくと、そうできるとマニュアルに説明があります。
別のユーザに聞いてみると、これで実行できているそうです。

しかし、私はそれができません。
http://192.168.x.x/cgi-bin/hello.prg
と指定すると、argoi.exeが動作した形跡がありません。
(argoi.exeが実行エラーのときは、エラー表示やtempファイルが作成されるので分かります。)

どうも、ブラウザから /.prg という拡張子が指定された場合、Apatcheが実行を阻止しているように感じます。
httpd.conf では、このように設定しています。

---httpd.conf設定---
AddHandler cgi-script .cgi .prg

ほかに、どんなところを設定すればよいのでしょうか。

コメント(3)

シェバングって、プログラムのある場所を示す役割があったような。
argoi.exeのpathはシェバングと一致していますか?もし違うならばpathを通すか同じにしてみてはとうでしょう。
httpd.confの記述に問題はないように思えます。
まずコマンドライン上で
./hello.prg
が動作するか
とりわささん、sock/vuelaさん、コメントありがとうございました。

分かりました。
シェバングという用語も、コマンドライン上で"./hello.prg"を実行できることも知らなかったです。
"./aragoi.exe hello.prg" という形ではテストしてましたが。

シェバングの行を "!#" → "#!" に変更したらOKでした。
こちらのマニュアルの誤記でしょうか。
ARAGOのユーザ会でも指摘されてなかったのに。

一度はあきらめてたんですが、助かりました。
ありがとうございました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Linux 更新情報

Linuxのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。