バージョン情報
- Docker:v20.10.17
- PHP:v8.1
- MySQL:v5.5
ファイル構成
DockerでPHPとMySQLの実行環境を作成するファイル構成は下記です。
- docker-compose.yml
このファイルでnginx、PHPコンテナをまとめてインストールできます - html/index.php
表示するないようをhtmlで記述 - php.init
実行環境の設定
docker-php-first-step
├ docker-compose.yml
├ html
│ └ index.php
└ php.ini
ソースコードはGitHubに公開しています。
ソースコード
docker-compose.yml
Docker公式イメージとしてDockerHubに公開されている
- php:8.1-apache
- mysql:5.5
- phpmyadmin/phpmyadmin
を利用します。
composerのパッケージのように記述されているものを引っ張ってくるイメージです。
version: '3'
services:
php:
image: php:8.1-apache
volumes:
- ./php.ini:/usr/local/etc/php/php.ini
- ./html:/var/www/html
ports:
- 8080:80
mysql:
image: mysql:5.5
volumes:
- ./mysql:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
- TZ=Asia/Tokyo
phpmyadmin:
image: phpmyadmin/phpmyadmin
environment:
- PMA_ARBITRARY=1
- PMA_HOST=mysql
- PMA_USER=test
- PMA_PASSWORD=test
ports:
- 4040:80
volumes:
- ./phpmyadmin/sessions:/sessions
index.php
表示したい内容をここに記述
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
Hello World
</body>
</html>
php.ini
必要ないかもしれませんが一応タイムゾーンや言語などを設定しておきます。
[Date]
date.timezone = "Asia/Tokyo"
[mbstring]
mbstring.internal_encoding = "UTF-8"
mbstring.language = "Japanese"
実行方法
下記の1コマンドでDockerコンテナのビルドが走ります。
docker-compose up
※「docker-compose up -d」で裏で動かしても大丈夫です
いろいろなものがダウンロードされてたあとPHPファイルやphpmyadminの画面が開けるようになります。
■ダウンロード画面
■ビルドされている画面
■記述したPHPファイルを開く(そっけない画面ですが一応載せておきます)
http://localhost:8080/ (PHPファイルに記載した内容)
■phpmyadminを開く
http://localhost:4040/ (phpmyadmin)