LoginSignup
21
25

More than 5 years have passed since last update.

DockerでPHP + Nginx + MySQLの環境を構築する

Last updated at Posted at 2017-08-09

CakePHP3もくもく勉強会に参加してきたので諸々メモです。

レベル感

・業務でPHP触ってたけど触ってただけで何も分からん
・Docker入れてるけど入れてるだけで使っとらん
・XAMPPしか使ったこと無いけどMacでPHPの環境構築どうすんの
・Laravelってオシャレでイケてそうだよね、使ったこと無いけど
・ガチもくもくしてると進捗ゼロで終わると思う

やったこと

・localにワークスペース用ディレクトリ用意した
・Docker for Macインストールした
・docker-compose.ymlを書いた
・docker-compose up -dした
・立ち上がったの確認した

やってないこと

・CakePHP導入してない
・dockerfile書いてない
・何も分からなくて常に質問してたのでもくもくしてない

PHP + Nginx + MySQLの環境構築

・ローカルにテキトーにプロジェクトフォルダ作る

php-projectでもproject1でもhogeでもpiyoでもなんでも

・Docker for Macのインストール

元から導入してたので割愛。テキトーに調べてよしなに。

・環境構築するためのdocker-compose.ymlを書く

docker-compose.yml
version: '2'
services:
  # DB
  mysql:
    container_name: "mysql"
    image: mysql:5.6
    ports:
      - '3306:3306' #デバッグ用
    environment:
      MYSQL_ROOT_PASSWORD: root
  # nginx
  nginx:
    container_name: "nginx"
    image: nginx:1.11
    links:
      - mysql
      - php
  # php
  php:
    container_name: "php"
    image: php:7.1-apache
    ports:
      - '80:80'
    volumes:
      - ./html:/var/www/html
    links:
      - mysql

portsあけてあげないとコンテナにアクセスできない(mysqlの方はデバッグ用に空けてるけど本番に上げるような時は消す)。
imageは全部DockerHub参照。今回のは公式のもの。
linksでそれぞれ紐付けてあげる。
volumes設定しておかないとPHPの実行ファイル置けない。

・立ち上げから動作確認まで

作業ディレクトリに移動

$ cd php-project/

起動

$ docker-compose up -d

こんな感じ

$ docker-compose up -d
Creating mysql ...
Creating mysql ... done
Creating php ...
Creating php ... done
Creating nginx ...
Creating nginx ... done

立ち上がったか確認

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                    NAMES
7189eeac3c46        nginx:1.11          "nginx -g 'daemon ..."   About a minute ago   Up About a minute   80/tcp, 443/tcp          nginx
743cb3712ddd        php:7.1-apache      "docker-php-entryp..."   About a minute ago   Up About a minute   0.0.0.0:80->80/tcp       php
211bbb776158        mysql:5.6           "docker-entrypoint..."   About a minute ago   Up About a minute   0.0.0.0:3306->3306/tcp   mysql

この時点でphp-project/htmlディレクトリが出来てるので、その配下にindex.php置く

index.php
<?php
phpinfo();

http://localhost にアクセス。
phpinfoが見えるのを確認する。

停止

$ docker-compose stop

削除

$ docker-compose rm

削除前にちゃんと停止してね。

次にやりたいこと

CakePHP3の導入。

感想

すごいけどよくわからないことだらけなのでもっと勉強します。
その他、XAMPPとDockerって何が違ってどういう点でメリットがあるのとか聞いた。
教えてくれた @suin さんも記事書いてました↓

CakePHP3もくもく勉強会#2レポート「DockerでPHPの開発環境を構築しよう」
http://qiita.com/suin/items/6d70f9c960056533ebb2

21
25
1

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
21
25