アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTMLと混在してプログラムが書ける
言語として文法がシンプルで覚えやすい
Webアプリ専用の言語として便利なライブラリが豊富
実行速度が速い(Apacheのモジュールとして実行)
データベースとの接続性が良い
漢字コード・ライブラリを標準でサポート

とありますが
「Apacheのモジュールとして実行」
とはどういうことでしょうか?

A 回答 (5件)

>が表示されますがこれはCGIでしょうか?



CGI かどうかを見るのに、手っ取り早いのは、

<?php
phpinfo();
?>

という内容のindex.php を実行して、表示される
情報の中で、「Server API」という項目を見れば
わかると思います、ちなみに、今は自宅なので、Windows版 で確認しましたが、「CGI/FastCGI」となっていて、CGI 動作であることが一目瞭然です。

ちなみに、Fedora core ですと、Redhat 系ですよね。
Redhat を仕事で使っていますが、大体は、モジュール組み込みでした。
モジュール組み込みだったら、/etc/httpd/conf/httpd.conf の中に、

LoadModule php_module modules/libphp4.so
(うろ覚え)

こんな感じで、libphp4.so を読み込むための 記述が あると思います。
コメントアウトしているなら、コメントをはずして、
Apache を再起動すれば、モジュールで動き出すとは思います。

この回答への補足

ありがとうございます
Server APIの項目が Apache 2.0 Handler
となっていました
とういうことはCGIなのでしょうか?

補足日時:2004/04/13 03:56
    • good
    • 0
この回答へのお礼

httpd.confのLoadModuleの項は

LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule auth_dbm_module modules/mod_auth_dbm.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule imap_module modules/mod_imap.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule cgi_module modules/mod_cgi.so

などで問題のPHP関係がありません
どうしたらいいのでしょうか?

お礼日時:2004/04/13 04:11

実行形態は以下の通りです。


1.CGI版
ブラウザ→Apache→CGIプログラム→Apache→ブラウザ

2.モジュール版
ブラウザ→Apache上でスクリプト実行(スクリプトのロードをApache上で行う)→ブラウザ

ご覧の通り、CGI版だとApacheがCGIプログラムに問い合わせるのに対して、モジュール版ではApacheそのもので行われます。

この回答への補足

ありがとうございます

FedoraCoreをフルインストールしてアパッチを実行しているPC1(192.168.101.1)と
ブラウザを搭載した98seのPC2(192.168.100.1)が
TCP/IPで接続されていて
PC1に

ファイル/var/www/html/index.php:
<?php
echo "Hello World!<br/>";
?>

を置きPC2のブラウザのアドレス欄に
http://192.168.101.1/index.php
を入力するとブラウザに

Hello World!

が表示されますがこれはCGIでしょうか?

補足日時:2004/04/12 12:09
    • good
    • 0

「Apacheのモジュールとして実行」というのは、


WebサーバであるApache の 機能の一部として機能するということを意味します。
Apache は、そもそも多機能ですので、すべての機能を入れると、結構大きなメモリーを使うことになります。そのため、それぞれの機能をモジュールという形で起動時に選んで使うことができます。
PHPをCGIで実行した場合、実行される毎に、

1)新しくメモリを確保して、
2)スクリプトを実行する。
3)メモリを開放する。

簡単に言うと上記のような手順になります。
この中で、1と3のプロセスが入ります。
これは、毎回新しいプロセスを起している動作です。
メモリの確保と開放というのは、OSで結構重い処理になります。
モジュールで実行される場合。
Apache の機能として、PHPが実行されるため、

1)スクリプトを実行する

という手順だけになるため、CGI より処理が軽いうえに、新しいプロセスを作る必要がないために、
処理が早いということなります。

この回答への補足

ありがとうございます
モジュールで実行する手順はどのようになるのでしょうか?

補足日時:2004/04/12 04:48
    • good
    • 0

PHPには大きく分けて二種類の利用方法があったりします。


その一つが「モジュール版」で、もう一つが「CGI版」です。
で、何が違うのかというと(簡単に言えば)「単体で実行できるか否か」という点です。

CGI版はコマンドライン上で実行することが可能で、Apache等から独立したプロセスとして扱われます。
対してモジュール版は、コマンドライン上では実行出来ないのですが、PHPスクリプトを実行するときにはApache以外のプロセスが実行されないので、多少処理速度が速くなります。

なので、PHPスクリプトを実行させた場合、見かけ上
CGI版:ApacheとPHPスクリプトの2つのプロセスが実行
モジュール版:Apacheプロセスだけが実行
ということになり、その分処理速度が速くなる…ということのようです。

自信ないので、間違ってたらどなたか補足お願いします。

この回答への補足

ありがとうございます
具体的に実行の手順はどうなるのでしょうか?

補足日時:2004/04/12 04:51
    • good
    • 0

PHPをモジュールとして動かしたりできるんですよ。


パールとかCとかCGIとか色々な言語を用いる事がサーバで出来るみたいですが、モジュール(API)だと速いらしいです。
言語は本をよまんとチンプンカンプンです。

参考URL:http://module.jp/book/
    • good
    • 0
この回答へのお礼

ありがとうございます

お礼日時:2004/04/12 04:46

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