Konstruktion der Laravel + Docker Laradock-Nutzungsumgebung

Einführung in die Entwicklungsumgebung zum Ausführen von Laravel mit Laradock. Da ich durch Versuch und Irrtum selbst lerne, kann es einige Fehler geben, aber ich würde es begrüßen, wenn Sie in diesem Fall darauf hinweisen könnten.

Machen Sie sich bereit, Docker zu verwenden

Aufbau einer Entwicklungsumgebung mit Laradock

Wir werden eine Entwicklungsumgebung erstellen, um Laravel mit Laradock auszuführen.

Was ist Laradock?

Die offizielle Website bietet eine wunderbare Umgebung für die Ausführung von Laravel (PHP) -Projekten auf Docker. https://laradock.io/

Mit Laradock können Sie problemlos einen Webserver oder eine Datenbank in Docker erstellen.

Charakteristisch

・ Sie können problemlos zwischen PHP-Versionen wechseln (7.3 / 7.2 / 7.1 / 5.6) ・ Sie können Ihre bevorzugte Datenbank-Engine auswählen (MySQL / Postgres / MariaDB ...) ・ Die Kombination von Originalsoftware wie Memcached, HHVM, Beanstalkd ist möglich -Alle Software wie PHP-FPM, NGINX, PHP-CLI läuft auf separaten Containern -Alle Docker-Images werden aus offiziell basierten Images erstellt Sie können Laradock für jedes Projekt oder ein einzelnes Laradock für alle Projekte verwenden.

Öffnen Sie ein Terminal und erstellen Sie ein Verzeichnis

Öffnen Sie zunächst ein Terminal und ordnen Sie den Pfad dem Speicherort zu, an dem Sie das Verzeichnis erstellen möchten. Sie können den Speicherort Ihres aktuellen Dateipfads mit pwd ermitteln.

//Es wird der Speicherort des aktuellen Verzeichnisses mit einem absoluten Pfad angezeigt.
$ pwd
//Erstellen Sie ein neues Verzeichnis.
$mkdir Verzeichnisname
//Wechseln Sie in das mit dem Befehl cd erstellte Verzeichnis.
$cd Verzeichnisname erstellt
//Überprüfen Sie den absoluten Pfad des erstellten Verzeichnisses
$ pwd

Installieren Sie Laradock

Installieren Sie nach dem Erstellen des Verzeichnisses laradock dort.

Führen Sie den folgenden Befehl aus.

//Dabei kopiere ich die Laradock-Datei von GitHub mit einem Mechanismus namens git
$ git clone https://github.com/Laradock/laradock.git -b v9.6

Sie sollten ein paar Zeilen mit der Aufschrift "Klonen in" Laradock "sehen ...

Wenn Sie fertig sind, überprüfen Sie, ob das Verzeichnis mit dem Namen ls command erstellt wurde.

$ ls

laradock

Erstellen Sie eine Laradock-ENV-Datei

Erstellen Sie als Nächstes eine .env-Datei, eine der Dateien, die sich auf die Laradock-Einstellungen beziehen. laradock bereitet eine env-Beispieldatei als Vorlage für die .env-Datei vor, daher werde ich sie basierend darauf erstellen.

Bitte geben Sie Folgendes ein:

$ cd laradock
$ cp env-example .env

cp ist ein Befehl zum Kopieren von Dateien.

cp Name der Quelldatei kopieren Geben Sie den Namen der zu kopierenden Zieldatei ein.

Sie haben jetzt eine .env-Datei basierend auf der env-Beispieldatei erstellt.

Bearbeiten Sie die .env-Datei von laradock

Bearbeiten Sie anschließend die .env-Datei mit einem Editor usw.

.
└── Erstelltes Verzeichnis
    └── laradock
        └── .env

Suchen Sie nach dem Öffnen der .env-Datei die folgenden Teile und ändern Sie sie wie beschrieben.

//Vorher ändern
APP_CODE_PATH_HOST=../
DATA_PATH_HOST=~/.laradock/data
COMPOSE_PROJECT_NAME=laradock
//Nach der veränderung
//Ein Verzeichnis, das auf dem Webserver von Laradock synchronisiert werden soll. Laradock selbst muss nicht separat auf dem Docker sein, daher wird nur das Laravel-Projektverzeichnis synchronisiert. Der Name des Verzeichnisses, in dem Laravel gemountet ist.
APP_CODE_PATH_HOST=../laravel
//Ein Verzeichnis auf dem lokalen PC, in dem Docker-Speicher usw. gespeichert sind. Standardmäßig werden die Datenbank usw. im Ausgangsverzeichnis gespeichert. Ändern Sie es im Projektverzeichnis
DATA_PATH_HOST=../data
//Wenn Sie für jedes Projekt eine neue Laradock-Umgebung erstellen möchten, ändern Sie den Verzeichnisnamen in den von Ihnen erstellten.
COMPOSE_PROJECT_NAME=Verzeichnisname erstellt

Starten Sie die Entwicklungsumgebung mit Docker

Verwenden Sie dann Docker, um die Entwicklungsumgebung zu starten.

