【PHP】第1回:Dockerで始めるPHP入門:環境構築と「動く」までを最短で|Dockerで学ぶ PHP→Laravel 実務入門

   青いPHPエレファント

この記事のゴール

この第1回では、以下をゴールにします。

  • DockerでPHP環境を用意できる
  • PHPファイルをブラウザで表示できる
  • echo / 変数 / 文字列 / 配列の入口まで理解する
  • 次回以降(フォーム・DB)に進める土台ができる

想定読者

  • PHPを少し触ったことがある(完全初心者ではない)
  • ただし「Dockerで動かす」「実務っぽい構成」はまだ不安
  • Laravelに興味がある(次の連載で学ぶ予定)

なぜDockerで統一するのか?

PHPは、ローカル環境の差が出やすい言語です。

  • PHPのバージョン違い
  • 拡張モジュールの有無
  • ApacheかNginxか
  • OSの違い

Dockerで統一すると、この記事通りに進めるだけで

「誰でも同じ環境」
「チームでも同じ環境」
「Laravelにもそのまま繋がる」

このような状態を作ることが可能です。

1. 今回作るDocker構成

今回は最小構成にします。

  • PHP 8.2
  • Apache(最初は簡単なほうを選びます)
  • ローカルの src/ をコンテナにマウントして編集する

※DBは第5回で扱います。

2. ディレクトリを作る

作業用フォルダを作ります。以下はフォルダ構成例になります。

php-basic-series/
├─ docker/
│ └─ php/
│ └─ Dockerfile
├─ src/
│ └─ index.php
└─ docker-compose.yml

3. docker-compose.yml を作成する

プロジェクト直下にymlファイルを作成します。

docker-compose.yml
services:
php:
build: ./docker/php
container_name: php-basic
ports:
- "8080:80"
volumes:
- ./src:/var/www/html

ここでのポイントは次の2つ。

  • 8080:80
    → ブラウザで http://localhost:8080 でアクセスできる
  • ./src:/var/www/html
    → ローカルで編集したPHPが即反映される

4. Dockerfile を作成する

次に Dockerfile を作ります。

docker/php/Dockerfile
FROM php:8.2-apache

RUN apt-get update && apt-get install -y \
git \
unzip \
&& rm -rf /var/lib/apt/lists/*

この時点では最低限の構成にしておきます。
拡張モジュールは後の回で追加します。

5. PHPファイルを作る(index.php)

src/index.php を作成します。

<?php

echo "Hello PHP!";

6. 起動する

プロジェクト直下で以下を実行します。

docker compose up -d --build

7. ブラウザで確認する

以下にアクセスします。

http://localhost:8080

画面に

Hello PHP!

と表示されたら成功です。

8. ここで「PHPの基本」を最短で整理する

ここまでで、一旦Dockerで動くPHP環境ができましたので、ここからはPHPの最小文法を整理します。

8-1. echo(出力)

PHPは「HTMLを出力する」言語です。echoは一番単純な「出力する」命令になります。

<?php
echo "こんにちは";

8-2. 変数

PHPの変数は $ から始まります。

<?php

$name = "田中";
echo $name;

 

8-3. 文字列の結合

PHPでは「 . 」 で文字列を結合する事が可能です。

<?php

$name = "田中";
echo "こんにちは、" . $name . "さん";

8-4. 配列(次回のための入口)

PHPでは以下のように配列を扱うことが可能です。配列の詳細については次回以降で解説します。

<?php

$tasks = ["掃除", "買い物", "筋トレ"];
echo $tasks[0];

9. よくあるつまずき

 

Q1. docker compose up したのに表示されない

  • 8080が他のアプリで使われている可能性があります
  • その場合は docker-compose.yml のポートを変えます

>ports:
- "18080:80"

Q2. PHPを編集しても反映されない

基本的には volumes で即反映されます。
反映されない場合は以下を確認してください。

  • src/index.php の場所が合っているか
  • ブラウザのキャッシュではないか

10. 次回予告

次回(第2回)は、実務で一番使う部分の解説を行います。

  • 配列
  • 連想配列
  • foreach
  • isset / empty の使い分け

そして題材として、タスク管理アプリの制作をしようと思います。

まとめ

この第1回では、

  • DockerでPHPを動かす
  • PHPの最小文法(echo/変数/配列)を確認する

ところまで進めました。
次回からは、PHPで「データを扱う」力を固めていきます。