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

Verwendung der MySQL-Anweisung „truncate table“

Mit der Anweisung „Truncate table“ werden alle Da...

Inaktive Benutzer nach einem Login-Timeout in Linux automatisch abmelden

Methode 1: Ändern Sie die Datei .bashrc oder .bas...

Implementierung der CSS-Bildlaufleisten-Stileinstellungen

WebKit-Bildlaufleistenstil zurücksetzen 1. Die Bi...

MySQL-Reihe: Datenbankdesign, drei Paradigmen, Tutorial-Beispiele

Inhaltsverzeichnis 1. Wissensbeschreibung der dre...

So fügen Sie in Linux stapelweise Dateipräfixe hinzu

Sie müssen „gt_“ vor den Dateinamen aller TXT-Dat...

Docker entfernt abnormale Containervorgänge

Dieser Neuling ist auf ein solches Problem gestoß...

Analyse der Verwendung und des Prinzips der Docker Swarm-Clusterverwaltung

Schwarmclusterverwaltung Einführung Docker Swarm ...

Der Unterschied zwischen HTML-Name-ID und Klasse_PowerNode Java Academy

Name Geben Sie einen Namen für das Tag an. Format...

So verwenden Sie webSocket zum Aktualisieren des Echtzeitwetters in Vue

Inhaltsverzeichnis Vorwort Informationen zu WebSo...

Zusammenfassung der Wissenspunkte zu Null in der MySQL-Datenbank

In der MySQL-Datenbank ist Null eine häufige Situ...

Centos7.5 installiert die Bereitstellung des binären Pakets mysql5.7.24

1. Umweltvorbereitung: Betriebssystem: CentOS Lin...

Detaillierte Erklärung der MySQL Master-Slave-Inkonsistenz und Lösungen

1. MySQL Master-Slave-Asynchronität 1.1 Netzwerkv...

Eine kurze Analyse der MySQL-Kardinalitätsstatistiken

1. Was ist die Kardinalität? Mit Kardinalität wir...