DockerでPHPを扱う方法|ファイルやコマンドの実例付き

※本サイトにはプロモーション・広告が含まれています。

(最終更新月:2023年8月)

✔以下のような疑問をお持ちの方へ向けて情報を提供します

「DockerとPHPを同時に使って開発したいけど、どうすればいい?」

「DockerとPHPの具体的な使い方を知りたい」

「Docker PHPの操作例を学びたい」

✔当記事を通してお伝えする内容

  • DockerでのPHPセットアップ
  • DockerとPHPの統合方法やその実践例
  • Docker PHPの実戦的な例

当記事では、DockerとPHPを一体化する基本に加えて、それらのツールを活用した詳細な操作方法まで、適用事例を交えて細かく説明いたします。

ぜひ最後までお読みいただき、DockerとPHPを有効に利用する参考にしてください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Dockerとその主要性について

こちらでは、「Docker」についてお伝えしていきます。

まずはDockerの基本をおさらいし、先へ進みましょう。

  • Dockerの基礎説明
  • Docker利用のメリットと注意点

Dockerの基礎説明

Dockerは、ソフトウェア開発におけるコンテナ技術のひとつです。

コンテナは、ひとつのオペレーティングシステム上で独立した環境を作成します。

ソフトウェアとその依存関係を一緒にパッケージ化し、システム間で共通した環境が構築可能です。

Docker利用のメリットと注意点

Dockerの利用によるメリットは以下のとおりです。

  • 環境構築の複雑さを減らし、開発時間を短縮できる
  • 開発環境の再現性が確保されるため、開発者間での作業の一貫性が向上する

セキュリティ面での考慮が必要で、それぞれのコンテナが適切に分離されていることの確認が重要です。

実践!DockerとPHPによるプロジェクト作り

それでは、DockerとPHPを使用したプロジェクトの作成について説明します。

PHPでのプロジェクトを実行する前段階です。

  • Dockerの使用に必要な条件
  • スムーズなDockerのインストール方法
  • Dockerで使える主要なコマンド
  • Docker Composeの利用とその重要性
  • プロジェクトで使用するリソースの準備

Dockerの使用に必要な条件

Dockerを使用するには、まずオペレーティングシステムが64ビットで、バージョンが最新であることが必要です。

また、仮想化が有効になっていることを確認する必要があります。

スムーズなDockerのインストール方法

Dockerの公式ウェブサイトから、各オペレーティングシステム用のインストーラをダウンロードできます。

インストール後に、docker versionコマンドを実行し、Dockerが正しくインストールされたことを確認しましょう。

詳しくはこちらをご覧ください。

Dockerで使える主要なコマンド

Dockerには多くのコマンドがありますが、最も一般的なものは以下のとおりです。

  • docker pullはDockerイメージを取得
  • docker runは新たにコンテナを作成して実行
  • docker stopは実行中のコンテナを停止

これらのコマンドを使うことで、Dockerの環境を管理できます。

Docker Composeの利用とその重要性

Docker Composeは、複数のDockerコンテナを管理するツールです。

ひとつのYAMLファイルで、複数のサービスの設定を管理できます。

Docker Composeを使うと、一連のコマンドをひとつのコマンドで実行できるので、効率性が大幅に向上します。

プロジェクトで使用するリソースの準備

PHPプロジェクトを作成するには、必要なライブラリやフレームワークの準備が必要です。

これらのリソースは通常、composer.jsonファイルを使って管理され、composer installコマンドでインストールできます。

composerがインストールされているかは以下で確認しましょう。

composer -v

PHPとDockerを連携させる

DockerとPHPを連携させる方法を学ぶことで、より効率的な開発が可能となります。

  • PHPを動かすためのDocker設定
  • PHP環境の立ち上げと設定
  • 必要なDockerfileの作成方法と実践

PHPを動かすためのDocker設定

まず、PHPを動かすためのDockerコンテナをセットアップします。

docker pullコマンドで、最新のPHPイメージを取得しましょう。

$ docker pull php:latest

これにより、自分のマシンにPHPの環境をインストールせずに、Dockerコンテナ内でPHPを動かすことが可能となります。

dockerのpullコマンドについてはこちらをご覧ください。

PHP環境の立ち上げと設定

