Win10 Docker-Toolsbox-Tutorial zum Erstellen einer PHP-Entwicklungsumgebung

Win10 Docker-Toolsbox-Tutorial zum Erstellen einer PHP-Entwicklungsumgebung

Bild herunterladen

Docker-Pull MySQL:5.7 
docker pull php:7.2-fpm
Docker-Pull Nginx
Docker-Pull Redis: 3.2

Einrichten freigegebener Dateien

Erstellen Sie ein Verzeichnis auf dem Host

E:\wnmp\mysql57\conf
E:\wnmp\mysql57\log
E:\wnmp\php72\conf
E:\wnmp\php72\conf
E:\wnmp\nginx\conf
E:\wnmp\nginx\conf
E:\wnmp\www

VMware-Dateifreigabeeinstellungen

Wie gezeigt

Nachdem die Einrichtung abgeschlossen ist, führen Sie docker-machine restart default im Docker Quickstart Termina aus.

Installieren von MySQL

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

Kopieren Sie die Konfigurationsdatei

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

Installieren Sie MySQL neu und geben Sie die Konfigurationsdatei an

PS C:\WINDOWS\system32> docker stop mysql57
mysql57
PS C:\WINDOWS\system32>docker rm mysql57
mysql57
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

Initialisieren der Datenbank

docker exec -ti mysql57 /bin/bash
mysql_secure_installation 
# Mysql-Status anzeigen root@d7bd0712bcf8:/# mysql -uroot -proot
mysql: [Warnung] Die Verwendung eines Passworts in der Befehlszeilenschnittstelle kann unsicher sein.
Willkommen beim MySQL-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MySQL-Verbindungs-ID ist 6
Serverversion: 5.7.28 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle und/oder seine Tochtergesellschaften. Alle Rechte vorbehalten.

Oracle ist eine eingetragene Marke der Oracle Corporation und/oder ihrer
Tochtergesellschaften. Andere Namen können Marken ihrer jeweiligen
Eigentümer.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

Installieren Sie 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

Kopieren Sie die Konfigurationsdatei

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

Installieren Sie PHP neu und geben Sie die Konfigurationsdatei an

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
# Überprüfen Sie die PHP-Version PS C:\Windows\system32> docker exec -ti php72 /bin/bash
root@742150f14d8a:/var/www/html# php -v
PHP 7.2.23 (cli) (erstellt: 5. Okt. 2019 00:31:47) (NTS)
Copyright (c) 1997-2018 Die PHP-Gruppe
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Ngixn

Installieren

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

Kopieren Sie die Konfigurationsdatei

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

Installieren Sie die Konfigurationsdatei erneut und geben Sie sie an

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
#Browserzugriff http://192.168.99.100/ Erfolgreiche Redis-Überprüfung
docker run -p 6379:6379 -d redis:3.2 redis-server

Installation der PHP-Erweiterung

Redis
PS C:\Windows\system32> docker exec -ti php72 /bin/bash
root@742150f14d8a:/var/www/html# pecl install -o -f redis
#Installation abgeschlossen, INI-Konfiguration hinzufügen. Zu diesem Zeitpunkt befindet sich die Redis-Konfiguration unter Docker in E:\wnmp\php72\conf\etc\php\conf.d\docker-php-ext-sodium.ini
# PHP neu starten

Konfigurieren des Testdomänennamens

#Erstellen Sie eine neue test.conf im Verzeichnis E:\wnmp\nginx\conf\nginx\conf.d
#Erstellen Sie ein neues Testverzeichnis im Verzeichnis E:\wnmp\www. Erstellen Sie index.php im Verzeichnis und geben Sie phpinfo aus.
Server {
  hören Sie 80;
  Servername test.com;
  #Zeichensatz koi8-r;
  Zugriffsprotokoll /var/log/nginx/host.access.log Haupt;
  Standort / {
    Wurzel /var/www/html/test;
    index.php index.html index.htm;
  }
  #Fehlerseite 404 /404.html;
  # Server-Fehlerseiten auf die statische Seite /50x.html umleiten
  #
  Fehlerseite 500 502 503 504 /50x.html;
  Standort = /50x.html {
    root /usr/share/nginx/html;
  }
  # Proxy für die PHP-Skripte an Apache, das auf 127.0.0.1:80 lauscht
  #
  #Standort ~ \.php$ {
  # Proxy-Passwort http://127.0.0.1;
  #}
  # Übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht.
  #
  Standort ~ \.php$ {
     Wurzel /var/www/html/test;
    fastcgi_pass 192.168.99.100:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $Dokumentstammsatz$fastcgi_script_name;
    fastcgi_params einschließen;
  }
  # Zugriff auf .htaccess-Dateien verweigern, wenn das Apache-Dokumentenstammverzeichnis
  # stimmt mit nginx überein
  #
  Standort ~ /\.ht {
    alles leugnen;
  }
}
#Nginx lädt die Konfiguration neu oder startet neu.
#Der lokale Host löst den Domänennamen test.com auf und der Zugriff zeigt, dass phpinfo normal ist

Das Obige umfasst sämtliche Installationskonfigurationen und Tests. Natürlich müssen wir am Ende diese Docker-Container zum automatischen Start hinzufügen

Docker-Container-Update --restart=immer php72
Docker-Container-Update --restart=immer mysql57
Docker-Container-Update --restart=immer nginx
Docker-Container-Update --restart=immer Redis

Zusammenfassen

Oben finden Sie das Tutorial zur Verwendung von Win10 Docker-Toolsbox zum Erstellen einer PHP-Entwicklungsumgebung. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Dockers flexible Implementierung zum Aufbau einer PHP-Umgebung
  • So erstellen Sie eine PHP+Nginx+Swoole+MySQL+Redis-Umgebung mit Docker
  • Docker erstellt Ihre eigene PHP-Entwicklungsumgebung
  • Der gesamte Prozess der Verwendung von Docker zum Erstellen der PHP7- und Nginx-Betriebsumgebung (offizielles Image)
  • Docker erstellt eine Nginx+PHP+MySQL-Umgebung und implementiert WordPress-Praxis
  • Tutorial zum Konfigurieren einer PHP-Entwicklungsumgebung mit Docker
  • Detaillierte Erläuterung der Lösung des Berechtigungsproblems beim Erstellen einer PHP-Entwicklungsumgebung mit Docker
  • So verwenden Sie Docker zum Bereitstellen einer PHP-Entwicklungsumgebung
  • Ein ausführliches Tutorial zum Erstellen einer PHP-Entwicklungsumgebung basierend auf Docker
  • Detaillierte Erläuterung des Tutorials zum Erstellen einer PHP-Umgebung für Docker

<<:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.14

>>:  Grundlegende Verwendung und Fallstricke der JavaScript-Array-Methode sort()

Artikel empfehlen

Mehrere Möglichkeiten zum Löschen von Arrays in Vue (Zusammenfassung)

Inhaltsverzeichnis 1. Einleitung 2. Mehrere Mögli...

So entfernen Sie in Linux ganz einfach installierte Quellpakete

Schritt 1: Stow installieren In diesem Beispiel v...

Zusammenfassung der Vue Watch-Überwachungsmethoden

Inhaltsverzeichnis 1. Die Rolle der Uhr in Vue is...

Detaillierte Erklärung der GaussDB zur MySQL-Leistungsoptimierung

Inhaltsverzeichnis Hintergrund Inspiration kommt ...

Detaillierter Prozess zum Erstellen von mysql5.7.29 unter Centos7 von Linux

1. MySQL herunterladen 1.1 Download-Adresse https...

Ursachen und Lösungen für MySQL-Deadlocks

Die Datenbank ist wie das Betriebssystem eine gem...

Die vernachlässigten Spezialeffekte von META-Tags (Seitenübergangseffekte)

Durch die Verwendung von JS im Webdesign können vi...

Neue Funktionen in MySQL 8.0: Hash Join

Das MySQL-Entwicklungsteam hat am 14. Oktober 201...

Eine detaillierte Erklärung, wie React Fiber funktioniert

Inhaltsverzeichnis Was ist React Fiber? Warum Rea...

Beispielcode zur Implementierung der MySQL-Master-Slave-Replikation in Docker

Inhaltsverzeichnis 1. Übersicht 1. Grundsatz 2. U...

vite2.x implementiert das On-Demand-Laden von Ant-Design-Vue@next-Komponenten

1. Version verwenden vite:2.0 Ant-Design-Vue: 2.0...

Detaillierte Erklärung zur Verwendung von nohup /dev/null 2>&1

Befehl „nohup“: Wenn Sie einen Prozess ausführen ...

So konvertieren Sie Chinesisch in HTML in UTF-8

In HTML kann die chinesische Phrase „學好好學“ als „學...

CSS, um horizontale Linien auf beiden Seiten des mittleren Textes zu erreichen

1. Die Eigenschaft „vertical-align“ erzielt folge...

So implementieren Sie eine Paging-Abfrage in MySQL

SQL-Paging-Abfrage:Hintergrund Im System des Unte...