DockerでPHP開発環境を整える。
はじめに
先日PHPの開発案件が発生しました。ローカル環境にPHP開発環境を整えるため、Dockerにて整えてみようと思います。利用マシンはMacです。
Dockerとは?
Dockerについて説明したいのですが、すみません、説明するとかなーり長くなるので今回は省きます。下記のさくらの記事が詳しく書いてあったので最初に見ていていただくと良いかもしてません。
Docker for Macのインストール
今回はMacでの作業となるので、先にDocker for Macを下記よりインストールします。
ログインが必要になるので、アカウントを作成してからダウンロードしてください。
インストール完了したら、正しくインストールされているか確認するためコマンドラインより下記コマンドを実行してみてください。
docker version
Version等が表示されればOKです。
Dockerによる環境構築方法
今回は開発にあたり下記をインストールします。
・nginx
・PHP
・MySQL
・PHPMyAdmin
上記をDockerで用意する方法ですが、今回は『docker-compose.yml』を利用してインストールしようと思います。
ファイル・ディレクトリの準備
まずはディレクトリを作成します。今回は「samplePJ」というディレクトリを作成します。
次にsamplePJディレクトリ内にファイルとディレクトリを作成します。下記のように作成してください。
samplePJ
├── docker-compose.yml
├── mysql
│ └── data
├── nginx
│ └── nginx.conf
├── php
│ ├── Dockerfile
│ └── php.ini
└── www
└── html
└── index.php
各ファイルの作成
それでは先ほど作成したファイルの中身を作成していきます。
・docker-compose.yml
docker-compose.ymlの中身を作成します。こちらに書かれた内容をもとに環境が構築されるようになります。
version: '3'
services:
nginx:
image: nginx:latest
ports:
- 8080:80
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
- ./www/html:/var/www/html
depends_on:
- php
php:
build: ./php
volumes:
- ./www/html:/var/www/html
depends_on:
- db
db:
image: mysql:5.7.22
ports:
- 13306:3306
volumes:
- ./mysql:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: secret
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
ports:
- 8888:80
depends_on:
- db
・nginx/nginx.conf
server {
listen 80;
server_name _;
root /var/www/html;
index index.php index.html;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
・php/Dockerfile
FROM php:7.3-fpm
COPY php.ini /usr/local/etc/php/
・php.ini
date.timezone = "Asia/Tokyo"
・www/html/index.php
<?php
phpinfo();
?>
以上です。
コンテナを起動する。
ファイルの作成が完成したら、コンテナを起動します。
ターミナルを開き、作成した『samplePJ』内に移動します。
cd samplePJ
次に、samplePJ内で下記実行します。こちらの実行で、Nginx、PHP、Mysqlがインストールされます。
docker-compose up -d
下記のように表示されればOKです。
停止する場合は下記コマンドを実行してください。
docker-compose stop
サイトにアクセス
それではサイトにアクセスします。下記にアクセスしてください。
php.iniの情報が表示されていればOKです。
また、下記でPHPMyAdminにアクセスできます。
ユーザ名: root
パスワード:secret
でログインできます。
以上です。
感想
ということでDockerでのPHP環境構築完了です。想像よりも楽にできましたが、まだまだDockerについての理解が低いなと感じています。もう少しDockerについての学習も進めていく予定。
GitHubリポジトリ
今回作成したソースはGithubにて公開しています。下記リンクよりご確認ください。(L1ブランチです。)
間違いや、もっとこう書いた方が良いよ!といったご指摘はコメント欄かtwitterのDMいただけると喜びます!