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を書く
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置く
<?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