はじめに
一歩先へ進むための5つのPHPビルトインサーバーの使い方について、今日は語ります。
PHPは、Web開発でよく使われるプログラミング言語であり、そのビルトインサーバー(組み込みサーバー)は開発作業を手軽に始めるのに便利です。
この記事を読むと、PHPビルトインサーバーの設定、使い方、そして万が一のトラブル発生時の対処法、さらにはカスタマイズ方法まで理解することができるでしょう。
サンプルコードと共に紹介しますので、あなたもすぐに試すことができますよ。
●PHPビルトインサーバーとは
PHPビルトインサーバーとは、PHP 5.4.0から導入された機能で、PHP自体がWebサーバーの役割を果たすものです。
これにより、ApacheなどのWebサーバーソフトウェアをインストールせずに、PHPコードを実行できます。
主に開発時のテスト環境として使用され、本番環境には向きません。なぜなら、パフォーマンスやセキュリティなど、本番環境で求められる機能が一部欠けているからです。
●PHPビルトインサーバーの設定方法
PHPビルトインサーバーを使用するためには特別な設定は必要ありません。
PHPがインストールされていて、ターミナル(コマンドプロンプト)からPHPを実行できる状態であれば使用可能です。
○サンプルコード1:PHPビルトインサーバーの起動
PHPビルトインサーバーを起動するためには、ターミナルから下記のコマンドを実行します。
この例では、ポート8080でサーバーを起動しています。
実行後、ブラウザから http://localhost:8080
にアクセスすると、PHPビルトインサーバーが動作していることが確認できます。
●PHPビルトインサーバーの使用方法
PHPビルトインサーバーは静的なHTMLファイルやPHPファイルを扱うことが可能です。
それぞれ試してみましょう。
○サンプルコード2:PHPビルトインサーバーで静的なHTMLファイルを扱う
まずは、静的なHTMLファイルを扱う例です。
同じディレクトリに index.html
ファイルを作成し、次のようなHTMLを記述します。
この状態でサーバーを起動し、ブラウザからアクセスすると “Hello, World!” と表示されます。
○サンプルコード3:PHPビルトインサーバーでPHPファイルを扱う
次に、PHPファイルを扱う例を見てみましょう。
同じディレクトリに index.php
ファイルを作成し、次のようなPHPコードを記述します。
この状態でサーバーを起動し、ブラウザからアクセスすると “Hello, PHP World!” と表示されます。
●PHPビルトインサーバーのトラブルと対処法
PHPビルトインサーバーの使い方に慣れてくると、様々なトラブルに遭遇する可能性があります。
その中でも、特によくあるトラブルとその対処法をここでは紹介します。
○サンプルコード4:ポートが既に使用されている場合の対処法
PHPビルトインサーバーを起動しようとした時、すでに使用中のポートを指定してしまうと、サーバーは起動できません。
そのような場合、他のアプリケーションがそのポートを使用している可能性があります。
そのため、別のポートを指定するか、そのポートを使用しているアプリケーションを停止する必要があります。
このコードでは、最初にポート8080でビルトインサーバーを起動しようと試みています。
しかし、既に使用中の場合はエラーメッセージが表示されます。
そこで、次にポート8081を指定してビルトインサーバーを起動しています。これで問題なくサーバーが起動できます。
●PHPビルトインサーバーのカスタマイズ方法
PHPビルトインサーバーはカスタマイズも可能です。
ここでは、リクエストに応じて動的にルーティングを変更する方法を紹介します。
ルーティングとは、URLに応じて適切なコンテンツを表示するための道筋を決めることです。
○サンプルコード5:ルーティングのカスタマイズ
ルーティングをカスタマイズするためには、サーバー起動時にルーティングを行うスクリプトファイル(ここではrouter.phpとします)を指定します。
下記のコードは、”/api”で始まるURLへのリクエストをapi.phpに、それ以外のリクエストはindex.phpにルーティングする例です。
このコードではrouter.phpを用いてリクエストのURLに応じてルーティングを変更しています。
/apiで始まるURLのリクエストは、api.phpにルーティングされます。それ以外のリクエストはindex.phpにルーティングされます。
まとめ
以上、PHPビルトインサーバーの設定、使用方法、トラブル対処法、カスタマイズ方法を解説しました。
これらの知識を持っていれば、PHPビルトインサーバーをより効果的に活用することが可能です。
これからの開発に是非活用してください。