0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

dockerでのphp開発環境を構築する

Posted at

自宅でもphpについて学びたいと思い、ローカルで開発環境を構築しようと思いました。
MAMPでもいいと思いましたが、せっかくなのでdockerで作ってみたいと思います。
開発中に色々詰まってしまったので備忘録がてらの記述です。

手順

1:dockerによる開発環境構築 2:ファイルディレクトリの準備 3:各ファイルの作成 4:コンテナ起動 5:サイトにアクセス

1:dockerによる開発環境構築

Dockerを使用するには「docker for mac」が必要なんですが、導入方法などはすでにQiitaなどで分かりやすく書かれてる方々がたくさんいますので、今回は割愛させていただきます。

今回はDockerで以下のコンテナを使います。
・nginx
・PHP
・MySQL
・PHPMyAdmin

使用するコンテナが複数あるため今回は「docker compose」を使用していきたいと思います。

2:ファイルディレクトリの準備

まずはDockerを起動するための場所を作成します。 ファイル構造は次のようにします。
php-test
├── docker-compose.yml
├── mysql
│   └── data
├── nginx
│   └── nginx.conf
├── php
│   ├── Dockerfile
│   └── php.ini
└── www
   └── html
       └── index.php

3:各ファイルの作成

下記のファイルを編集して中身を作成していきます。
FROM php:7.2-fpm
COPY php.ini /usr/local/etc/php/
RUN docker-php-ext-install pdo_mysql
php-test/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-test/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
    ports:
      - 13306:3306
    volumes:
      - ./mysql/data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: secret

  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    ports:
      - 8888:80
    depends_on:
      - db
php-test/www/html/index.php
<?php
phpinfo();
?>

4:コンテナ起動

ここまでの作業が終わりましたら、ターミナルから```docker-compose.yml```ファいうがあるディレクトリ移動して```docker-compose up -d```コマンドでコンテナ起動できます。

コンテナを停止したい場合はdocker-compose stopコマンドで停止できます。

5:サイトにアクセス

最後にサイトにアクセスしてみてちゃんと表示されてたら起動完了です。 Webサイト:http://localhost:8080/

お疲れ様でした。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?