• ベストアンサー

C言語で作ったプログラムをCGIで動かすには

C言語で作ったプログラムをCGIで動かすにはどうすればいいのでしょうか? サーバ側になにをアップし、ブラウザ側で何を呼び出せばいいのかわかりません。 EXEファイルの拡張子をcgiにしても ダウンロードされるだけだったし(当たり前ですか?)。 ちなみにサーバは会社のサーバを使っていて、CGIも使えるはずです。 よろしくお願いします。

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

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.3

Windowsの様子なので、IISかapache for W32 あたりでしょう。 サーバ側の設定不足です。 まず、Windowsなのでexeはexeのままでないと、 実行できません。 IISなら、cgiファイルはサーバ上の「Scripts」 ディレクトリの下に置きます。 使うときは <a href="/Scripts/abc.exe">ほげほげ</a> の様にhtmlの中に記述します。 IISの設定的には、cgiファイルを置くディレクトリ は、実行アクセス権として 「スクリプトおよび実行可能ファイル」という 設定が付いている必要があります。 インターネットサービスマネージャの画面で プロパティを見てればなんとなく気づくと思います。 apacheならhttpd.conf内のWcriptAlias設定をします。

tomo5
質問者

お礼

Scriptsのフォルダにおいたら実行できました! ありがとうございます。

その他の回答 (3)

noname#5824
noname#5824
回答No.4

CでCGIを組む場合には、 ソースファイルをサーバにアップしてから、 サーバー上でtelnetを使ってコンパイルします。 これは、サーバーが通常Unixであるために、 Windows上でコンパイルしたものでは使えないからです。 具体的な方法に関しては、 参考URLを見てください。 #1の方へ。 CGIはPerl,C,PHPなどなどいろいろありますよ。 Perlはプログラム未経験者にはちょうどいいですが、 経験者にとっては非常に汚いものなんです。

参考URL:
http://www2k.biglobe.ne.jp/~motoi/cdecgi.html
tomo5
質問者

お礼

回答ありがとうございました。

回答No.2

サーバはWindowsNT系と仮定してお話します。 「.exe」ファイルを「.cgi」にする必要はありません。 IISを起動させ、作成されたexeファイルを格納しているパス、あるいはそのexeファイルそのものに実行権限を与えないと出来ません。 (確か、スクリプトに対する権限だったような・・・) この、実行権を与えないとダウンロードされるだけとなってしまいます。 また、作成されたexeファイルがどんな内容を返すのかは知りませが、結構複雑ですよ。 私はDelphiでCGIを動かしていますけど結構苦労しました。

tomo5
質問者

お礼

「.exe」ファイルを「.cgi」にしたことは忘れてください☆ ほんとなにやってんだか…。 ファイルを置く場所を間違っていたみたいです。 ありがとうございました。

  • none123
  • ベストアンサー率30% (49/162)
回答No.1

よくわかんないんですが、CGIって、Parlとかで 組むものじゃないんですか?

tomo5
質問者

補足

Parlのほうが簡単なんですけど、jubakoさんの言うとおり、ソースが美しくないし、上司がCでやれって言うから…。すいません。

関連するQ&A

専門家に質問してみよう