0
0

More than 1 year has passed since last update.

【忘却録】Dockerで即席PHP環境を構築する方法

Last updated at Posted at 2022-11-20

某案件で「Apache+PHP+MySQL」の環境が必要になったので、Dockerで作成する。

【PC情報】

・macOS Monterey(バージョン 12.5)

【ディレクトリ構成】

ディレクトリ
Application
├── app
  └── index.php

├── docker-compose.yml

├── mysql

└── php

    ├── Dockerfile

    └── php.ini

【前提】

・dockerが入っていること

dockerが自分のPC環境に入っているかは、バージョンを確認する方法が手っ取り早いです。
下記、コマンドをたたいて色々でてきたらOK

docker 確認方法
docker -v

あと、個人的にコマンドたたくの苦手な方は、「Docker Desktop」をインストールすると、コンテナの立ち上げ状況や「起動」「停止」といった操作が楽になるかも?です。
↓ ↓
Docker Desktop

【手順】

1.Dockerfileを作成する。

phpフォルダ配下のDockerfileに以下を入力します。
※下記、「volumes:」以下で設定しているURLは、自分の開発環境に合わせてパスを変更して下さい。

php/Dockerfile にて
FROM php:7.4-apache 

RUN apt-get update && apt-get install -y libonig-dev && \

  docker-php-ext-install pdo_mysql mysqli mbstring

2.docker-compose.ymlを作成する。

docker-compose.ymlファイルに下記の設定を記載していきます。

php/Dockerfile にて
version: '3'
services:

#MySQL用コンテナ
  mysql:
    container_name: mysql
    image: mysql:5.7
    volumes:
      - /Users/****/Application/mysql:/var/lib/mysql
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=test
      - MYSQL_USER=test
      - MYSQL_PASSWORD=test

#phpMyAdmin用コンテナ
  phpmyadmin:
    container_name: phpMyAdmin
    depends_on:
      - mysql
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_HOST: mysql
    restart: always
    ports:
      - "80:80"

#php用コンテナ
  php:
    container_name: php-apache
    build: ./php
    volumes:
      - /Users/****/Application:/var/www/html
    ports:
      - 8080:80
    depends_on:
      - mysql

3.コンテナ作成、動作確認

Dockerfileとdocker-compose.ymlファイルの作成が完了したら、lamp-dockerフォルダ直下で下記コマンドを実行してください。

Application直下にて
docker-compose up -d

index.php追記に下記内容を追記

echo 'hello world';

保存できたら、ブラウザから下記リンクにアクセスしてください。
 ※先程、index.phpで記載した「hello world」がでていればOK

http://localhost:8080/app/index.php

phpMyAdomin
下記リンクで、phpMyAdminのログイン画面を表示されることも確認。

http://localhost:80

完了!

参考サイト様

XAMPPとは違う?DockerでのPHP環境構築方法を解説

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0