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

Grafische Erklärung des Funktionsaufrufs der Protodatei in Vue

1. Proto kompilieren Erstellen Sie einen neuen Pr...

Erstellen Sie mit Node.JS ein Echtzeit-Warnsystem für Unwetter

Inhaltsverzeichnis Vorwort: Schritt 1: Finden Sie...

Detaillierte Erläuterung der MySQL sql_mode-Abfrage und -Einstellung

1. Führen Sie SQL aus, um anzuzeigen wählen Sie @...

Web-Frontend-Entwicklung CSS-bezogene Teamzusammenarbeit

Die Frontend-Entwicklungsabteilung wächst, die Mi...

Detaillierte Analyse des Reaktionsprinzips und der bidirektionalen Daten von Vue

Verstehen von object.defineProperty, um Reaktions...

Flex-Layout ermöglicht adaptive Seiten (Syntax und Beispiele)

Einführung in Flex Layout Flex bedeutet auf Engli...

Beispiel und Lösung für einen SQL-Injection-Sicherheitslückenprozess

Codebeispiel: öffentliche Klasse JDBCDemo3 { öffe...

CSS-Einstellung Div-Hintergrundbild-Implementierungscode

Das Hinzufügen einer Hintergrundbildsteuerung zu ...

Fassen Sie die häufigsten Anwendungsprobleme von XHTML-Code zusammen

<br />Ich habe festgestellt, dass viele Leut...

Schritte zur Erstellung einer React Fiber-Struktur

Inhaltsverzeichnis React-Fasererstellung 1. Bevor...

So implementieren Sie das Rasterlayout mit Intervallen perfekt auf der Seite

Typische Layoutbeispiele Wie im obigen Bild gezei...

Lösung für das Problem mit verstümmeltem MySQL-Code unter Linux

Das Projekt interagiert mit dem Server, greift üb...