No.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なのでしょうか?
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関係がありません
どうしたらいいのでしょうか?
No.4
- 回答日時:
実行形態は以下の通りです。
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でしょうか?
No.3
- 回答日時:
「Apacheのモジュールとして実行」というのは、
WebサーバであるApache の 機能の一部として機能するということを意味します。
Apache は、そもそも多機能ですので、すべての機能を入れると、結構大きなメモリーを使うことになります。そのため、それぞれの機能をモジュールという形で起動時に選んで使うことができます。
PHPをCGIで実行した場合、実行される毎に、
1)新しくメモリを確保して、
2)スクリプトを実行する。
3)メモリを開放する。
簡単に言うと上記のような手順になります。
この中で、1と3のプロセスが入ります。
これは、毎回新しいプロセスを起している動作です。
メモリの確保と開放というのは、OSで結構重い処理になります。
モジュールで実行される場合。
Apache の機能として、PHPが実行されるため、
1)スクリプトを実行する
という手順だけになるため、CGI より処理が軽いうえに、新しいプロセスを作る必要がないために、
処理が早いということなります。
No.2
- 回答日時:
PHPには大きく分けて二種類の利用方法があったりします。
その一つが「モジュール版」で、もう一つが「CGI版」です。
で、何が違うのかというと(簡単に言えば)「単体で実行できるか否か」という点です。
CGI版はコマンドライン上で実行することが可能で、Apache等から独立したプロセスとして扱われます。
対してモジュール版は、コマンドライン上では実行出来ないのですが、PHPスクリプトを実行するときにはApache以外のプロセスが実行されないので、多少処理速度が速くなります。
なので、PHPスクリプトを実行させた場合、見かけ上
CGI版:ApacheとPHPスクリプトの2つのプロセスが実行
モジュール版:Apacheプロセスだけが実行
ということになり、その分処理速度が速くなる…ということのようです。
自信ないので、間違ってたらどなたか補足お願いします。
No.1
- 回答日時:
PHPをモジュールとして動かしたりできるんですよ。
パールとかCとかCGIとか色々な言語を用いる事がサーバで出来るみたいですが、モジュール(API)だと速いらしいです。
言語は本をよまんとチンプンカンプンです。
参考URL:http://module.jp/book/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP eclipse pleiades phpのインストールについて 1 2023/02/03 17:15
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
- Visual Basic(VBA) VBAでのMATCH関数 3 2022/10/17 19:06
- 大学受験 【英熟語帳について】 「ターゲット1000」か「速読英単語」で悩んでいて、個人的にはどちらも魅力的な 1 2023/01/10 08:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlでsubmitで指定したAction...
-
別サーバのプログラムを起動
-
PHPからバッチファイルの実行
-
シェルスクリプトをPHPで動かそ...
-
ブラウザからexecコマンドを実...
-
サーバの作業の流れで質問です。
-
PHPから環境変数'PATH'が使えない
-
Prompt入力値をphp変数として取...
-
php実行中に実行中のphpファイ...
-
phpのftp関数でサーバーから他...
-
phpのshell_exec関数の動作に関...
-
PHPでMysqlにデータがあるかど...
-
PHPからCプログラムを実行して...
-
onedrive にexcelファイルをア...
-
VBSの「MsgBox」について
-
こちらはただの直列処理ですか?
-
複数ファイルを連続でダウンロード
-
パースエラーとは?
-
リンク先を隠す方法はないでし...
-
拡張子php画像をjpg画像等に変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
php5-extensions を make でき...
-
php実行中に実行中のphpファイ...
-
ヒアドキュメントの中で演算子...
-
シェルスクリプトをPHPで動かそ...
-
phpからエクセルのマクロを実行...
-
PHPからバッチファイルの実行
-
query、prepare、executeの違い
-
PHPからCプログラムを実行して...
-
Switch文における、returnとbre...
-
PHPからlhaコマンドを使いたい
-
あるphpから他のPHPプロ...
-
CRON でPHPスクリプトをGET変数...
-
JSのWINOW.CONFI...
-
PHPの中間コード
-
別サーバのプログラムを起動
-
copy() で属性保存
-
phpスクリプトのみで定期実行
-
PHPで、C#のプログラムを実行す...
-
PHPからPostgreSQLのダンプを実行
おすすめ情報