Zendチュートリアルを行っているときに、次のステートメントに遭遇しました。
.htaccessのphp_flag設定は、mod_phpを使用している場合にのみ機能することに注意してください。
誰かがそれが何を意味するのか説明できますか?
Zendチュートリアルを行っているときに、次のステートメントに遭遇しました。
.htaccessのphp_flag設定は、mod_phpを使用している場合にのみ機能することに注意してください。
誰かがそれが何を意味するのか説明できますか?
回答:
mod_php
ApacheモジュールとしてのPHPを意味します。
基本的に、mod_php
Apacheモジュールとしてロードすると、ApacheがPHPファイルを解釈できるようになります(これらはによって解釈されますmod_php
)。
編集: Apacheで作業する場合、PHPを実行するには(少なくとも) 2つの方法があります:
mod_php
)として使用する場合:PHPインタープリターは、Apacheプロセス内に「埋め込まれる」ようなものです。外部PHPプロセスがないため、ApacheとPHPはよりよく通信できます。
そして、コメントの後に再編集mod_php
します:CGIを使用するか、それはあなた次第です:それはあなたのウェブサーバーの設定の問題だけです。
現在ご使用のサーバーで使用されている方法を知るために、あなたはの出力を確認することができますphpinfo()
:PHPを経由して実行されているかどうかを示す何かがあるはずですmod_php
(またはmod_php5
)、またはCGI経由で。
また、php_sapi_name()
関数を確認することもできます。この関数は、WebサーバーとPHP間のインターフェイスのタイプを返します。
Apacheの設定ファイルをチェックインすると、を使用するときにmod_php
、次のLoadModule
ような行が表示されます。
LoadModule php5_module modules/libphp5.so
(ファイル名は、右側に、異なる可能性- Windows上で、例えば、それはする必要があります.dll
)
mod_php
最も一般的な構成です。
mod_php
は本当のPHPではないと思います。それは単なるApacheアドオンです。か、私はあなたが答えをオフに開始すべきだと思うの定義は何の正確 PHPが意味するのでしょうか?
Webサーバーを介してPHPを実行する場合、PHPのCGI SAPIを使用して実行するか、Webサーバーのモジュールとして実行するかの2つの異なるオプションがあります。それぞれに独自の利点がありますが、全体として、モジュールが一般的に好まれます。
PHPをCGIとして実行するということは、基本的にWebサーバーにPHP実行可能ファイルの場所を指示し、サーバーがその実行可能ファイルを実行して、ページにアクセスするたびに呼び出したスクリプトを提供することを意味します。つまり、ページをロードするたびに、PHPはphp.iniを読み取ってその設定を設定し、すべての拡張機能をロードして、スクリプトの解析作業を開始する必要があります。繰り返しの作業がたくさんあります。
PHPをモジュールとして実行すると、PHPは文字通りWebサーバー内に配置されます-起動は1回だけで、設定と拡張機能を1回だけロードし、セッション間で情報を保存することもできます。たとえば、PHPアクセラレータは、リクエスト全体でキャッシュされたデータを保存できるPHPに依存しています。これは、CGIバージョンでは不可能です。
PHPをモジュールとして使用する明らかな利点は速度です。CGIからモジュールに変換すると、速度が大幅に向上します。多くの人々、特にWindowsユーザーはこれに気づかず、php.exe CGI SAPIを使用し続けますが、これは残念です。モジュールは通常3〜5倍高速です。
ただし、CGIバージョンを使用することには重要な利点が1つあります。それは、ページをロードするたびにPHPが設定を読み取ることです。PHPをモジュールとして実行している場合、php.iniファイルに加えた変更はWebサーバーを再起動するまで有効になりません。そのため、多くの新しい設定をテストしていて、即時の応答を確認したい場合は、CGIバージョンが適しています。
サーバーにphpモジュールをインストールして、phpコードを解析できるようにする必要があります。
あなたがubuntuを使用している場合は、これを簡単に行うことができます
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo /etc/init.d/apache2 restart
それ以外の場合は、phpでapacheをコンパイルできます。http://dan.drydog.com/apache2php.html
サーバーのOSを指定すると、他のユーザーがより具体的に回答できるようになります。
つまり、CGIスクリプトとして起動するのではなく、ApacheのモジュールとしてPHPをインストールする必要があります。