- ベストアンサー
Cで作ったexeファイルをCGIとして動かしたい
以前「自宅のWindows機をサーバー代わりにしてCGIを動かす方法(No.65520参照)」を教えてもらい、Perlで書いたCGIのテストなどに使用しています。 今度はCで作ったexeファイルをCGIとして実行しようとしたのですが、アドレスバーからそのファイルを指定すると、ダウンロードしようとしてしまいます。 (当たり前といえば当たり前なのですが・・・) ムダと思いつつ、拡張子をCGIにしてみたりしたのですが、やっぱりダメでした。 AnHTTPdの設定だとは思うのですが、どこをいじればよいのか分かりません。 どのようにすれば動くのか教えてください。
- leaz024
- お礼率81% (31/38)
- CGI
- 回答数4
- ありがとう数8
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
AnHTTPd って「最新版(1.32fかな?)」ですか? 最新版だったらはじめから、「何も設定せずに」、「バイナリファイル」および「Perlスクリプト」やをCGIとして動かすことが出来るようになっています。 実行ファイルは、拡張子を.cgiと変えて動かします。 (逆に勝手に設定を変えてると、動かなくなっていることがありえます) ひとつだけ気をつけるとすれば、ドキュメントルートの設定は2つありますが、 これは両方とも「自分のローカルのWEBサイト運営ディレクトリ」にせっていしておきましょう。 CGIはそのディレクトリ以下の全てのディレクトリで動きます。 (でもPerlの動作チェックに使っているというわけだから、これはしているはずですね) 私は普段は、AnHTTPdで、C/C++のCGI動かしているので、ルートディレクトリの設定だけで、間違いなく動くことは保証します。 ======================================= 追伸: .exeの拡張子の形式でそのまま動かしたければ、 一般タブの .exe -- self-- のところの 「ex」形式で動かすにチェックを入れます。それだけです。 あと、言うまでもないですが、CGI自体が間違っていたらお手上げです。
その他の回答 (3)
- a-kuma
- ベストアンサー率50% (1122/2211)
オプション設定のダイアログの二番目のタブ「エイリアス」のところで、 そのCGIプログラムが置いてあるパスが、実行パスとして定義されていますか?
お礼
確認したところ、/cgi-binと/scriptsのみが実行パスの設定になっていました。 私が~.exeファイルを置いた場所は、public_htmlの中でしたが、No.3のkokucho81さんの回答で、解決することが出来ました。 ご回答ありがとうございました。
- baha
- ベストアンサー率38% (16/42)
Cで作ったプログラムを呼ぶファイルを作成し、そのファイル名を ~.CGIとして呼んでみてはどうですか? UNIXの場合はそのCGIファイルに実行許可を与えますが、Windowsの場合は 必要ないかな? Windowsでの経験がないので自信がありませんが。
補足
質問にも書きましたが、ファイル名を~.cgiとしても、結局ダウンロードを始めようとしました。
- onosuke
- ベストアンサー率67% (310/456)
CGI実行パス。 拡張子ごとの実行方法。 CGIファイルのアクセス許可。 CGI実行許可。 このあたりを確認してみては?
補足
私もその辺りがキーだと思い、いろいろいじったのですが、結局ダメでした。 どのような設定がよいのでしょうか・・?
関連するQ&A
- CGI timeoutって? IISでのcgi設定
すみません質問させてください。 今、XPでIISをインストールしてCGIが動くようにしてるんですが うまくいきません。 http://localhost/hello.cgi というurlで実行できると思うんですが、 いつまでも読み込んでるだけで、実行されない感じです。 CGI timeoutといわれます。 実行するCGIはHELLOと表示する単純なものです。 また、.cgiファイルは実行プログラムをC:\perl\bin\perl.exeに 指定しています。 IISでは、規定のWEBサイトのプロパティ>ホームディレクトリの 「構成」で.cgiの実行ファイルをC:\perl\bin\perl.exeに指定しています。 とりあえずやるだけやったと思ってるんですが、うまくいかないのはどうしてでしょう。 よろしくお願いします。
- 締切済み
- CGI
- IISでCGIの設定がうまくいきません
すみません質問させてください。 今、XPでIISをインストールしてCGIが動くようにしてるんですが うまくいきません。 http://localhost/hello.cgi というurlで実行できると思うんですが、 いつまでも読み込んでるだけで、実行されない感じです。 実行するCGIはHELLOと表示する単純なものです。 また、.cgiファイルは実行プログラムをC:\perl\bin\perl.exeに 指定しています。 IISでは、規定のWEBサイトのプロパティ>ホームディレクトリの 「構成」で.cgiの実行ファイルをC:\perl\perl.exeに指定しています。 とりあえずやるだけやったと思ってるんですが、うまくいかないのはどうしてでしょう。 よろしくお願いします。
- ベストアンサー
- Windows XP
- APACHEのCGI-BINでC++のEXE実行
APACHEをインストールしてCGI-BINに以下のプログラム #include <stdio.h> int main(){ printf("test"); return 0; } をコンパイルしたEXEファイルを置いてブラウザで参照したところInternal Server Errorでページが表示できません。testと表示したかったのですが・・・どうすればいいでしょうか?
- ベストアンサー
- C・C++・C#
- Apacheでphpとcgiを使いたいのですが
phpは問題なく使えましたが、cgiで問題があります。 今まではサーバーソフトにANHTTPDを使っていたのですが、phpを使う上で問題があったので汎用性のあるApacheに乗り換えました。するとphpはうまく動いた反面、cgiがうまく動作しなくなってしまいました。 ANHTTPDのときは、ローカルホスト以下のフォルダならどこであろうとcgiを含むすべてのファイルが使用できましたが、Apacheでは指定したフォルダ以下にcgiしか置けないみたいでした。そのフォルダ内にhtmlファイルなどを置くとアクセスできません。 この状態で使うとなると、cgiファイルだけその1箇所のフォルダ以下に集め、他のファイルを別のディレクトリに置かなくてはいけませんが、それでは1つのプログラムに必要なファイル類がバラけてしまうのでその方法は使いたくありません。 どうにかして1つのフォルダ以下でcgiとその他のファイルを扱えるように出来ませんでしょうか?また、僕が使っている今の方法では、cgiプログラムの1行目のパスを「C:/Perl/bin/perl」にしなくてはいけませんが、これもWebサーバー上にアップする際に書き換える手間がかかってしまいます。ANHTTPDの時は「/usr/bin/perl」「/usr/local/bin/perl」のような状態でも普通に使えました。この書き換えの手間を省く方法もありましたら情報いただければと思います。 以上です。 よろしくお願いいたします。
- ベストアンサー
- 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が動かないのですが。
自宅マシンWWWサーバ化計画 http://www.kent-web.com/www/anhttpd/www1.html このサイトを参考にしているのですが、 HTMLファイルは開くのですが、 CGIは開けません。 PerlのインストールはC:\perlで、 ホームページ用のフォルダはC:\WWW\homeです。 この中にindex.htmlとhello.cgiを入れて、 127.0.0.1でhtmlファイルは開きますが、 127.0.0.1/hello.cgiでhello.cgiは開けませんでした。 pathが通ってないのでしょうか? よろしくお願いします。
- 締切済み
- ハードウェア・サーバー
- 自前サーバでCGIを~
まずはLAN内だけで掲示板などのCGIを実行できるようにしてみよう、ということでApacheを使ってCGIの設定をしているんですが、ブラウザからCGIファイルを起動してもInternal Server Errorと出てしまいます。よってそれ以前ということで・・・ コマンドラインから「perl test.cgi」のようにCGIファイルを実行してみるとちゃんと動作するんですが、「type -a perl」で検索したフルパスをそのままCGIファイルに「#!/usr/bin/perl」などのように書いても、ファイルがコマンド化されてくれません。でも、perlの実行ファイルは存在していました。 これは、どうすれば解決できるのでしょうか?
- ベストアンサー
- その他(インターネット接続・通信)
- C++とWindowsでCGIです。
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/showtime.html のサンプルソースをコンパイルしてEXEファイルを作成しました。 VisualStudio.NET 2003 WindowsXP Pro Win32コンソールアプリケーションで拡張子.ccファイルをコンパイルしました。 CGIだとEXEファイルをHTML表示できるらしいのですが、 よくわかりません。 Windows環境・VisualC++で手軽にCGIファイルを実行できる方法を教えてください。 EXEファイルの拡張子をCGIに変えても、できませんでした。 あまりCGIのことはよくわからないのですが、C++でできるならやってみたいと思いました。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- exeファイルが開かないのですが
WINDOWS XPで「フォルダオプション」「ファイルの種類」「新規」でファイルの拡張子「exe」を追加後に削除したところ、すべてのexeファイルが実行できなくなってしまいました。 ファイル名を指定して実行でも、「このファイルを開けません」となります。 対処法がありましたら、ご教授お願いします。
- 締切済み
- Windows XP
- C言語で作ったプログラムをCGIで動かすには
C言語で作ったプログラムをCGIで動かすにはどうすればいいのでしょうか? サーバ側になにをアップし、ブラウザ側で何を呼び出せばいいのかわかりません。 EXEファイルの拡張子をcgiにしても ダウンロードされるだけだったし(当たり前ですか?)。 ちなみにサーバは会社のサーバを使っていて、CGIも使えるはずです。 よろしくお願いします。
- ベストアンサー
- CGI
お礼
.exeの「EXE形式の実行」にチェックを入れたら、~.exeのまま動くようになりました! もしやと思い、.pl,.cgiの同じところにもチェックを入れたところ、名前を~.cgiにリネームしたものも動くようになりました。 どうもありがとうございました。 (私がダウンロードしたバージョンは1.33dでしたが、デフォルトの設定ではやはり動きませんでした)