ParlはCGIを設置するのにプロパイダのParlソフトを使わないとCGIが設置できないと聞きました
C言語の場合はParlソフトを使うわけではないのでプロパイダに聞かなくてもCGIは設置可能でしょうか?

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

A 回答 (4件)

(1)CGIをどのプログラミング言語で作成して、どの実行環境で実行するか?


(2)CGIとして実行できるか?
(3)サーバーの運営方針は?

これらは、それぞれ別の問題です。

(1)
プログラミング言語のPerlを使った作ったプログラム(CGI)は、Perlの実行環境が無いと動作できません。
> ParlはCGIを設置するのにプロパイダのParlソフトを使わないとCGIが設置できないと聞きました
が持つ意味の一つは、これです。

C言語で書かれたプログラムも、実行するには対応した実行環境が必要です。
コンパイルしてできた実行ファイルだけで動作しているように見えますが、実際には他にもたくさんの必要なものがあります。
例えば、Windows用の実行ファイルを動作させるには、最低限「Windows」という実行環境が必要です。
サーバー上で実行させるには、そのサーバーで実行できるものを用意する必要があります。

(2)
サーバーの設定によっては、CGIの実行を制限することが可能です。
・Perlで書かれたものだけ許可する
とか
・全て許可しない
とか、いろいろです。

・コンパイル済みの実行ファイルは許可しない
というのは、セキュリティを考えれば、よくある設定だと思われます。
このような設定だったら、聞くまでもなく、C言語で作ったCGIは動きません。

(3)
これらの設定は、プロバイダの運営方針に基くものです。
方針が違えば、設定も違います。

この回答への補足

●1
『実行環境』ですか
そんなのがあるのですね
C言語の実行環境を調べてみますね

●2
サーバーの設定をいじくれば可能なのですね

●3
となるとまったく別の疑問が出てきました。
何でプロパイダが必要になるのか?レンタルサーバーにおくだけじゃあダメなのか?
と言う疑問が質問のタイトルを変えて質問してみようと思います
ありがとうございました

補足日時:2012/10/02 10:27
    • good
    • 0

CGIに使える言語を限定しているプロバイダーがありますので、


利用規約等を確認するか、問い合わせた方が良いと思います。

たとえば@Niftyホームページサービスでは、C言語を使えない旨が書かれています。
http://homepage.nifty.com/outline/
>ご注意
>C言語、シェルスクリプトはご利用いただけません。

自宅にコンパイル環境を用意して実行ファイルを作ったとしても、C言語で作られているCGIアプリを使用して利用規約違反としてアカウント停止等になったとしても、補償はされません。


XREAでは利用可能です。
http://www.xrea.com/spec/
>使用可能な言語は、Perl(Version5.6 / 5.8)、Ruby、Python、C/C++、PHP3/4(日本語化パッチ済み)。
>(C、C++はあらかじめコンパイルしてアップロードしてください。)

この回答への補足

つまり
・プロパイダによって使えるのと使えないのがある
・使えないのをプロパイダの許可なくCGIを使うと追い出される(インターネット使用不可?強制退会?)

結論
プロパイダに聞けって事ですね

補足日時:2012/10/02 10:10
    • good
    • 0

>C言語のCGI


――ってのが、Cで書かれたCGIプログラムをコンパイルしてできた実行可能形式データだとしたら、可能では。ABIの違いとか、ランタイムライブラリの違いとかが無ければですが。

それ以前に、
> プロパイダのParlソフトを使わないとCGIが設置できない
――っていう命題が真でないような。
(※Perlのスペルミスじゃないかということを言いたいわけではないです)

正直、不明な点はプロバイダに照会した方が賢いかと。

この回答への補足

可能かもしれないけれどプロパイダに聞かないとダメなのですね

補足日時:2012/10/02 10:00
    • good
    • 0

それはcgiを設置しようとするプロバイダにたずねるべき事です。


それに実行ファイルを作るためのコンパイルはどうするつもりですか?

この回答への補足

結局プロパイダに聞かないとダメなのですね。
コンパイラーを使って普通に作るつもりです。

補足日時:2012/10/02 09:57
    • good
    • 0

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

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

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

QC言語でCGI

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

Aベストアンサー

>C言語でCGIをやるにはサーバがtelnetを使えないと絶対だめですか?

ローカルとサーバで、コンパイラ/OS/CPUなどがまったく同じであれば、
ローカル側でコンパイルしたCGIがサーバ側で動く可能性もありますが、
止めておいた方がよいでしょう。
普通は、サーバ上でコンパイルする事になります。

だから、サーバにリモートログインしてコンパイルを実行する事になりますね。

