PHP 開発環境の構築に関する win10 docker-toolsbox チュートリアル

PHP 開発環境の構築に関する win10 docker-toolsbox チュートリアル

画像をダウンロード

docker プル mysql:5.7 
docker pull php:7.2-fpm
docker プル nginx
docker pull redis:3.2

共有ファイルを設定する

ホスト上にディレクトリを作成する

E:\wnmp\mysql57\conf
E:\wnmp\mysql57\ログ
E:\wnmp\php72\conf
E:\wnmp\php72\conf
E:\wnmp\nginx\conf
E:\wnmp\nginx\conf
E:\wnmp\www

VMware ファイル共有設定

図のように

セットアップが完了したら、Docker Quickstart Terminaでdocker-machine restart defaultを実行します。

MySQLをインストールする

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql57 mysql:5.7

設定ファイルをコピーする

PS C:\Windows\system32>docker cp mysql57:/var/log/mysql E:\wnmp\mysql57\log
PS C:\Windows\system32>docker cp mysql57:/etc/mysql E:\wnmp\mysql57\conf

mysqlを再インストールし、設定ファイルを指定します

PS C:\WINDOWS\system32> docker stop mysql57
マイSQL57
PS C:\WINDOWS\system32>docker rm mysql57
マイSQL57
PS C:\WINDOWS\system32> docker run -d -v /wnmp/mysql57/log:/var/log/mysql/ -v /wnmp/mysql57/conf:/etc/mysql/ -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql57 mysql:5.7

データベースを初期化する

docker exec -ti mysql57 /bin/bash
mysql_secure_installation 
# Mysql ステータスを表示 root@d7bd0712bcf8:/# mysql -uroot -proot
mysql: [警告] コマンドライン インターフェイスでパスワードを使用すると安全でない可能性があります。
MySQL モニターへようこそ。コマンドは ; または \g で終わります。
MySQL接続IDは6です
サーバーバージョン: 5.7.28 MySQL コミュニティサーバー (GPL)

Copyright (c) 2000, 2019, Oracle およびその関連会社。無断複写・転載を禁じます。

OracleはOracle Corporationおよびその関連会社の登録商標です。
その他の名称は各社の商標である場合があります。
所有者。

ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。

PHPをインストールする

PS C:\WINDOWS\system32> docker run -d -v /wnmp/www:/var/www/html -p 9000:9000 --link mysql57:mysql --name php72 php:7.2-fpm

設定ファイルをコピーする

PS C:\Windows\system32>docker cp php72:/usr/local/etc E:\wnmp\php72\conf
PS C:\Windows\system32>docker cp php72:/usr/local/var/log E:\wnmp\php72\log
PS C:\Windows\system32> docker cp php72:/var/www/html E:\wnmp\www

PHPを再インストールし、設定ファイルを指定する

PS C:\WINDOWS\system32> docker stop php72
php72
PS C:\WINDOWS\system32>docker rm php72
php72
docker run -d -v /wnmp/php72/conf/etc:/usr/local/etc -v /wnmp/php72/log:/usr/local/var/log -v /wnmp/www:/var/www/html -p 9000:9000 --link mysql57:mysql --name php72 php:7.2-fpm
# PHPのバージョンを確認する PS C:\Windows\system32> docker exec -ti php72 /bin/bash
ルート@742150f14d8a:/var/www/html#php -v
PHP 7.2.23 (cli) (ビルド: 2019 年 10 月 5 日 00:31:47) ( NTS )
著作権 (c) 1997-2018 PHPグループ
Zend Engine v3.2.0、著作権 (c) 1998-2018 Zend Technologies
ングスン

インストール

PS C:\WINDOWS\system32> docker run -d -p 80:80 --link php72:phpfpm --name nginx nginx:latest

設定ファイルをコピーする

PS C:\Windows\system32>docker cp nginx:/etc/nginx/ E:\wnmp\nginx\conf
PS C:\Windows\system32>docker cp nginx:/var/log/nginx/ E:\wnmp\nginx\log

再インストールして設定ファイルを指定する

PS C:\WINDOWS\system32> docker stop nginx
nginx
PS C:\WINDOWS\system32>docker rm nginx
nginx
PS C:\WINDOWS\system32> docker run -d -p 80:80 -v /wnmp/www:/var/www/html -v /wnmp/nginx/conf/nginx:/etc/nginx/ -v /wnmp/nginx/log:/var/log/nginx/ --link php72:phpfpm --name nginx nginx
#ブラウザアクセス http://192.168.99.100/ Redisが成功したことを確認する
docker run -p 6379:6379 -d redis:3.2 redis-server

PHP拡張機能のインストール

レディス
PS C:\Windows\system32> docker exec -ti php72 /bin/bash
root@742150f14d8a:/var/www/html# pecl インストール -o -f redis
#インストールが完了しました。Ini 設定を追加します。この時点で、docker の下の redis 設定は E:\wnmp\php72\conf\etc\php\conf.d\docker-php-ext-sodium.ini にあります。
# PHPを再起動

テストドメイン名を設定する

