PHPは1995年の登場以来、Web開発の基幹言語として進化を続けてきました。
2026年現在、PHP 8.x系から9.x系への移行が進む中で、その実行方法はかつてのような「サーバーにファイルをアップロードするだけ」という単純なものから、開発効率とスケーラビリティを重視した多様なスタイルへと変貌を遂げています。
これからPHPを学ぶ初心者の方から、最新のインフラ環境へのデプロイを検討しているエンジニアの方まで、現在のPHP開発において主流となっている「4つの実行方法」を詳しく解説します。
それぞれのメリット・デメリットを理解し、プロジェクトに最適な手法を選択できるようになりましょう。
1. CLI(コマンドラインインターフェース)での実行
PHPはWebブラウザを通じて動かすものというイメージが強いですが、実はコマンドライン上での実行(CLI)は、開発プロセスにおいて最も頻繁に利用される方法の一つです。
CLI実行の基本操作
PHPがインストールされている環境であれば、ターミナル(Windowsの場合はコマンドプロンプトやPowerShell、macOS/Linuxの場合はターミナル)を開き、以下のコマンドを入力することでPHPのバージョンを確認できます。
# PHPのバージョンを確認する
php -v
PHP 9.0.2 (cli) (built: Mar 15 2026 10:00:00) (NTS)
Copyright (c) The PHP Group
Zend Engine v5.0.2, Copyright (c) Zend Technologies
実際にPHPファイルを実行するには、phpコマンドの後にファイル名を指定します。
<?php
// hello.php
echo "PHPの世界へようこそ!現在の時刻は " . date('Y-m-d H:i:s') . " です。\n";
このファイルを以下のコマンドで実行します。
php hello.php
PHPの世界へようこそ!現在の時刻は 2026-05-10 14:30:05 です。
CLIを利用するメリット
CLIでの実行は、バッチ処理やスケジュールタスク(Cron)に最適です。
Webサーバーを介さないためオーバーヘッドが少なく、大量のデータ処理やシステムメンテナンス用のスクリプト実行に向いています。
また、近年のフレームワーク(LaravelやSymfonyなど)では、専用のCLIツール(Artisanなど)を使用して、コード生成やデータベースのマイグレーションを行うのが一般的です。
インタラクティブモードとワンライナー
PHPには、コードを1行ずつ実行して結果を確認できるインタラクティブモード(php -a)や、ファイルを作成せずに直接実行するワンライナー(php -r)も用意されています。
# ワンライナーで設定情報を確認する
php -r "phpinfo();" | grep "memory_limit"
2. ローカル開発環境での実行
Webアプリケーションを開発する際、自分のPC上で動作を確認するための環境が必要です。
2026年現在、ローカル環境構築の主流はコンテナ技術(Docker)を活用した方法に移り変わっています。
Dockerによる環境構築
かつてはXAMPPやMAMPといったオールインワンパッケージが主流でしたが、現在はdocker-composeを利用して、本番環境に近い構成をローカルに再現するのが標準的です。
以下は、PHPを実行するための最小限のdocker-compose.ymlの例です。
services:
app:
image: php:9.0-apache
volumes:
- ./src:/var/www/html
ports:
- "8080:80"
この設定ファイルがあるディレクトリで docker compose up -d を実行するだけで、localhost:8080 でアクセス可能なPHP環境が整います。
OSを汚さず、プロジェクトごとにPHPのバージョンを切り替えられる点が最大の利点です。
ビルトインウェブサーバーの活用
もっと手軽にWebブラウザでの動作を確認したい場合は、PHP自体に内蔵されているビルトインウェブサーバー機能が便利です。
ApacheやNginxを個別に設定することなく、コマンド一つで簡易的なサーバーを起動できます。
# プロジェクトのルートディレクトリで実行
php -S localhost:8000
起動後、ブラウザで http://localhost:8000 にアクセスすると、カレントディレクトリ内の index.php が実行されます。
これはあくまで開発用であり、本番環境で使用してはいけないことに注意してください。
フレームワーク専用ツールの利用
特定のフレームワークを使用している場合、より高度なローカル実行環境が提供されています。
- Laravel Herd: macOSおよびWindows向けの超高速なPHP開発環境。Dockerなしで動作し、管理が非常に容易です。
- Laravel Sail: Dockerをバックエンドに使用しつつ、コマンド一つで環境を立ち上げられるツールです。
3. Webサーバー(Nginx / Apache)での実行
本番環境のWebサーバーでPHPを動作させる場合、伝統的なApacheモジュール方式よりも、PHP-FPM(FastCGI Process Manager)を利用した構成が現代のスタンダードです。
PHP-FPMとNginxの連携
2026年現在の高トラフィックなWebサイトでは、リバースプロキシとしてNginxを配置し、PHPの処理をバックエンドのPHP-FPMに投げる構成が一般的です。
これにより、静的ファイルの配信はNginxが高速に行い、動的な処理のみをPHPが担当するという役割分担が可能になります。
以下に、Nginxの設定ファイル(default.conf)の断片を示します。
server {
listen 80;
server_name example.com;
root /var/www/html/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHPファイルへのリクエストをPHP-FPMに転送
location ~ \.php$ {
fastcgi_pass app:9000; # PHP-FPMのコンテナ名やソケットパス
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
| 構成要素 | 役割 | 特徴 |
|---|---|---|
| Nginx | Webサーバー / プロキシ | 軽量・高速。静的ファイルの処理に長けている。 |
| PHP-FPM | PHP実行プロセス | リクエストごとにプロセスを使い回し、メモリ効率が良い。 |
| Unix Socket / TCP | 通信経路 | NginxとPHP-FPMを繋ぐパイプライン。 |
なぜApacheではなくNginxなのか
Apacheも依然として広く使われていますが、C10K問題(同時接続数増大によるパフォーマンス低下)への耐性や、メモリ消費の少なさから、大規模なPHPアプリケーションではNginx + PHP-FPMの組み合わせが推奨されます。
ただし、.htaccessを利用した柔軟なディレクトリ制御が必要な小規模プロジェクトでは、現在もApacheが有力な選択肢となります。
4. クラウド・サーバーレス環境での実行
近年のインフラ環境の変化に伴い、サーバーの管理を意識せずにPHPを実行する手法が増えています。
これにより、開発者はコードを書くことだけに集中できるようになりました。
PaaS(Platform as a Service)での実行
Heroku、Railway、RenderなどのPaaSを利用すると、ソースコードをGitでプッシュするだけで、自動的にビルドとデプロイが行われます。
- リポジトリに
composer.jsonを含める。 - GitリポジトリをPaaSに接続する。
- 自動的にPHP環境がプロビジョニングされ、公開URLが発行される。
この方法は、インフラのセットアップ時間を大幅に短縮できるため、スタートアップやプロトタイプ開発において非常に強力です。
サーバーレス(Function as a Service)での実行
2026年、PHPはサーバーレス環境でも第一線で活躍しています。
特にAWS LambdaでPHPを動かすためのツールキットBrefの普及により、スケーラビリティを極限まで高めた運用が可能になりました。
<?php
// AWS Lambdaで実行されるPHPコードの例
require __DIR__ . '/vendor/autoload.php';
use Bref\Context\Context;
use Bref\Event\Http\HttpRequestEvent;
use Bref\Event\Http\HttpResponse;
return function (HttpRequestEvent $event, Context $context) {
return new HttpResponse('<h1>Hello from Serverless PHP!</h1>', [
'Content-Type' => 'text/html',
]);
};
サーバーレスのメリットは、アクセスがない時間はコストが発生しないことと、リクエストが急増しても自動的にインスタンスが増殖して対応してくれる点にあります。
APIのバックエンドや画像処理などのマイクロサービスに適した実行方法です。
実行環境を切り替える際の注意点
どの方法でPHPを実行する場合でも、必ず意識しておくべき設定項目があります。
それは php.ini の管理です。
開発環境と本番環境の違い
実行方法によって、読み込まれる設定ファイルが異なる場合があります。
特に以下の項目は、環境ごとに適切に設定する必要があります。
- display_errors: 開発環境では
Onにしてエラーを画面に表示させますが、本番環境ではセキュリティの観点から必ず Off にし、ログに出力するようにします。 - memory_limit: CLIでの実行時は大きく(あるいは無制限に)設定し、Webサーバー経由の場合はサーバー全体のメモリを圧迫しないよう適切な制限を設けます。
- opcache.enable: 本番環境でのパフォーマンス向上のためには必須の設定です。PHP 8以降ではJIT(Just-In-Time)コンパイルもこの設定に含まれます。
依存関係の管理
どの実行環境においても、PHP本体だけでなくComposerによるライブラリ管理が欠かせません。
実行環境(DockerやPaaS)を構築するプロセスの中に、必ず composer install を組み込むようにしましょう。
まとめ
2026年におけるPHPの実行方法は、開発のフェーズや目的、要求されるスケールに応じて多岐にわたります。
- CLI: スクリプト、自動化タスク、フレームワークのコマンド操作に。
- ローカル開発環境(Docker等): チーム開発や環境の再現性を重視する場合に。
- Webサーバー(Nginx + PHP-FPM): 安定したパフォーマンスが求められる従来の本番環境に。
- クラウド・サーバーレス: 運用負荷を軽減し、柔軟な拡張性を求めるモダンな開発に。
PHPは進化の過程で、古い仕様を捨て新しいアーキテクチャを積極的に取り込んできました。
JITコンパイルの導入や、型システムの強化、そして今回紹介したような多様なデプロイオプションにより、PHPは単なる「Web用のスクリプト言語」を超え、エンタープライズ領域でも十分に戦える堅牢な言語へと成長しています。
まずは自分の目的が「学習」なのか「プロダクトの開発」なのか、あるいは「特定タスクの自動化」なのかを明確にし、本記事で紹介した中から最適な実行方法を選択してください。
環境構築は最初の一歩ですが、ここを正しく理解し設定できることが、優れたエンジニアへの近道となります。
