PHP 5.4.0 以降、PHP には Web サーバーが組み込まれています。これは、PHP アプリケーションをプレビューするために Apache または Nginx が必要だと考えている開発者向けのもう 1 つの隠れた機能です。この組み込み Web サーバーは運用環境では使用しないでください。ただし、ローカル開発には優れたツールです。 Laravel Valet は当初この組み込みサーバーを使用していましたが、バージョン 1.1.0 以降は Caddy に置き換えられました (関連ニュースを参照)。
を起動します。この組み込み Web サーバーは簡単に起動できます。ターミナル (Windows では cmd コマンド ライン) を開き、プロジェクトのルート ディレクトリに入り、次のコマンドを実行します。 🎜>
php -S localhost:8000上記のコマンドは新しい PHP Web サーバーを起動します。アドレスは localhost、リスニング ポートは 8000、現在のディレクトリは Web サーバーのルート ディレクトリです。
次に、ブラウザを開いて http://localhost:8000 にアクセスして、アプリケーションをプレビューします。 Web ブラウザでアプリを閲覧すると、各 HTTP リクエストに関する情報が端末の標準出力に記録されるため、アプリが 404 応答または 500 応答をスローしたかどうかを確認できます。同じ LAN 内の別のデバイス (iPad やローカル仮想マシンなど) からこのサーバーにアクセスする必要がある場合、localhost を 0.0.0.0 に変更し、PHP Web サーバーがすべてのインターフェイスでリッスンできるようにします。
Web サーバーを停止するには、ターミナルを閉じるか、Ctrl+C ショートカット キーを押します。
2. 構成
アプリケーションは、多くの場合、専用の PHP 構成ファイルを使用する必要があります。特に、メモリ使用量、ファイルのアップロード、分析、またはバイトコード キャッシュに特別な要件がある場合は、個別に構成する必要があります。 -c オプションを使用すると、PHP 組み込みサーバーで指定された構成ファイルを使用できるようになります。
php -S 0.0.0.0:8000
3. ルーティング スクリプト
PHP 組み込みサーバーは、この欠点を補うためにルーティング スクリプトを使用します。結果が false の場合は、このルーティング スクリプトが最初に実行されます。それ以外の場合は、HTTP リクエストが返されます。それ以外の場合は、ルーティング スクリプトの実行結果が HTTP レスポンスボディとして返されます。つまり、ルーティング スクリプトは実際には .htaccess と同じように機能します。
php -S localhost:8000 -c app/config/php.ini
ルーティング スクリプトについては、興味があります。学生は、LaravelValet の基礎となる server.php をダウンロードして学習できます (https://github.com/laravel/valet/blob/master/server.php)。
4. 判定関数
サーバーごとに異なる応答ヘッダーを設定できるように、PHP スクリプトが PHP の組み込み Web サーバーを使用するか、従来の Web サーバーを使用するかを知る必要がある場合があります。 php_sapi_name() 関数を使用して、どの PHP Web サーバーが使用されているかを確認できます。現在のスクリプトが PHP 組み込みサーバーを使用している場合、この関数は文字列 cli-server:
php -S localhost:8000 router.php
を返します。
<?phpif (php_sapi_name() == ‘cli-server') { // PHP 内置 Web 服务器} else { // 其他Web服务器}パフォーマンスが悪い。一度に処理できるリクエストは 1 つだけであり、他のリクエストはブロックされます。特定のプロセス (データベース クエリ、リモート API 呼び出し) に長時間かかると、Web アプリケーション全体が停止します。
ルーティング スクリプトは少量の URL 書き換えのみをサポートしており、より高度な URL 書き換えには Apache または Nginx が必要です。