#E:\wnmp\nginx\conf\nginx\conf.dディレクトリに新しいtest.confを作成します
#E:\wnmp\www ディレクトリに新しいテスト ディレクトリを作成します。ディレクトリにindex.phpを作成し、phpinfoを出力します。
サーバー{
  聞く 80;
  サーバー名 test.com;
  #文字セット koi8-r;
  access_log /var/log/nginx/host.access.log メイン;
  位置 / {
    ルート /var/www/html/test;
    インデックス index.php index.html index.htm;
  }
  #エラーページ 404 /404.html;
  # サーバーのエラーページを静的ページ /50x.html にリダイレクトします
  #
  エラーページ 500 502 503 504 /50x.html;
  場所 = /50x.html {
    ルート /usr/share/nginx/html;
  }
  # PHP スクリプトを 127.0.0.1:80 で listen している Apache にプロキシします
  #
  #場所 ~ \.php$ {
  # プロキシパス http://127.0.0.1;
  #}
  # PHP スクリプトを 127.0.0.1:9000 で待機している FastCGI サーバーに渡します
  #
  場所 ~ \.php$ {
     ルート /var/www/html/test;
    192.168.99.100:9000 を設定します。
    fastcgi_index インデックス.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_params を含めます。
  }
  # Apacheのドキュメントルートが.htaccessファイルへのアクセスを拒否する
  # nginxのものと一致します
  #
  場所 ~ /\.ht {
    すべてを否定する;
  }
}
#Nginx は設定を再読み込みするか、再起動します。
#ローカルホストはドメイン名test.comを解決し、アクセスするとphpinfoが正常であることがわかります

上記がインストール構成とテストのすべてです。もちろん、最終的にはこれらのDockerコンテナを自動起動に追加する必要があります

docker コンテナ更新 --restart=always php72
docker コンテナ更新 --restart=always mysql57
docker コンテナ更新 --restart=always nginx
docker コンテナ更新 --restart=always redis

要約する

上記は、win10 docker-toolsbox を使用して PHP 開発環境を構築する方法に関するチュートリアルです。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • PHP環境構築におけるDockerの柔軟な実装
  • docker で php+nginx+swoole+mysql+redis 環境を構築する方法
  • Dockerは独自のPHP開発環境を構築します
  • docker を使用して php7 と nginx の動作環境を構築するプロセス全体 (公式イメージ)
  • DockerでNginx+PHP+MySQL環境を構築し、WordPressをデプロイする
  • Docker を使用した PHP 開発環境の設定に関するチュートリアル
  • DockerでPHP開発環境を作る際に発生する権限問題の解決方法を詳しく解説
  • Dockerを使用してPHP開発環境を展開する方法
  • Docker ベースの PHP 開発環境の構築に関する詳細なチュートリアル
  • Docker ビルド PHP 環境チュートリアル詳細説明

<<:  MySQL 8.0.14 のインストールと設定方法のグラフィックチュートリアル

>>:  JavaScript 配列 sort() メソッドの基本的な使い方と落とし穴

推薦する

VMware を使用して PXE バッチ インストール サーバーをテストする詳細なプロセス

目次1. 準備1. 環境を整える2. インストール方法3. ネットワークカードの構成2. インストー...

border-image を使用してテキストバブルの境界線を実装する方法のサンプルコード

開発中に、非常に単純なテキストバブル効果に遭遇しました。これは、おおよそ次のようになります。 うーん...

Nginx 正規表現の詳細な説明

Nginx (エンジン x) は、高性能な HTTP およびリバース プロキシ サーバーであり、IM...

ウェブマスターが注目すべき、ウェブサイトのユーザビリティを向上させる 9 つのコード最適化のヒント

1. ロゴに代替テキストを追加するこれには 2 つの利点があります。スクリーン リーダーがロゴ画像の...

Kubernetes コントローラーとラベルの簡単な分析

目次01 k8sの一般的なコントローラーRCコントローラーデプロイメント コントローラーステートフル...

Mysqlデータベースの文字化けに対処する方法

MySQL では、データベースの文字化けは一般的に文字セットを設定することで修正できますが、文字化け...

Linuxカーネルマクロcontainer_ofの詳細な分析

1. 前述の通り数年前、Linux ドライバーのコードを読んでいたときにこのマクロを見ました。長い間...

JavaScript関数の詳細な紹介

任意の数のステートメントを関数を通じてカプセル化することができ、いつでもどこでも呼び出して実行できま...

html+css3で実装されたログインインターフェース

成果を達成するまずHTMLを使って基本的なフレームワークを構築します <本文> <...

テキスト ファイルの並べ替えに役立つ Awk コマンドラインまたはスクリプト (推奨)

Awk は、ソートを含む他の一般的なユーティリティによって実行できるいくつかのタスクを実行できる強...

MySQL データベース開発の 36 の原則 (要約)

序文これらの原則は実際の戦闘から要約されています。あらゆる原則の背後には血なまぐさい教訓があるこれら...

フォント名に従ってフォントを呼び出すと、ブラウザに必要なフォントが表示されます。

質問 1: ブラウザに必要なフォントを表示するように指示するにはどうすればよいでしょうか? フォント...

Vue でルーティング遷移効果を実装する 4 つの方法

Vue ルーター トランジションは、Vue プログラムにパーソナライズされたエフェクトをすばやく簡単...

mysql 8.0.12 winx64 のダウンロードとインストールのチュートリアル

MySQL 8.0.12のダウンロードとインストールのチュートリアルは参考までに、具体的な内容は次の...

JavaScriptで配列を作成する方法の詳細な説明

目次JavaScript で配列を作成する配列の使用配列を分割文字列に変換する配列に要素を追加する配...