#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]]