質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

2回答

8965閲覧

apacheの使用言語について

tidavest

総合スコア595

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2016/01/10 18:02

Apacheの使用言語をwebで検索するとC言語という文字を見ることが出来たのですが、
この言語以外に使用できるものはありますか。
C++あたりが使用できるような気がするのですが…

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Apache HTTP Serverのモジュールを作成するための言語と言うことでしょうか?たとえば、

のようなApacheへモジュールとして組み込める物を作りたいと言うことであってますでしょうか?

その場合、C言語からリンク可能なオブジェクトファイルを作成出来る言語であればC言語である必要はありません。また、静的or動的リンクライブラリとして作成し、それをC言語から利用する形も可能です。ただし、どうやっても、Apache本体とやり取りするインターフェースの部分はC言語で作成しないと難しいです。ですので、少なくともC言語の知識は必須です。処理の多くをC++言語などの他の言語で作成したい場合は、C言語から他の言語で作成したものを利用するにはどうすればいいのかを調べればいいでしょう。

なお、上の話はCGIやmod_php、mod_rails、mod_perlなどでWebアプリケーションを動かすのとは全く別の話です。CGIはそのOSのコンソール(正確にはシェル)上で直接実行可能である(つまり、ターミナルを開いて、/full/path/hogeだけで実行できる)ものであれば、全てそのままWebアプリケーションとして使用できます(ただし、Windowsのみ少し動作が異なります)。また、mod_php、mod_rails、mod_perlなどはそれに対応した言語(mod_phpであればPHP)を用いたWebアプリケーションを使用できるようになります。例えば、PHPで書かれたWebアプリケーションを動かしたいのであれば、CGIで動作できるようにCGIのやり方に合わせるか、対応するモジュール(PHP本体に付属のmod_php)を入れることで可能です。

しかし、言語によってはCGIにするには非効率で、かといってモジュールがないものもあります。例えばJava(Scalaを含む)やJavaScriptです。こういう場合はその言語用のHTTP Severが用意されている場合があります。JavaであればTomcatやJetty、JavaScriptであればnode.jsなどです。また、Goのようにそれ自体がHTTP Serverとして動作できる言語もあります。この場合は、Apache HTTP Serverとは別にそれらのプロセスを起動し、Apache HTTP Serverはリバースプロキシとして動作させて連係します。CGIを使わずにこのような使い方がメインの場合、リバースプロキシとして動作させるだけではApache HTTP Serverは重すぎると言うことで、フロントにはnginxを使うのが現在の主流のようです。

投稿2016/01/10 22:02

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tidavest

2016/01/11 00:04

詳しく回答ありがとうございます。
guest

0

apache webサーバープログラム自体は C言語で開発されています。
apache経由で動作する Web アプリケーションはさまざまな言語で開発できるようになっています。
(apache を使わないこともできる場合も多いです。)
これは IIS 等他の Webサーバーでも同様です。
(IISの開発言語がなんであるかはちょっと知りませんが。)

投稿2016/01/10 18:07

kozuchi

総合スコア1193

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tidavest

2016/01/10 18:35

例えば、webアプリケーションは、phpで書かれているとして、それを実行するのに、 apacheでは、どのような言語を使用するのでしょうか。
kozuchi

2016/01/11 12:38

PHP(の処理系)はC言語で書かれていますよ。 php ファイルを、apache がどのように php の処理系に渡し、 php の処理系が渡された php のプログラムコードをどのように解釈して実行するかは、 apache のソースコードと、 PHPのソースコードを入手すれば(オープンソースなのでいずれも公開されています)、 すべてC言語のプログラムとして読むことができます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問