PHP8.3 x MysqlのDocker環境の構築方法

php8.3-docker

2023年11月24日にリリースされました。

またこれと同時に、PHP8.0がサポートから外れ、PHP8.1はセキュリティサポート、公式にはPHP8.2以上を利用することが推奨されることになります。

お急ぎの方はこちらのソースコードを最初にダウンロードください

とりあえずブログの記事はどっちでも良いからDocker環境を動作させたいという方はgitHubへ直接ソースコードをダウンロードください。

移行前にDocker環境でソースコードを確認

PHP8.3にアップデートする前に、事前に問題がないか確認するにはDockerなどで環境を構築して事前確認を行いましょう。

プロジェクトのフォルダ構成

- php
  - Dockerfile

- mysql
 - db --> ビルド後にMysql関連のファイルが生成される 
 - seed --> 初期設定時に挿入されるデータ

- docker-compose.yml
- ports.conf
- index.php

docker-compose.yml

version: '3.8'
services:
  #MySQL用コンテナ
  db:
    container_name: mysql_latest
    image: mysql/mysql-server:latest
    restart: always
    volumes:
      - ./mysql/seed:/docker-entrypoint-initdb.d # 初回データ実行
      - ./mysql/db:/var/lib/mysql # データ永続化
    ports:
      - 3306:3306
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_USER=test
      - MYSQL_PASSWORD=test
      - MYSQL_DATABASE=test

  #phpMyAdmin用コンテナ
  phpmyadmin:
    container_name: phpMyAdmin_v2
    image: phpmyadmin/phpmyadmin
    environment:
      PMA_HOST: db #mysqlのサービス名
      PMA_USER: test #phpmyadminにログインするユーザ
      PMA_PASSWORD: test #phpmyadminにログインするユーザのパスワード
    restart: always
    ports:
      - "80:80"
    depends_on:
      - db

  #php用コンテナ
  web_v2:
    container_name: web_v2
    build: ./php
    volumes:
      # FRONTEND
      - ./index.php:/var/www/html/index.php
      - ./ports.conf:/etc/apache2/ports.conf
    ports:
      - "8080:8080"
    depends_on:
      - db

ports.confファイル

今回はPHP8.3プロジェクトをポート8080で動作させます。

そのため、ポート8080でサイトを公開するためにこの定義ファイルを更新しています。

Listen 8080 ← ここを変更する

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

デフォルト設定では、ポート80をリッスンするように設定されていますが、ポート80はphpMyAdminで利用するため変更しております。

ドキュメントルート(DocumentRoot)

本、docker環境はDocumentRootとしてvar/www/htmlが指定されています。

※Apacheの初期設定?

DocumentRootの確認には下記のコマンドで確認が可能です。

## dockerコンテナ内に入る
docker exec -it <your-container-name> bash

## DocumentRootを確認する
cat /etc/apache2/sites-available/000-default.conf

実際のプロジェクトの用に実行させるのであればドキュメントルートを変更したいケースもあると思います。

その場合はこのプロジェクトに000-default.confを追加して、000-default.confファイルをetc/apache2/sites-available.confにvolumesでマウントされるように設定しましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です