• ベストアンサー

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

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

  • tomo5
  • お礼率61% (37/60)
  • CGI
  • 回答数4
  • ありがとう数5

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

  • ベストアンサー
  • 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

  • C言語でプログラムを作る課題があたえられました

    プログラムは作ったのですが、それを書いた拡張子『.c』のソースファイルとコンパイル後に作成された拡張子『.exe』のファイルを提出することになっています。『.c』のファイルとは『C source』に書かれているプログラムしょうか。また、『.exe』のファイルとはアプリケーションに書かれているものでしょうか、それともobject fileに書かれているものでしょうか。35年前にfortranは勉強して少し、プログラムを作った経験はあるのですが、今では言葉の意味が理解できません。恐れ入りますが詳しく教えてください。

  • C言語でCGIの生成?

    はじめまして。 今、C言語でCGIを利用したページを制作しようと思っています。 まだ勉強を始めたばかりなので、C言語でCGIが作れるのかと疑問に思っています。 Visual C++コンパイラを使用しているのですが、C言語で書いたものをCGIとして動作させるにはどのようにすればいいでしょうか。 初心者なので出来るだけ詳しくご返答ください。 ちなみに、簡易サーバーとしてApacheを使用しています。

    • 締切済み
    • CGI
  • Cで作ったexeファイルをCGIとして動かしたい

     以前「自宅のWindows機をサーバー代わりにしてCGIを動かす方法(No.65520参照)」を教えてもらい、Perlで書いたCGIのテストなどに使用しています。  今度はCで作ったexeファイルをCGIとして実行しようとしたのですが、アドレスバーからそのファイルを指定すると、ダウンロードしようとしてしまいます。 (当たり前といえば当たり前なのですが・・・)  ムダと思いつつ、拡張子をCGIにしてみたりしたのですが、やっぱりダメでした。  AnHTTPdの設定だとは思うのですが、どこをいじればよいのか分かりません。  どのようにすれば動くのか教えてください。

    • ベストアンサー
    • CGI
  • WindowsXpProでC言語でCGI

    自宅のXp Proをサーバーにして,Apache2.2やメールサーバを動作させています。昨日,Apacheでssiやcgiを実行可能にして,次のような簡単なプログラムをコンパイルして,hello.exeを作って,試してみました。 #include <stdio.h> #include <conio.h> int main() { printf("Hello"); /*getch();*/ } htmlファイルは, <!--#exec cgi="counter.exe" --> <!--#include file="count.dat" --> <!--#exec cgi="hello.exe" --> としています。実は,counter.exeは自作カウンターなのですが,標準出力が表示されず,しかたなく,#includeでカウンタファイルの値を表示させています。hello.exeも同様にファイルに書き出して,includeすれば大丈夫なのでしょうが,いろいろな資料やhpを見る限り,上記ソースのように標準出力でできるはずだと思うのです・・・。 Windowsをサーバにした場合は,標準出力は表示されないのでしょうか? どなたか,アドバイスいただけないでしょうか。

    • ベストアンサー
    • CGI
  • windows上でC言語のCGI環境について

    sea_clear_sky8です。 Windows上でC言語によるCGIを使える環境を作りたいです。 <環境> OS Windows98SE APACHE1.3 Boland BCC55 コンパイラ  APACHE1.3とBoland BCC55 コンパイラはインストールしてあります。 C言語の環境はPHPとPerlの環境と共存できるのでしょうか? PHPとPERLの環境も作ってあります。 C言語でも、PERLみたいに、コンパイルをし、ブラウザに出力する環境が つくれるのでしょうか? httped confのファイルに次を追加すると LoadModule cgi_module module/mod_cgi.so Cannot load c:/program files/apache group/apache/module/mod_cgi.so into server (1157) このアプリケーションの実行に 必要なライブラリ ファイルのうちの 1 つが見つかりません。: と表示されます。 Yahoo,Google、MSN等で調べましたが、解決方法がみつかりませんでした。 Windows上でのC言語によるCGIの作り方をご教授願います。 よろしくお願いします。

    • 締切済み
    • CGI
  • C言語CGIの一括コンパイルの方法

    10年くらい前に作ったゲームの復活を考えています。 当時ledhat7.1上で展開していたゲームをSentOS上で再開します。 ゲームはC言語で出来ていますが、作った本人が手を付けることができません。 そこで、当方が10年前の姿にまでは持っていこうと考えています。 いろいろ調べていくと、 「C言語によるCGIプログラムは、それを動かそうとする サーバー上でソースファイルをコンパイルする必要があります。 他のマシンでコンパイルしたCGIプログラムをそのまま持って来ても、動かない 可能性の方が大きいです。ご注意下さい。」 という記述を見つけました。 全部、コンパイルし直す必要がありそうです。 当方の現在の環境は下記の通りです。 サーバー  自宅にあり。直接接続可能 もちろんSSHも可 CGI の数 178個 ディレクトリは40個くらいに分かれている コンパイル前のC言語ファイルは「.c ファイル」として 保存されている ひとつひとつコンパイルしていったのでは、1ケ月くらい 掛かりそうです。 一括コンパイルのような方法はありませんでしょうか? 一括でなくとも、ディレクトリごとでも構いません。 宜しくお願い致します。

  • C言語のCGIが編集できません

    フリー配布のC言語で書かれたチャットのCGIをダウンロードしたのですが、エディタで開くと テキスト中にNULL文字が含まれています! この文字はメモ帳++で強制的に削除されます。 と警告がでます。そして開くと文字化けをしたようになってしまいます。 そのままの状態でアップロードすると、404エラーが出ます。 別のプログラムでCGIのエラーチェックをすると、 Unrecognized character \x7F at (eval 1) line 1. と出るのですが、さっぱりわかりません・・・。 恥ずかしいのですがC言語の知識が全くないので、C言語についてもアドバイスをいただけるととても嬉しいです。

    • ベストアンサー
    • CGI
  • C言語でCGI

    C言語でCGIをやるにはサーバがtelnetを使えないと絶対だめですか? たとえばローカルのLINUX環境でコンパイルしてそれをFTPでサーバにアップロードする方法では出来ないでしょうか?何か方法があれば教えてください。

    • ベストアンサー
    • CGI
  • C言語でどういったCGIを作ることが出来ますか?

    ホームページを作る上で、C言語というのは殆ど使われない言語のようですが、C言語を使うことによりホームページ上で何か便利な働きをするCGIはありますでしょうか? ちなみに私はHTMLのみでホームページを作成した経験は何度かありますが、C言語には全く触れたことがありません。 そこでC言語を用いて何か出来ればというのがありまして。 C言語を利用することにより、こういった便利な事が出来るといったアドバイスなどありましたら、ぜひご教授願います。

  • 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++でできるならやってみたいと思いました。 よろしくお願いします。