次に、PHPを動かすためのDockerコンテナを起動します。

以下のコマンドは、取得したPHPイメージを使用して、コンテナを起動します。

$ docker run -i php

-iでシェルを立ち上げます。

これにより、Dockerコンテナのシェルと対話形式でPHPコードのやり取りが可能です。

必要なDockerfileの作成方法と実践

Dockerfileは、Dockerイメージの作成手順を定義するためのファイルです。

以下は、基本的なPHP環境をセットアップするDockerfileの一例です。

FROM php:apache

WORKDIR /var/www/html

COPY . /var/www/html

RUN docker-php-ext-install pdo_mysql

Dockerファイルの解説です。

  • php:apacheイメージをベースにする
  • 作業ディレクトリを/var/www/htmlに設定する
  • ホストマシンのカレントディレクトリの内容を/var/www/htmlディレクトリにコピー
  • pdo_mysql拡張機能をインストール

このDockerfileを元にDockerイメージをビルドするには、以下のコマンドを実行します。

$ docker build -t my-php-app .

my-php-appという名前のDockerイメージが作成され、それを元にコンテナを起動できます。

PHPプロジェクトのビルドとテスト

ここでは、具体的にPHPプロジェクトをDocker環境でビルドし、テストする方法を説明します。

  • docker-compose.ymlの作成方法と活用
  • PHPのテストファイル作成
  • アプリケーションの起動と動作確認

docker-compose.ymlの作成方法と活用

docker-composeは、複数のDockerコンテナの管理を簡単にするツールです。

docker-compose.ymlという設定ファイルに、コンテナ起動の指示を書いていきます。

以下は、PHPとMySQLを連携させるための基本的なdocker-compose.ymlの例です。

version: '3'
services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8080:80"
    volumes:
      - .:/var/www/html
  db:
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

この設定ファイルでは、2つのサービス(webdb)が定義されています。

各パートは以下のようになります。

サービス詳細設定内容
web– Dockerfileを使用してビルド– ホストの8080 → コンテナの80 (ポートマッピング)
– カレントディレクトリ → コンテナの/var/www/html
db– 最新のMySQLイメージを使用– ルートユーザのパスワード設定
– 名前付きボリュームdb_dataを使用 (データ永続化)

この設定により、docker-compose.ymlを使用して2つのコンテナ(webとdb)を一度に起動し、それらを連携させることが可能です。

以下のコマンドでDocker Composeを起動します。

$ docker compose up -d

PHPのテストファイル作成

テストファイルを作成することで、アプリケーションが想定どおりに機能することを確認できます。

以下はシンプルなPHPテストファイルの例です。

<?php
use PHPUnit\Framework\TestCase;

class SampleTest extends TestCase
{
    public function testSample()
    {
        $this->assertEquals(2, 1 + 1);
    }
}
?>

このテストは、1 + 1が2に等しいことを確認するシンプルなテストです。

PHPUnitを使用してテストを実行します。

Dockerのコマンドを使用してコンテナ内でテストを実行することもできます。

$ docker exec -it [container-id] ./vendor/bin/phpunit tests

ここで、[container-id]は対象となるコンテナのIDを指します。

これにより、Dockerコンテナ内で直接テストの実行が可能です。

アプリケーションの起動と動作確認

アプリケーションの動作確認は、開発の各ステージで非常に重要です。

Dockerを使用してアプリケーションを起動し、その動作を確認します。

$ docker run -p 8080:80 -d my-php-app

これで、アプリケーションが8080ポートで動作するはずです。

http://localhost:8080

アプリケーションが正しく動作していることを確認します。

まとめ

当記事では、DockerとPHPの使い方についてお伝えしてきました。

  • Dockerとその利用のメリット
  • Dockerのインストールと主要なコマンドの使用方法
  • PHPとDockerを連携させ、PHPの環境をセットアップ
  • PHPのアプリケーションをビルドし、テストを行う方法を学びました。

この手順は、PHPに限らず他の言語でも応用可能です。

ある環境で動作するアプリケーションは、ほかのどの環境でも動作するはずです。

もしエラーに遭遇した場合には、エラーメッセージをよく読み、必要ならばオンラインで情報を検索して解決策を探しましょう。

タイトルとURLをコピーしました