見出し画像

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

スクリーンショット 2019-10-09 5.32.42

スクリーンショット 2019-10-09 9.55.09

スクリーンショット 2019-10-09 9.55.15

スクリーンショット 2019-10-09 9.55.20

スクリーンショット 2019-10-09 9.55.32


各ファイルの作成

それでは先ほど作成したファイルの中身を作成していきます。

・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です。

スクリーンショット 2019-10-09 10.03.56

停止する場合は下記コマンドを実行してください。

docker-compose stop


サイトにアクセス

それではサイトにアクセスします。下記にアクセスしてください。

http://localhost:8080/

php.iniの情報が表示されていればOKです。

スクリーンショット 2019-10-09 10.05.00

また、下記でPHPMyAdminにアクセスできます。

http://localhost:8888/

スクリーンショット 2019-10-09 10.18.52

ユーザ名: root
パスワード:secret

でログインできます。

以上です。


感想

ということでDockerでのPHP環境構築完了です。想像よりも楽にできましたが、まだまだDockerについての理解が低いなと感じています。もう少しDockerについての学習も進めていく予定。


GitHubリポジトリ

今回作成したソースはGithubにて公開しています。下記リンクよりご確認ください。(L1ブランチです。)

間違いや、もっとこう書いた方が良いよ!といったご指摘はコメント欄かtwitterのDMいただけると喜びます!

読んでいただきありがとうございます。