ホームページ >バックエンド開発 >PHPチュートリアル >PHP 54 内蔵 Web サーバー Web サーバーのランキング Web サーバーの原理 シンプルな Web サーバー
PHP はスクリプト言語であり、PHP ファイルを分析して実行するには PHP インタープリターが必要です。 Web リクエストを処理する CGI として PHP を使用する場合、PHP を何らかの Web サーバー (最も一般的には Apache または IIS に統合) に組み込む必要があります。これは、PHP を使用する前に、Apache または IIS をインストールし、それらを正しく構成する必要があることを意味します。および PHP 統合パラメータ。この構成は標準化されており、ドキュメントは非常に充実していますが、Apache と PHP の統合をインストールするときに、依然として問題が発生することがよくあります。さらに、単純な PHP 機能をテストしたいだけで、Apache サービスをインストールして開始したくない場合もあります。この目的のために。 。
しかし、公式ドキュメントによると、この組み込み Web サーバーは開発とテスト専用であり、運用環境での使用は推奨されません。このサーバーはリクエストを順番に受け付けて処理するため、リクエストを同時に処理することはできません。
この内蔵 Web サーバーは非常に使いやすく、次のコマンドを実行するだけでアクセスできます。この方法で開始した後、デフォルトの Web サービス ディレクトリは、コマンドが実行される現在のディレクトリになります。現在のディレクトリを使用したくない場合は、-t パラメータを使用して指定する必要があります。
例 #1 Web サーバーを起動します
<ol><li><span><span>$ php -S localhost:8000 </span></span></li></ol>
ターミナル出力情報:
<ol> <li><span><span>$ cd ~/public_html </span></span></li> <li><span>$ php -S localhost:8000 </span></li> </ol>
http://localhost:8000/ および http://localhost:8000/myscript.html アドレスを要求した後、ターミナルは次のような情報を出力します。以下:
<ol> <li><span><span>PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011 </span></span></li> <li><span>Listening on localhost:8000 </span></li> <li><span>Document root is /home/me/public_html </span></li> <li><span>Press Ctrl-C to quit </span></li> </ol>
例 #2 Web サーバーの起動時にドキュメントのルート ディレクトリを指定します
<ol> <li><span><span>PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011 </span></span></li> <li><span>Listening on localhost:8000 </span></li> <li><span>Document root is /home/me/public_html </span></li> <li><span>Press Ctrl-C to quit. </span></li> <li><span>[Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read </span></li> <li><span>[Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read </span></li> <li><span>[Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read </span></li> <li><span>[Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read </span></li> <li><span>[Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read </span></li> </ol>
ターミナル表示メッセージ:
<ol> <li><span><span>$ cd ~/public_html </span></span></li> <li><span>$ php -S localhost:8000 -t foo/ </span></li> </ol>
起動コマンド ラインの後に php スクリプト ファイルを追加すると、このファイルが処理されます「ルーター」スクリプトとして。このスクリプトはすべての HTTP リクエストを処理します。このスクリプトが実行時に FALSE を返した場合、要求されたリソースは通常どおり返されます。 FALSE でない場合、このスクリプトによって生成されたコンテンツがブラウザーに表示されます。
例 #3 ルーター スクリプトの使用
この例では、画像のリクエストは対応する画像を返しますが、HTML ファイルのリクエストでは「PHP へようこそ」と表示されます:
<ol> <li><span><span>PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011 </span></span></li> <li><span>Listening on localhost:8000 </span></li> <li><span>Document root is /home/me/public_html/foo </span></li> <li><span>Press Ctrl-C to quit </span></li> </ol>
<ol> <li><span><span><?php </span></span></li><li><span>// router.php </span><span> </span></li><li><span>if</span><span> (preg_match(</span><span>'/\.(?:png|jpg|jpeg|gif)$/'</span><span>, </span><span>$_SERVER</span><span>[</span><span>"REQUEST_URI"</span><span>])) { </span></li><li><span>return</span><span> false; </span><span>// serve the requested resource as-is. </span><span> </span></li><li><span>} </span><span>else</span><span> { </span></li><li><span>echo</span><span> </span><span>"<p>Welcome to PHP</p>"</span><span>; </span></span></li> <li><span>} </span></li> <li><span>?> </span></li> </ol>
例 #4内蔵 Web サーバー
は、プログラムの判断を通じて、内蔵 Web サーバーと本番サーバーの同じ PHP ルーター スクリプトの異なる動作を調整します:
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
<ol><li><span><span><?php </span></span></li><li><span>// router.php </span><span> </span></li><li><span>if</span><span> (php_sapi_name() == </span><span>'cli-server'</span><span>) { </span></li><li><span>/* route static assets and return false */</span><span> </span></li><li><span>} </span></li><li><span>/* go on with normal index.php operations */</span><span> </span></li><li><span>?> </span></span></li></ol>
この内蔵 Web サーバーは、いくつかの標準 MIME タイプを認識できます。リソース、および拡張子は .css、.gif、.htm、.html、.jpe、.jpeg、.jpg、.js、.png、.svg、および .txt です。 .htm および .svg 拡張子のサポートは、PHP 5.4.4 以降でのみサポートされます。
例 #5 サポートされていないファイル タイプの処理
Web サーバーでサポートされていない MIME ファイル タイプを正しく処理できるようにするには、次の手順を実行します:
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
<ol><li><span><span><?php </span></span></li><li><span>// router.php </span><span> </span></li><li><span>$path</span><span> = </span><span>pathinfo</span><span>(</span><span>$_SERVER</span><span>[</span><span>"SCRIPT_FILENAME"</span><span>]); </span></li><li><span>if</span><span> (</span><span>$path</span><span>[</span><span>"extension"</span><span>] == </span><span>"ogg"</span><span>) { </span></li><li><span>header(</span><span>"Content-Type: video/ogg"</span><span>); </span></li><li><span>readfile(</span><span>$_SERVER</span><span>[</span><span>"SCRIPT_FILENAME"</span><span>]); </span></li><li><span>} </span></li><li><span>else</span><span> { </span></li><li><span>return</span><span> FALSE; </span></li><li><span>} </span></li><li><span>?> </span></span></li></ol>
内蔵 Web サーバーにリモートでアクセスしたい場合は、起動コマンドを以下に変更されました:
例 #6 この組み込み Web サーバーへのリモート アクセス
<ol><li><span><span>$ php -S localhost:8000 router.php </span></span></li></ol>
したがって、ポート 8000 を介してこの組み込み Web サーバーにリモート アクセスできます
上記では、Web サーバーの内容も含めて、PHP 54 の組み込み Web サーバーを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。