または、JAVAでCGIするという手もあります。

Qwindows上で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の作り方をご教授願います。
よろしくお願いします。

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 modu...続きを読む

Aベストアンサー

>LoadModule cgi_module module/mod_cgi.so
は、無いなら指定しないでも良いと思います。
拡張子とディレクトリでCGIを指定することも出来ますので
まずは、httpd上でperlのCGIが動作するか確認されてみては
如何でしょうか?

Windows 98に拘りが無いのなら、他のOS(Linux,FreeBSD)を
インストールした方が、環境は作りやすいと思います。
もしくは、Windows上で動作するCigwin環境を導入するなど。

参考URL:http://httpd.apache.org/docs/1.3/howto/cgi.html#explicitlyusingoptionstopermitcgiexecution

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

C言語で作ったプログラムをCGIで動かすにはどうすればいいのでしょうか?

サーバ側になにをアップし、ブラウザ側で何を呼び出せばいいのかわかりません。
EXEファイルの拡張子をcgiにしても
ダウンロードされるだけだったし(当たり前ですか?)。

ちなみにサーバは会社のサーバを使っていて、CGIも使えるはずです。
よろしくお願いします。

Aベストアンサー

Windowsの様子なので、IISかapache for W32
あたりでしょう。
サーバ側の設定不足です。

まず、Windowsなのでexeはexeのままでないと、
実行できません。

IISなら、cgiファイルはサーバ上の「Scripts」
ディレクトリの下に置きます。

使うときは
<a href="/Scripts/abc.exe">ほげほげ</a>
の様にhtmlの中に記述します。

IISの設定的には、cgiファイルを置くディレクトリ
は、実行アクセス権として
「スクリプトおよび実行可能ファイル」という
設定が付いている必要があります。

インターネットサービスマネージャの画面で
プロパティを見てればなんとなく気づくと思います。

apacheならhttpd.conf内のWcriptAlias設定をします。

QC言語でCGI

はじめて、C言語でCGIをプログラムを作成します.サーバーはApacheです。
フォームから、ユーザー名とパスワードを入力してもらって、送信ボタンをクリックしたら,まず、サーバー内にある.テキストファイルの「アクセス拒否ユーザーリスト」のユーザー名と比較し,該当したらAというHTMLファイルを表示させ,該当しなかったら,BというHTMLファイルを表示させたいのですが,どのようにしたらよろしいでしょうか?また、ユーザー名とパスワードの他にホスト名の情報も欲しいのですが,どのように受け取ったらいいのでしょうか?
ユーザー名、パスワード、ホスト名を格納する構造体を使用するほうがいいでしょうか?その際A,BのHTMLファイルにアクセスした時間とユーザー名,ホスト名をログファイルに記録したいのですが,やり方がまったく判りません.
勉強不足で申し訳ありませんが,どなたかご教授ください.

Aベストアンサー

>該当したらAというHTMLファイルを表示させ,該当しなかったら,BというHTMLファイルを表示させたい

cgiの中で A または B を読み込みながら出力すればよいだけでは?
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=a or b">
という方法もあります。
SSIを使う方法もあります。

>ホ スト名の情報も欲しいのですが,
環境変数に格納されていますので、それを読み出してください。

>アクセスした時間とユーザー名,ホスト名をログファイルに記録したい
情報がそろっているのなら ファイルを追加モードでオープンして書き込めば良いだけですよ。ファイルの入出力に関して、CGIといって特殊なことはありません。普通に作れます。

参考URL:http://tohoho.wakusei.ne.jp/wwwcgi.htm

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

フリー配布のC言語で書かれたチャットのCGIをダウンロードしたのですが、エディタで開くと

テキスト中にNULL文字が含まれています!
この文字はメモ帳++で強制的に削除されます。

と警告がでます。そして開くと文字化けをしたようになってしまいます。

そのままの状態でアップロードすると、404エラーが出ます。

別のプログラムでCGIのエラーチェックをすると、

Unrecognized character \x7F at (eval 1) line 1.

と出るのですが、さっぱりわかりません・・・。

恥ずかしいのですがC言語の知識が全くないので、C言語についてもアドバイスをいただけるととても嬉しいです。

Aベストアンサー

コンパイルの方法はソース付属のドキュメントを見てください。ライブラリの依存関係などがあるので建前としては『一般論なんか無い』ですが、まぁ多くは作者が親切なおかげで ./configure make一発!ですけれど。

UNIX系の特徴というか文化はソースコード互換で、“バイナリ互換ではありません”。
telnetやsshが使えないサーバーではcのcgiはまず使えないと思っていいです。


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

おすすめ情報