PHP 54 内蔵 Web サーバー Web サーバーのランキング Web サーバーの原理 シンプルな Web サーバー

WBOY
リリース: 2016-07-29 08:50:21
オリジナル
1209 人が閲覧しました

PHP はスクリプト言語であり、PHP ファイルを分析して実行するには PHP インタープリターが必要です。 Web リクエストを処理する CGI として PHP を使用する場合、PHP を何らかの Web サーバー (最も一般的には Apache または IIS に統合) に組み込む必要があります。これは、PHP を使用する前に、Apache または IIS をインストールし、それらを正しく構成する必要があることを意味します。および PHP 統合パラメータ。この構成は標準化されており、ドキュメントは非常に充実していますが、Apache と PHP の統合をインストールするときに、依然として問題が発生することがよくあります。さらに、単純な PHP 機能をテストしたいだけで、Apache サービスをインストールして開始したくない場合もあります。この目的のために。 。

しかし、公式ドキュメントによると、この組み込み Web サーバーは開発とテスト専用であり、運用環境での使用は推奨されません。このサーバーはリクエストを順番に受け付けて処理するため、リクエストを同時に処理することはできません。

この内蔵 Web サーバーは非常に使いやすく、次のコマンドを実行するだけでアクセスできます。この方法で開始した後、デフォルトの Web サービス ディレクトリは、コマンドが実行される現在のディレクトリになります。現在のディレクトリを使用したくない場合は、-t パラメータを使用して指定する必要があります。

例 #1 Web サーバーを起動します

  1. $ php -S localhost:8000
ログイン後にコピー

ターミナル出力情報:

  1. $ cd ~/public_html
  2. $ php -S localhost:8000
ログイン後にコピー

http://localhost:8000/ および http://localhost:8000/myscript.html アドレスを要求した後、ターミナルは次のような情報を出力します。以下:

  1. PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
  2. Listening on localhost:8000
  3. Document root is /home/me/public_html
  4. Press Ctrl-C to quit
ログイン後にコピー

例 #2 Web サーバーの起動時にドキュメントのルート ディレクトリを指定します

  1. PHP 5.4.0 Development Server started at Thu Jul 21 10:43:28 2011
  2. Listening on localhost:8000
  3. Document root is /home/me/public_html
  4. Press Ctrl-C to quit.
  5. [Thu Jul 21 10:48:48 2011] ::1:39144 GET /favicon.ico - Request read
  6. [Thu Jul 21 10:48:50 2011] ::1:39146 GET / - Request read
  7. [Thu Jul 21 10:48:50 2011] ::1:39147 GET /favicon.ico - Request read
  8. [Thu Jul 21 10:48:52 2011] ::1:39148 GET /myscript.html - Request read
  9. [Thu Jul 21 10:48:52 2011] ::1:39149 GET /favicon.ico - Request read
ログイン後にコピー

ターミナル表示メッセージ:

  1. $ cd ~/public_html
  2. $ php -S localhost:8000 -t foo/
ログイン後にコピー

起動コマンド ラインの後に php スクリプト ファイルを追加すると、このファイルが処理されます「ルーター」スクリプトとして。このスクリプトはすべての HTTP リクエストを処理します。このスクリプトが実行時に FALSE を返した場合、要求されたリソースは通常どおり返されます。 FALSE でない場合、このスクリプトによって生成されたコンテンツがブラウザーに表示されます。

例 #3 ルーター スクリプトの使用

この例では、画像のリクエストは対応する画像を返しますが、HTML ファイルのリクエストでは「PHP へようこそ」と表示されます:

  1. PHP 5.4.0 Development Server started at Thu Jul 21 10:50:26 2011
  2. Listening on localhost:8000
  3. Document root is /home/me/public_html/foo
  4. Press Ctrl-C to quit
ログイン後にコピー
  1. // router.php
  2. if (preg_match('/\.(?:png|jpg|jpeg|gif)$/', $_SERVER["REQUEST_URI"])) {
  3. return false; // serve the requested resource as-is.
  4. } else {
  5. echo "

    Welcome to PHP

    "
    ;
  6. }
  7. ?>
ログイン後にコピー

例 #4内蔵 Web サーバー

は、プログラムの判断を通じて、内蔵 Web サーバーと本番サーバーの同じ PHP ルーター スクリプトの異なる動作を調整します:

  1. $ php -S localhost:8000 router.php
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  1. // router.php
  2. if (php_sapi_name() == 'cli-server') {
  3. /* route static assets and return false */
  4. }
  5. /* go on with normal index.php operations */
  6. ?>
ログイン後にコピー

この内蔵 Web サーバーは、いくつかの標準 MIME タイプを認識できます。リソース、および拡張子は .css、.gif、.htm、.html、.jpe、.jpeg、.jpg、.js、.png、.svg、および .txt です。 .htm および .svg 拡張子のサポートは、PHP 5.4.4 以降でのみサポートされます。

例 #5 サポートされていないファイル タイプの処理

Web サーバーでサポートされていない MIME ファイル タイプを正しく処理できるようにするには、次の手順を実行します:

  1. $ php -S localhost:8000 router.php
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  1. // router.php
  2. $path = pathinfo($_SERVER["SCRIPT_FILENAME"]);
  3. if ($path["extension"] == "ogg") {
  4. header("Content-Type: video/ogg");
  5. readfile($_SERVER["SCRIPT_FILENAME"]);
  6. }
  7. else {
  8. return FALSE;
  9. }
  10. ?>
ログイン後にコピー

内蔵 Web サーバーにリモートでアクセスしたい場合は、起動コマンドを以下に変更されました:

例 #6 この組み込み Web サーバーへのリモート アクセス

  1. $ php -S localhost:8000 router.php
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

したがって、ポート 8000 を介してこの組み込み Web サーバーにリモート アクセスできます

上記では、Web サーバーの内容も含めて、PHP 54 の組み込み Web サーバーを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!