PHPの入門書1周するために、サクッとDockerでApache + MySQL + PHP + phpmyadminの環境つくる
PHP入門書を1周したいので、LAMP環境がほしい
PHP力を上げたいので、入門書からやろうと思い立ちました。
そのためにサクッと用意できて、使いまわせるローカル環境が欲しかったので、そのメモです。
今回はdocker-composeを使って環境構築します。
現在の環境
- OS:MacOS Big Sur
- Docker:19.03.13
- DockerCompose:1.27.4
ディレクトリ構成&ファイル
ディレクトリ構成
.
├── docker-compose.yml
├── html
│ └── index.php
├── mysql
├── php
│ ├── dockerfile
│ └── php.ini
└── phpmyadmin
docker-comopse.yml
version: '3'
services:
php:
build:
context: ./php
dockerfile: dockerfile
volumes:
- ./php/php.ini:/usr/local/etc/php/php.ini
- ./html:/var/www/html
ports:
- 8080:80
mysql:
image: mysql:5.7
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_USER=root
- MYSQL_PASSWORD=root
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
# - PMA_USER=test
# - PMA_PASSWORD=test
links:
- mysql
ports:
- 4040:80
volumes:
- ./phpmyadmin/sessions:/sessions
dockerfile
FROM php:7.2-apache
RUN apt-get update && \
docker-php-ext-install pdo_mysql mysqli mbstring
index.php
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>php7.2-apache</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<?php phpinfo(); ?>
</body>
</html>
php.ini
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
エラーすべて表示させたいときは、以下を追加する
error_reporting = E_ALL
実行コマンド
docker-compose.yml
があるディレクトリに移動して、以下を実行
$ docker-compose up -d
もし、dockerfileを変更した場合は
$ docker-compose up -d --build
php.iniなどの変更を反映させたい時は
$ docker-compose restart
動作確認
phpinfoを表示
http://localhost:8080/
phpmyadminを表示
http://localhost:4040/
ログイン画面でdocker-compose.yml
のmysqlコンテナの情報を記載してログインできればOK
つまづいたところ
- 当初は
docker-compose.yml
にimage: php:7.2-apache
と記載していたが、MySQLのドライバががなくてMySQL動かせなかったので、dockerflieを作成した -
docker-compose.yml
のphpmyadminコンテナのPMA_USER
とPMA_PASSWORD
を記載すると、phpmyadminにうまくログインできず、データベースが作成できなかったので、コメントアウト
今回やった、やる予定のPHP入門書
PHP入門 確認画面付きのお問い合わせフォームをつくりながらPHPを学ぶ(第2版)
https://amzn.to/2Irz7Fr
※上記環境で動作確認済み
よくわかるPHPの教科書 【PHP7対応版】
https://amzn.to/2LhQ4mW
※まだ未着手
参考記事
Author And Source
この問題について(PHPの入門書1周するために、サクッとDockerでApache + MySQL + PHP + phpmyadminの環境つくる), 我々は、より多くの情報をここで見つけました https://qiita.com/nakashiii/items/b3b04b30b692f73f46cb著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .