#author("2026-06-05T14:24:30+09:00","","")
#author("2026-06-05T16:19:16+09:00","","")
#nofollow
#norelated
総数:&counter(total); 今日:&counter(today); 昨日:&counter(yesterday);&br;
[[Memorandums]]&br;
[[on windows]]&br;

&size(22){&color(blue){install Php Env on Windows11 by Docker};};&br;
&size(22){&color(blue){DockerでPHP+MySQL開発環境を作る};};&br;

* もくじ [#ie7b9eef]

#contents

参考url&br;
[[DockerでPHP+MySQL開発環境を作る>https://zenn.dev/yamato_snow/articles/616ba7f7594055]] &br;


*全体のディレクトリ構成 [#g0501c0e]

 
 C:\Users\<ユーザー名>\Documents\docker-python/
 ├── docker-compose.yml    # Docker Composeの設定ファイル
 ├── Dockerfile            # PHPコンテナのカスタマイズ設定
 └── www/                 # PHPファイルを置くフォルダ
     └── index.php        # 動作確認用のPHPファイル
 

*プロジェクト用のディレクトリを作成 [#u4ec7bb6]

 PS C:\Users\username> wsl

 $ cd Documents/
 $ mkdir docker-php
 $ mkdir www

 $ cd docker-php/

*docker-compose.ymlを作成 [#bac26d8d]

 $ vim -f docker-compose.yml

以下の内容を記述し保存する。
 version: '3.8'
 
 services:
   web:
     build: .
     container_name: php-apache
     ports:
       - "8080:80"
     volumes:
       - ./www:/var/www/html
     networks:
       - app-network
     depends_on:
       - mysql
 
   mysql:
     image: mysql:8.0
     container_name: mysql
     ports:
       - "3306:3306"
     environment:
       MYSQL_ROOT_PASSWORD: root_password
       MYSQL_DATABASE: mydb
       MYSQL_USER: dbuser
       MYSQL_PASSWORD: dbpass
     volumes:
       - ./mysql-data:/var/lib/mysql
     networks:
       - app-network
     command: --default-authentication-plugin=mysql_native_password
 
   phpmyadmin:
     image: phpmyadmin/phpmyadmin
     container_name: phpmyadmin
     ports:
       - "8081:80"
     environment:
       PMA_HOST: mysql
       PMA_PORT: 3306
       MYSQL_ROOT_PASSWORD: root_password
     depends_on:
       - mysql
     networks:
       - app-network
 
 networks:
   app-network:
     driver: bridge


*Dockerfileを作成 [#k95c4f48]
PHPコンテナに必要な拡張機能(PDO、mysqli)をインストールするためのDockerfileを作成します。

**Dockerfileの役割 [#o2914e22]

PHPの公式イメージ(php:7.2-apache)には、PDOやmysqliなどの拡張機能が含まれていません。Dockerfileで追加する必要があります。
PHPの公式イメージ(php:8.2-apache)には、PDOやmysqliなどの拡張機能が含まれていません。Dockerfileで追加する必要があります。


**Dockerfileの内容 [#t9244d5c]
プロジェクトのルートディレクトリに、Dockerfileを作成してください。

 $ vim -f Dockerfile

以下の内容を記述し保存する。

 FROM php:7.2-apache
 FROM php:8.2-apache
 
 # PDO MySQL・mysqli拡張機能をインストール
 RUN docker-php-ext-install pdo pdo_mysql mysqli
 
 # Apacheのmod_rewriteを有効化(.htaccess使用時)
 RUN a2enmod rewrite

**拡張機能は後から追加できる [#j31e6102]
もし後で他の拡張機能が必要になったら、Dockerfileに追加して再ビルドすればOKです。

 # 例:GDライブラリを追加する場合
 RUN apt-get update && apt-get install -y \
     libpng-dev \
     libjpeg-dev \
     && docker-php-ext-install gd


* 環境を起動して確認 [#d09e2cc5]
実際に環境を起動して動作確認をしましょう。

**起動コマンド [#e0ee4683]
プロジェクトのルートディレクトリで、以下のコマンドを実行してください。

 # コンテナをビルドして起動
 docker-compose up -d


***-dオプションの意味 [#ab9b3a80]
-バックグラウンドで実行(デタッチモード)
-ターミナルがブロックされない


**動作確認の方法 [#ne6a4bcc]

***PHPの動作確認 [#b1fcb057]

まず、動作確認用のPHPファイル www/index.php を作成します。

 <?php
 phpinfo();
 ?>

ブラウザでhttp://localhost:8080/index.phpにアクセスすると、PHPの設定情報が表示されます。

***phpMyAdminの動作確認 [#i2f7e4be]
ブラウザでhttp://localhost:8081にアクセスしてください。

''ログイン情報''
|項目|値|備考|h
|サーバー|mysql|(自動入力されているはず)|
|ユーザー名|root||
|パスワード|root_password|(docker-compose.ymlで設定した値)|

ログインできれば、MySQLに正常に接続できています。


[[on windows]]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS