PHPプログラムのコンテナローカル開発環境を簡単に最短で立ち上げます!
以下を使います!
- apache
- htaccess有効な状態
- ドキュメントルートの設定は.htaccessで行います!
- htaccess有効な状態
- php
- バージョン8.3
- mysql
- バージョン8
必要なファイル作成
以下のファイルをphpファイルが格納されているフォルダの直下に作成します。
- docker-compose
- Dockerfile
- .htaccess
docker-composeファイル
<ファイル名>
docker-compose.yml
<ファイルの中身>
version: '3'
services:
php:
build:
# Dockerfileを格納するフォルダのパス
context: .
# Dockerfileのファイル名
dockerfile: Dockerfile
volumes:
- .:/var/www/html
ports:
- 8000:80
container_name: php8.3
mysql:
image: mysql:8.0
volumes:
- /var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=test
- MYSQL_USER=test
- MYSQL_PASSWORD=test
container_name: mysql8.0
mysqlはimageの指定箇所のバージョン変更することで別バージョンで立ち上げることも可能です。
Dockerfile
<ファイル名>
Dockerfile
<ファイルの中身>
FROM php:8.3-apache
# htaccess有効化
RUN a2enmod rewrite
#composer install
COPY --from=composer /usr/bin/composer /usr/bin/composer
Fromの後のバージョンをいじることで、8.3以外のPHPを入れることも可能です。
composerは一応入れておきます。なくてもOK
.htaccess
<ファイル名>
.htaccess
<ファイルの中身>
RewriteEngine on
RewriteBase /
RewriteRule ^$ {ドキュメンルートへのパス} [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ {ドキュメンルートへのパス}$1 [L]
{ドキュメンルートへのパス}はご自身の環境に合わせてくださいー
動作確認
以下のコマンドでコンテナを立ち上げます。
docker compose up
以下のURLでPHPプログラムが想定通り動いていれば成功です!
http://localhost:8000/
ちなみに以下のコマンドでコンテナに入れます
docker compose exec php bash
まとめ
簡単に、PHPプログラムのコンテナローカル開発環境ができましたー
ちょっと動かしてみたい場合に使えると思います!