Die Einheit jedes auf Docker ausgeführten Dienstes wird als Container bezeichnet.

Starten Sie hier die folgenden vier Container.

・ Arbeitsbereich ・ Php-fpm ・ Nginx ・ Postgres

php-Was ist fpm
PHP FastCGI(Der bei der ersten Anforderung gestartete Prozess bleibt im Speicher erhalten, und der in diesem Speicher gespeicherte Prozess wird für die nächste Anforderung ausgeführt.

Es hat die folgenden Funktionen.

Lose(graceful)Halt/Erweitertes Prozessmanagement einschließlich Startfunktion

Andere UID/gid/chroot/Starten eines Workers in einer Umgebung, Abhören eines anderen Ports, anderer PHP.Verwendung von ini(safe_Alternative zum Modus)

Protokollausgabe zur Standardausgabe und Standardfehlerausgabe

Neustart im Notfall, wenn der Opcode-Cache beschädigt ist

Unterstützung für schnelle Uploads

"slowlog" -Aufzeichnen eines Skripts mit einer sehr langen Ausführungszeit(Es zeichnet den PHP-Backtrace sowie den Skriptnamen auf. Führen Sie den Remote-Prozess mit ptrace oder einem gleichwertigen Mechanismus aus, um die Rückverfolgung abzurufen_Daten lesen)

fastcgi_finish_request() -Etwas zeitaufwändiger Prozess(Videokonvertierung, statistische Informationsverarbeitung usw.)Eine spezielle Funktion, um die Anforderung zu beenden und alle Daten auszugeben, während Sie fortfahren

dynamisch/Aufrufen eines statischen untergeordneten Prozesses

Grundlegender SAPI-Betriebsstatus(Apache mod_Entspricht dem Status)

php.INI-basierte Konfigurationsdatei
Was ist CGI?
PHP auf dem Webserver(Sprachen, die dynamischen Inhalt erzeugen)Es ist ein Mechanismus zu bedienen.
CGI erzeugt und zerstört Prozesse, wenn ein Benutzer sie anfordert. Bei einer großen Anzahl von Anforderungen werden Prozesse entsprechend erstellt und zerstört, was zu einer schlechten Leistung führt.
Was ist FastCGI?
Der bei der ersten Anforderung gestartete Prozess bleibt im Speicher erhalten, und der in diesem Speicher gespeicherte Prozess wird für die nächste Anforderung ausgeführt. Es löst CGI-Probleme, beschleunigt Programme und reduziert die Serverlast.

Der zu startende Container enthält Postgres, ein Datenbanksystem namens PostgreSQL.

Dieses Mal wird PostgreSQL Version 11.6 verwenden.

Ändern Sie daher die erste Zeile der Docker-Datei im Verzeichnis laradock / postgres wie folgt.

laradock/postgres/Dockerfile.



1  FROM postgres:11.6

Wenn Sie mit der Bearbeitung fertig sind, gehen Sie im Terminal zu "Erstelltes Verzeichnis / Laradock-Verzeichnis".

$ cd ~/Verzeichnis erstellt/laradock

Geben Sie dann den folgenden Befehl ein.

$ docker-compose up -d workspace php-fpm nginx postgres

Die Bedeutung des Befehls ist wie folgt.

Docker-Compose ist ein Befehl zur Verwendung einer Funktion namens Docker Compose, die mehrere Container gleichzeitig verarbeitet. up ist der Befehl, mit dem der Container mit Docker Compose gestartet wird -d ist eine Option, um nach dem Starten des Containers zum Terminalbetrieb zurückzukehren

Wenn ich den Befehl ausführe, erhalte ich viele Nachrichten.

Beim ersten Mal wird die Software selbst (Docker-Image) jedes Containers heruntergeladen, sodass das Starten des Containers einige Minuten dauert.

Wenn am Ende die folgende Meldung angezeigt wird, wurde der Container erfolgreich gestartet.

Erstellen Erstelltes Verzeichnis_docker-in-docker_1 ... done
Erstellen Erstelltes Verzeichnis_workspace_1        ... done
Erstellen Erstelltes Verzeichnis_php-fpm_1          ... done
Erstellen Erstelltes Verzeichnis_nginx_1            ... done
Erstellen Erstelltes Verzeichnis_porstgres_1        ... done

Wenn Sie diese 5 Meldungen nicht sehen, versuchen Sie erneut, Docker-Compose -d Workspace PHP-Fpm Nginx Postgres.

Starten Sie nach dem Start des Containers Ihren Browser und geben Sie localhost in die Adressleiste ein.

Wenn Sie 404 Not Found erhalten, ist dies in Ordnung.

Wenn Sie den Container stoppen möchten, geben Sie den folgenden Befehl ein.

$ docker-compose stop

Wenn Sie den Container neu starten möchten, geben Sie den folgenden Befehl ein.

docker-compose up -d workspace php-fpm nginx postgres

Installieren Sie Laravel

Geben Sie den folgenden Befehl in das erstellte Verzeichnis / laradock-Verzeichnis ein.

$ docker-compose exec workspace composer create-project --prefer-dist laravel/laravel . "6.8.*"

Um Befehle auszuführen, die mit Docker-Compose beginnen, müssen Sie in das erstellte Verzeichnis / Laradock-Verzeichnis wechseln und es dann ausführen.

Die Installation dauert einige Minuten. Wenn die Nachricht angezeigt wird, sollten viele Dateien unter dem erstellten Verzeichnis / laravel-Verzeichnis erstellt werden.

Wenn Sie eine Weile warten, wird die Installation nicht gestartet.

  [InvalidArgumentException]
  Could not find package laravel/laravel with version 6.8.*.

Wenn die Meldung angezeigt wird, ändern Sie den Teil des Befehls "6.8. *" In "6. *. *" Und installieren Sie ihn.

Besuchen Sie die Begrüßungsseite von Laravel

Greifen Sie nach der Installation von Laravel mit Ihrem Browser auf localhost zu. Es ist in Ordnung, wenn der folgende Bildschirm angezeigt wird.

スクリーンショット 2020-10-31 0.51.38.png

Stellen Sie die Zeit von Laravel auf japanische Zeit ein

Standardmäßig ist Laravels Zeiteinstellung UTC (Agreement World Time), 9 Stunden später als in Japan.

Ändern Sie dies in Japan Zeit.

Ändern Sie die Zeitzone des / erstellten Verzeichnisses / laravel / config / app.php wie folgt in "Asien / Tokio".

.
└── Erstelltes Verzeichnis
    └── laravel
        └── config
            └── app.php

laravel/config/app.php.


//Abkürzung
    /*
    |--------------------------------------------------------------------------
    | Application Timezone
    |--------------------------------------------------------------------------
    |
    | Here you may specify the default timezone for your application, which
    | will be used by the PHP date and date-time functions. We have gone
    | ahead and set this to a sensible default for you out of the box.
    |
    */

    'timezone' => 'Asia/Tokyo', //--Ändern Sie diese Zeile
//Abkürzung

Damit ist die Installation von Laravel abgeschlossen.

Recommended Posts

Konstruktion der Laravel + Docker Laradock-Nutzungsumgebung
Erstellen Sie mit Laradock eine Docker + Laravel-Umgebung
Aufbau einer Laravel-Entwicklungsumgebung mit Docker (Mac)
Erstellen einer Umgebung für Laravel + MySQL + phpMyadmin mit Docker
Aufbau der Rails Docker-Umgebung
Konstruktionsnotiz für die MySQL 5.7 (Docker) -Umgebung
Redmine (Docker) Umgebungskonstruktionsnotiz
[Docker] Rails 5.2-Umgebungskonstruktion mit Docker
Aufbau der Docker x Spring Boot-Umgebung
[Docker] postgres, pgadmin4-Umgebungskonstruktion
Aufbau einer Laravel-Umgebung (Ubuntu 18.04 LTS)
Konstruktionsverfahren für Rails on Docker-Umgebungen
[Umgebungskonstruktion mit Docker] Rails 6 & MySQL 8
SQL-Anweisungslernen ~ Umgebungskonstruktion ~ Docker + MySQL
Aufbau einer GPU-Umgebung mit Docker [Version Oktober 2020]
Schienenumgebungskonstruktion mit Docker (persönliche Apokalypse)
Sapper × Go (Echo) × Aufbau einer Docker-Entwicklungsumgebung
[Docker] Entwicklung der Entwicklungsumgebung Rails6 / Ruby2.7 / MySQL8
Aufbau der Spring Boot + Docker Java-Entwicklungsumgebung
Docker + Laravel + Codeception
[Java] Umgebungskonstruktion
[Frühling] Umweltbau
Installieren Sie einfach Laravel 8 auf dem Docker in der PHP8-Umgebung
Erstellen Sie eine Laravel / Docker-Umgebung mit VSCode devcontainer
Erstellen einer Kaggle-Umgebung mit offiziellem Docker und vscode
Aufbau einer IntelliJ + Docker (APP + DB) + SpringBoot (Maven) -Umgebung
Konstruktions- und Entwicklungsverfahren für lokale WordPress-Umgebungen mit Docker
Aufbau der Penronse-Umgebung [Windows]
[Flattern] Ubuntu 20.04 Umgebungskonstruktion
Erstellen Sie die Entwicklungsumgebung von Docker + Laravel PHP + Vue.j in 5 Minuten
Java Entwicklungsumgebung Konstruktion
Docker-Container-Nutzungsszene
Machen Sie die stärkste Laravel-Entwicklungsumgebung (Docker) in Japan
Erstellen einer Datenbankumgebung mit Docker in Spring Boot (IntellJ)
Erstellung einer Datenanalyseumgebung mit Docker (persönliches Memorandum)
Erstellen Sie eine Entwicklungsumgebung für Rails-Anwendungen mit Docker [Docker, Rails, Puma, Nginx, MySQL]
Aufbau der Rails6-Entwicklungsumgebung [Mac]
[Spring Boot] Umgebungskonstruktion (macOS)
WSL2 + VSCode + Docker-Entwicklungsumgebung
Rails Engineer Environment Construction Ruby2.7.1
[Docker] Erstelle eine elastische Suche, Kibana-Umgebung!