Construction de l'environnement d'utilisation Laravel + Docker Laradock

Présentation de l'environnement de développement pour exécuter Laravel à l'aide de Laradock. Puisque j'apprends par moi-même par essais et erreurs, il peut y avoir des erreurs, mais je vous serais reconnaissant si vous pouviez signaler ce cas.

Préparez-vous à utiliser Docker

Construire un environnement de développement avec Laradock

Nous allons créer un environnement de développement pour exécuter Laravel en utilisant Laradock.

Qu'est-ce que Laradock

Le site officiel a un environnement merveilleux pour exécuter des projets Laravel (PHP) sur Docker. https://laradock.io/

En utilisant Laradock, vous pouvez facilement créer un serveur Web ou une base de données sur Docker.

Caractéristique

・ Vous pouvez facilement basculer entre les versions de PHP (7.3 / 7.2 / 7.1 / 5.6) ・ Vous pouvez sélectionner votre moteur de base de données préféré (MySQL / Postgres / MariaDB ...) ・ La combinaison de logiciels originaux tels que Memcached, HHVM, Beanstalkd est possible -Tous les logiciels tels que PHP-FPM, NGINX, PHP-CLI fonctionnent sur des conteneurs séparés -Toutes les images Docker sont construites à partir d'images officiellement basées Vous pouvez utiliser Laradock pour chaque projet ou un seul Laradock pour tous les projets.

Ouvrez un terminal et créez un répertoire

Tout d'abord, ouvrez un terminal et faites correspondre le chemin à l'emplacement où vous souhaitez créer le répertoire. Vous pouvez trouver l'emplacement de votre chemin de fichier actuel avec pwd.

//Il affichera l'emplacement du répertoire actuel avec un chemin absolu.
$ pwd
//Créez un nouveau répertoire.
$nom du répertoire mkdir
//Accédez au répertoire créé par la commande cd.
$cd Nom du répertoire créé
//Vérifiez le chemin absolu du répertoire créé
$ pwd

Installez laradock

Après avoir créé le répertoire, installez laradock là-bas.

Exécutez la commande suivante.

//Je fais que je copie le fichier laradock de GitHub en utilisant un mécanisme appelé git
$ git clone https://github.com/Laradock/laradock.git -b v9.6

Vous devriez voir quelques lignes de message disant Clonage dans'laradock '...

Lorsque vous avez terminé, vérifiez si le répertoire appelé commande ls est créé.

$ ls

laradock

Créer un fichier .env laradock

Ensuite, créez un fichier .env, qui est l'un des fichiers liés aux paramètres laradock. laradock prépare un fichier d'exemple d'environnement comme modèle pour le fichier .env, je vais donc le créer sur cette base.

Veuillez saisir les informations suivantes:

$ cd laradock
$ cp env-example .env

cp est une commande pour copier des fichiers.

cp Nom du fichier source de la copie Entrez le nom du fichier de destination de la copie à utiliser.

Vous avez maintenant créé un fichier .env basé sur le fichier d'exemple env.

Modifiez le fichier .env laradock

Ensuite, modifiez le fichier .env à l'aide d'un éditeur, etc.

.
└── Répertoire créé
    └── laradock
        └── .env

Après avoir ouvert le fichier .env, recherchez chacune des parties suivantes et modifiez-les comme décrit.

//Changer avant
APP_CODE_PATH_HOST=../
DATA_PATH_HOST=~/.laradock/data
COMPOSE_PROJECT_NAME=laradock
//Après le changement
//Un répertoire à synchroniser sur le serveur Web de Laradock. Laradock lui-même n'a pas besoin d'être sur le docker séparément, donc seul le répertoire du projet laravel est synchronisé. Le nom du répertoire dans lequel laravel est monté.
APP_CODE_PATH_HOST=../laravel
//Un répertoire sur le PC local qui stocke le stockage Docker, etc. Par défaut, la base de données, etc. est enregistrée dans le répertoire de base. Changez-le sous le répertoire du projet
DATA_PATH_HOST=../data
//Si vous souhaitez créer un nouvel environnement laradock pour chaque projet, remplacez le nom du répertoire par celui que vous avez créé.
COMPOSE_PROJECT_NAME=Nom du répertoire créé

