一歩先へ進むための5つのPHPビルトインサーバーの使い方

PHPビルトインサーバーの使い方を解説する画像 PHP
この記事は約5分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

一歩先へ進むための5つのPHPビルトインサーバーの使い方について、今日は語ります。

PHPは、Web開発でよく使われるプログラミング言語であり、そのビルトインサーバー(組み込みサーバー)は開発作業を手軽に始めるのに便利です。

この記事を読むと、PHPビルトインサーバーの設定、使い方、そして万が一のトラブル発生時の対処法、さらにはカスタマイズ方法まで理解することができるでしょう。

サンプルコードと共に紹介しますので、あなたもすぐに試すことができますよ。

●PHPビルトインサーバーとは

PHPビルトインサーバーとは、PHP 5.4.0から導入された機能で、PHP自体がWebサーバーの役割を果たすものです。

これにより、ApacheなどのWebサーバーソフトウェアをインストールせずに、PHPコードを実行できます。

主に開発時のテスト環境として使用され、本番環境には向きません。なぜなら、パフォーマンスやセキュリティなど、本番環境で求められる機能が一部欠けているからです。

●PHPビルトインサーバーの設定方法

PHPビルトインサーバーを使用するためには特別な設定は必要ありません。

PHPがインストールされていて、ターミナル(コマンドプロンプト)からPHPを実行できる状態であれば使用可能です。

○サンプルコード1:PHPビルトインサーバーの起動

PHPビルトインサーバーを起動するためには、ターミナルから下記のコマンドを実行します。

この例では、ポート8080でサーバーを起動しています。

// ターミナルでのコマンド実行
php -S localhost:8080

実行後、ブラウザから http://localhost:8080 にアクセスすると、PHPビルトインサーバーが動作していることが確認できます。

●PHPビルトインサーバーの使用方法

PHPビルトインサーバーは静的なHTMLファイルやPHPファイルを扱うことが可能です。

それぞれ試してみましょう。

○サンプルコード2:PHPビルトインサーバーで静的なHTMLファイルを扱う

まずは、静的なHTMLファイルを扱う例です。

同じディレクトリに index.html ファイルを作成し、次のようなHTMLを記述します。

<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
  <title>Test Page</title>
</head>
<body>
  <h1>Hello, World!</h1>
</body>
</html>

この状態でサーバーを起動し、ブラウザからアクセスすると “Hello, World!” と表示されます。

○サンプルコード3:PHPビルトインサーバーでPHPファイルを扱う

次に、PHPファイルを扱う例を見てみましょう。

同じディレクトリに index.php ファイルを作成し、次のようなPHPコードを記述します。

<!-- index.php -->
<?php
echo "Hello, PHP World!";
?>

この状態でサーバーを起動し、ブラウザからアクセスすると “Hello, PHP World!” と表示されます。

●PHPビルトインサーバーのトラブルと対処法

PHPビルトインサーバーの使い方に慣れてくると、様々なトラブルに遭遇する可能性があります。

その中でも、特によくあるトラブルとその対処法をここでは紹介します。

○サンプルコード4:ポートが既に使用されている場合の対処法

PHPビルトインサーバーを起動しようとした時、すでに使用中のポートを指定してしまうと、サーバーは起動できません。

そのような場合、他のアプリケーションがそのポートを使用している可能性があります。

そのため、別のポートを指定するか、そのポートを使用しているアプリケーションを停止する必要があります。

// 既に使用中のポート8080を指定しようとすると、エラーメッセージが出ます
php -S localhost:8080
// 別のポート、例えば8081を指定してみましょう
php -S localhost:8081

このコードでは、最初にポート8080でビルトインサーバーを起動しようと試みています。

しかし、既に使用中の場合はエラーメッセージが表示されます。

そこで、次にポート8081を指定してビルトインサーバーを起動しています。これで問題なくサーバーが起動できます。

●PHPビルトインサーバーのカスタマイズ方法

PHPビルトインサーバーはカスタマイズも可能です。

ここでは、リクエストに応じて動的にルーティングを変更する方法を紹介します。

ルーティングとは、URLに応じて適切なコンテンツを表示するための道筋を決めることです。

○サンプルコード5:ルーティングのカスタマイズ

ルーティングをカスタマイズするためには、サーバー起動時にルーティングを行うスクリプトファイル(ここではrouter.phpとします)を指定します。

下記のコードは、”/api”で始まるURLへのリクエストをapi.phpに、それ以外のリクエストはindex.phpにルーティングする例です。

// router.php
<?php
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
if (preg_match('/^\/api/', $path)) {
    return false;    // api.phpにルーティング
} else {
    include 'index.php';   // それ以外はindex.phpにルーティング
}
// サーバー起動時にrouter.phpを指定します
php -S localhost:8080 router.php

このコードではrouter.phpを用いてリクエストのURLに応じてルーティングを変更しています。

/apiで始まるURLのリクエストは、api.phpにルーティングされます。それ以外のリクエストはindex.phpにルーティングされます。

まとめ

以上、PHPビルトインサーバーの設定、使用方法、トラブル対処法、カスタマイズ方法を解説しました。

これらの知識を持っていれば、PHPビルトインサーバーをより効果的に活用することが可能です。

これからの開発に是非活用してください。