目的
今後、仕事で生かすためにdockerで様々な開発環境を作ってみる。
その一環として、PHPの開発環境を作成する。
作成する環境
・php:7.2
・apache
・mysql:5.7
・phpmyadmin
手順
①docker-compose.ymlを作成
※コンテナの指示書
②php.iniを作成
※phpの設定ファイル。マウントする。
③コンテナ実行
docker-compose up -d
④index.phpを作成
⑤webサーバにアクセス
http://localhost:8080/
⑥phpmyadminにアクセス
http://localhost:4040/
⑦コンテナを破棄する
docker-compose down
各作業抜粋
①docker-compose.ymlを作成
docker-compose.yml
version: '3'
services:
php:
image: php:7.2-apache #apache込みphpイメージ
volumes:
- ./php.ini:/usr/local/etc/php/php.ini #バインドマウント(PHP設定ファイル)
- ./html:/var/www/html #バインドマウント(ドキュメントルート)
ports:
- 8080:80 #ポートフォワード(ホストの8080番ポートをコンテナの80番ポートへ転送)
mysql:
image: mysql:5.7 #mysqlイメージ
volumes:
- ./mysql:/var/lib/mysql #バインドマウント(データディレクトリ)
environment:
- MYSQL_ROOT_PASSWORD=root #rootユーザのパスワード
- MYSQL_DATABASE=test #データベース名
- MYSQL_USER=test #ユーザ名
- MYSQL_PASSWORD=test #パスワード
phpmyadmin:
image: phpmyadmin/phpmyadmin #phpmyadminイメージ
environment:
- PMA_ARBITRARY=1 #サーバをローカル以外にも指定できるようになる
- PMA_HOST=mysql #接続先ホストに、mysqlコンテナを指定
- PMA_USER=test #接続先ユーザに、mysqlのユーザを指定
- PMA_PASSWORD=test #接続先パスワードに、mysqlのパスワードを指定
links: #mysqlコンテナにアクセスできるようにする設定
- mysql
ports:
- 4040:80 #ポートフォワード(ホストの4040番ポートをコンテナの80番ポートへ転送)
volumes:
- ./phpmyadmin/sessions:/sessions #バインドマウント(データディレクトリ)
②php.iniを作成
php.ini
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
③コンテナ実行(私は、PowereShellで)
マウントしたディレクトリが作成されている(html,mysql,phpmyadmin)
④index.phpを作成
⑤webサーバにアクセス
先ほど、ホストに配置したindex.phpがマウントされて、表示されました!
⑥phpmyadminにアクセス
⑦コンテナを破棄する
終わりに
PHPで開発環境っぽいものが完成しました。
あとは、実際開発しながら微調整ですかねぇ(*'▽')