Lancer l'environnement de développement à l'aide de Docker

Ensuite, utilisez Docker pour lancer l'environnement de développement.

L'unité de chaque service exécuté sur Docker est appelée un conteneur.

Ici, démarrez les quatre conteneurs suivants.

・ Espace de travail ・ Php-fpm ・ Nginx ・ Postgres

php-Qu'est-ce que fpm
PHP FastCGI(Le processus démarré au moment de la première requête est conservé dans la mémoire et le processus conservé dans cette mémoire est exécuté pour la requête suivante.

Il a les fonctions suivantes.

Ample(graceful)/

/gid/chroot/.(safe_)

Gestion avancée des processus, y compris les capacités de lancement Démarrage des travailleurs dans différents environnements uiden, écoute sur différents ports, utilisation de différents modes phpini Alternance de la sortie standard et de la sortie du journal vers la sortie d'erreur standard

Redémarrage d'urgence si le cache de l'opcode est corrompu

Prise en charge des téléchargements rapides

"slowlog" -Enregistrer un script avec un temps d'exécution très long(Il enregistre le backtrace PHP ainsi que le nom du script. Pour obtenir le backtrace, exécutez le processus distant à l'aide de ptrace ou d'un mécanisme équivalent_Lire les données)

fastcgi_finish_request() -Quelque chose de processus qui prend du temps(Conversion vidéo, traitement des informations statistiques, etc.)Une fonction spéciale pour terminer la requête et sortir toutes les données tout en continuant

dynamique/Appel d'un processus enfant statique

(Mod Apache_Équivalent au statut)

php.fichier de configuration basé sur ini
Qu'est-ce que CGI
PHP sur le serveur Web(Langues qui génèrent du contenu dynamique)C'est un mécanisme à opérer.
CGI génère et détruit les processus chaque fois qu'un utilisateur les demande. S'il y a un grand nombre de demandes, les processus seront créés et détruits en conséquence, ce qui entraînera de mauvaises performances.
Qu'est-ce que FastCGI
Le processus démarré au moment de la première requête est conservé dans la mémoire et le processus conservé dans cette mémoire est exécuté pour la requête suivante. Il résout les problèmes CGI, accélère les programmes et réduit la charge du serveur.

Il y a des postgres dans le conteneur pour démarrer, qui est un système de base de données appelé PostgreSQL.

Cette fois, PostgreSQL utilisera la version 11.6.

Par conséquent, modifiez la première ligne du Dockerfile dans le répertoire laradock / postgres comme suit.

laradock/postgres/Dockerfile.



1  FROM postgres:11.6

Lorsque vous avez terminé l'édition, allez dans "Répertoire créé / Répertoire laradock" dans le terminal.

$ cd ~/Répertoire créé/laradock

Entrez ensuite la commande suivante.

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

La signification de la commande est la suivante.

docker-compose est une commande permettant d'utiliser une fonction appelée Docker Compose qui gère plusieurs conteneurs en même temps. up est la commande utilisée pour démarrer le conteneur avec Docker Compose -d est une option pour revenir au fonctionnement du terminal après le lancement du conteneur

Lorsque j'exécute la commande, je reçois beaucoup de messages.

À la première fois, le logiciel lui-même (image Docker) de chaque conteneur est téléchargé, il faut donc environ plusieurs minutes pour démarrer le conteneur.

Lorsque le message suivant s'affiche à la fin, le conteneur a été démarré avec succès.

Création du répertoire créé_docker-in-docker_1 ... done
Création du répertoire créé_workspace_1        ... done
Création du répertoire créé_php-fpm_1          ... done
Création du répertoire créé_nginx_1            ... done
Création du répertoire créé_porstgres_1        ... done

Si vous ne voyez pas ces 5 messages, essayez à nouveau docker-compose up -d workspace php-fpm nginx postgres.

Une fois le conteneur démarré, lancez votre navigateur et saisissez localhost dans la barre d'adresse.

Si vous obtenez 404 Not Found, c'est OK.

Si vous souhaitez arrêter le conteneur, entrez la commande suivante.

$ docker-compose stop

Si vous souhaitez redémarrer le conteneur, entrez la commande suivante.

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

Installez Laravel

Entrez la commande suivante dans le répertoire créé / répertoire laradock.

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

Pour exécuter des commandes commençant par docker-compose, vous devez vous déplacer vers le répertoire créé / laradock, puis l'exécuter.

L'installation prendra quelques minutes. Lorsque le message s'affiche, de nombreux fichiers doivent être créés dans le répertoire créé / laravel.

Si vous attendez un moment, l'installation ne démarrera pas,

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

Si le message s'affiche, remplacez la partie "6.8. *" De la commande par "6. *. *" Et installez.

Visitez la page d'accueil de Laravel

Après avoir installé Laravel, accédez à localhost avec votre navigateur. C'est OK si l'écran suivant s'affiche.

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

Réglez l'heure de Laravel sur l'heure japonaise

Par défaut, le réglage de l'heure de Laravel est UTC (Accord World Time), soit 9 heures plus tard que l'heure du Japon.

Changez ceci en heure du Japon.

Modifiez le fuseau horaire du répertoire / created / laravel / config / app.php en "Asie / Tokyo", comme suit.

.
└── Répertoire créé
    └── laravel
        └── config
            └── app.php

laravel/config/app.php.


//Abréviation
    /*
    |--------------------------------------------------------------------------
    | 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', //--Changer cette ligne
//Abréviation

Ceci termine l'installation de Laravel.

Recommended Posts

Construction de l'environnement d'utilisation Laravel + Docker Laradock
Créez un environnement Docker + Laravel avec Laradock
Construction de l'environnement de développement Laravel avec Docker (Mac)
Construire un environnement pour Laravel + MySQL + phpMyadmin avec Docker
Construction de l'environnement Rails Docker
Mémo de construction de l'environnement MySQL 5.7 (Docker)
Mémo de construction de l'environnement Redmine (Docker)
[Docker] Construction de l'environnement Rails 5.2 avec docker
Construction de l'environnement Docker × Spring Boot
[Docker] postgres, construction de l'environnement pgadmin4
Construction de l'environnement Laravel (Ubuntu 18.04 LTS)
Rails sur la procédure de construction de l'environnement Docker
[Construction de l'environnement avec Docker] Rails 6 et MySQL 8
Apprentissage des instructions SQL ~ Construction de l'environnement ~ Docker + MySQL
Construction de l'environnement GPU avec Docker [version d'octobre 2020]
Construction d'environnement de rails avec Docker (apocalypse personnelle)
Sapper × Go (écho) × Construction de l'environnement de développement Docker
[Docker] Construction de l'environnement de développement Rails6 / Ruby2.7 / MySQL8
Construction de l'environnement de développement Java Spring Boot + Docker
Docker + Laravel + Codeception
[Java] Construction de l'environnement
[Printemps] Construction de l'environnement
Installez simplement Laravel 8 sur le docker dans l'environnement PHP8
Créer un environnement Laravel / Docker avec VSCode devcontainer
Créer un environnement Kaggle à l'aide de Docker officiel et de vscode
Construction de l'environnement IntelliJ + Docker (APP + DB) + SpringBoot (Maven)
Procédure de construction et de développement de l'environnement local Wordpress avec Docker
Construction de l'environnement Penronse [Windows]
[Flutter] Construction de l'environnement Ubuntu 20.04
Créez un environnement de développement Docker + Laravel PHP + Vue.js en 5 minutes
construction d'environnement de développement Java
Scène d'utilisation du conteneur Docker
Faire de l'environnement de développement Laravel (Docker) le plus puissant du Japon
Création d'un environnement de base de données avec Docker dans Spring Boot (IntellJ)
Construction d'un environnement d'analyse de données avec Docker (mémorandum personnel)
Créez un environnement de développement d'applications Rails avec Docker [Docker, Rails, Puma, Nginx, MySQL]
Construction de l'environnement de développement Rails6 [Mac]
[Spring Boot] Construction de l'environnement (macOS)
Environnement de développement WSL2 + VSCode + Docker
Ingénieur Rails Environnement Construction Ruby2.7.1
[Docker] Créez une recherche élastique, environnement Kibana!