Créer un projet Laravel à l'aide du conteneur compositeur; 2. écrivez un Dockerfile contenant des extensions PHP et une configuration Apache; 3. Définir les services de l'application, MySQL et PhpMyAdmin via docker-compose.yml; 4. Configurez l'h?te virtuel Apache pour prendre en charge le routage Laravel; 5. Mettez à jour le fichier .env pour configurer les connexions de la base de données; 6. Exécutez docker-compose up -d --build pour démarrer le conteneur; 7. Exécuter l'installation du compositeur et la génération de clés dans le conteneur; 8. Effectuer éventuellement la migration; 9. Utilisez Docker-Compose Exec pour exécuter la commande Artisan pendant le développement, et le code est synchronisé en temps réel. Après avoir modifié le Dockerfile, l'image doit être reconstruite et réalisez enfin le déploiement de l'environnement de développement local de Laravel dans Docker.
La configuration de Laravel avec Docker n'est pas compliquée une fois que vous comprenez les bases des conteneurs et comment structurer vos services. Voici un guide pratique pour obtenir un projet Laravel en cours d'exécution dans Docker à l'aide Docker Compose
.

? 1. Créez un nouveau projet Laravel (ou utilisez celui existant)
Si vous démarrez frais, utilisez le compositeur via Docker pour créer l'application Laravel:
Docker Run --RM -V $ (PWD): / App Composer Create-Project - Prefer-Dist Laravel / Laravel My-Laravel-App
Remplacez my-laravel-app
par le nom de votre projet. Cela évite d'avoir besoin de compositeur installé localement.

Naviguez maintenant dans votre projet:
CD My-Laravel-App
? 2. Créez le dockerfile
Créez un Dockerfile
dans la racine du projet pour définir l'environnement PHP:

# Utilisez PHP 8.3 avec Apache (vous pouvez également utiliser nginx) De PHP: 8.3-APACHE # Installer les dépendances du système Exécutez la mise à jour apt-get && apt-get install -y \ git \ curl \ libpng-dev \ libonig-dev \ libxml2-dev \ fermeture éclair \ dézipper # Cache clair Exécuter apt-get clean && rm -rf / var / lib / apt / lists / * # Installez les extensions PHP Exécuter docker-php-extal-stal # Installer le compositeur Copier --From = Compositeur: Dernier / USR / bin / compositeur / usr / bin / compositeur # Définir le répertoire de travail Workdir / var / www / html # Copier le code d'application existant Copie. / var / www / html / # Copier Apache Vhost Config Copy .docker / vhost.conf /etc/apache2/sites-available/000-default.conf # Activer Mod_rewrite pour les routes Laravel Exécuter A2enmod réécriture # Correction des autorisations Run chown -r www-data: www-data / var / www / html
? 3. Configurer Docker Compose
Créez un fichier docker-compose.yml
dans la racine:
Version: '3.8' services: App: construire: contexte: . dockerfile: dockerfile PORTS: - "8000: 80" environnement: - apache_run_user = www-data - apache_run_group = www-data Volumes: -.: / var / www / html DenFend_on: - DB DB: Image: MySQL: 8.0 Commande: - Default-Authentication-Plugin = mysql_native_password redémarrer: toujours environnement: Mysql_database: Laravel Mysql_root_password: rootpassword Mysql_user: Laravel_user Mysql_password: Laravel_password PORTS: - "3306: 3306" Volumes: - mysql_data: / var / lib / mysql phpmyadmin: Image: phpmyadmin / phpmyadmin PORTS: - "8080: 80" environnement: PMA_HOST: DB PMA_USER: Laravel_user PMA_PASSWORD: Laravel_password DenFend_on: - DB Volumes: mysql_data:
Facultatif: supprimez
phpmyadmin
si vous n'en avez pas besoin.
? 4. Configurer l'h?te virtuel Apache
Créer un fichier .docker/vhost.conf
:
<Virtualhost *: 80> Servername localhost Documentroot / var / www / html / public <Répertoire / var / www / html / public> Allaiter tout Exiger tous les accords Les index d'options suivent </ Directory> Errorlog $ {apache_log_dir} /error.log Customlog $ {apache_log_dir} /access.log combiné </ Virtualhost>
Cela permet .htaccess
et mod_rewrite
pour le routage de Laravel.
? 5. Mettre à jour l'environnement Laravel
Modifiez votre fichier .env
(créez-le à partir de .env.example
):
App_name = laravel App_env = local App_key = App_debug = true App_url = http: // localhost: 8000 Db_connection = mysql Db_host = db Db_port = 3306 Db_database = laravel Db_username = laravel_user Db_password = laravel_password
Remarque: DB_HOST=db
correspond au nom du service dans docker-compose.yml
.
? 6. Construire et exécuter des conteneurs
Exécutez cette commande dans votre terminal:
docker-compose up -d --build
Cela construit le conteneur d'applications, démarre MySQL et PhpMyAdmin.
? 7. Installez les dépendances de Laravel et générez une clé
Exécutez l'installation du compositeur et générez la touche d'application à l'intérieur du conteneur:
Docker-Compose Exec App Composer Install Docker-Compose Exec App Php Artisan Key: Générer docker-compose exec app php artisan config: cache
? 8. Exécuter les migrations (facultatif)
Appliquer les migrations de Laravel:
docker-compose exec app php artisan migrer
Vous pouvez maintenant accéder:
- Application Laravel:
http://localhost:8000
- phpmyadmin:
http://localhost:8080
(facultatif)
? 9. Conseils de développement
- Votre code est monté par volume, donc les modifications locales se reflètent instantanément.
- Pour les commandes artisanales, utilisez toujours:
docker-compose exec app php artisan <rand>
- Si vous ajoutez des extensions de PHP ou modifiez le
Dockerfile
, reconstruisez:application docker-compose build
? Notes finales
Cette configuration vous donne:
- Laravel fonctionnant sur Apache Php
- Base de données MySQL
- GUI facultatif via phpmyadmin
- Isolement de docker complet
Vous pouvez échanger Apache pour Nginx PHP-FPM pour la production, mais cela est parfait pour le développement local.
Fondamentalement, gardez simplement votre
.env
,Dockerfile
etdocker-compose.yml
en synchronisation - et vous êtes prêt à y aller.Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Il existe trois fa?ons d'ajouter des règles de validation personnalisées dans Laravel: en utilisant les fermetures, les classes de règles et les demandes de formulaire. 1. Utilisez les fermetures pour être adaptées à la vérification légère, comme empêcher le nom d'utilisateur "admin"; 2. Créez des classes de règles (telles que ValidUsernamerule) pour rendre la logique complexe plus claire et maintenable; 3. Intégrer plusieurs règles dans les demandes de formulaire et gérer de manière centralisée la logique de vérification. Dans le même temps, vous pouvez définir des invites via des méthodes de messages personnalisés ou des réseaux de messages d'erreur entrants pour améliorer la flexibilité et la maintenabilité.

Les méthodes de base pour les applications Laravel pour implémenter le support multilingue comprennent: la définition des fichiers linguistiques, la commutation de langage dynamique, le routage des URL de traduction et la gestion des clés de traduction dans les modèles de lame. Tout d'abord, organisez les cha?nes de chaque langue dans les dossiers correspondants (tels que EN, ES, FR) dans le répertoire / Resources / Lang, et définissez le contenu de traduction en renvoyant le tableau associatif; 2. Traduire la valeur de clé via l'appel de fonction d'assistance \ _ \ _ () et utilisez l'application :: setLocale () pour combiner des paramètres de session ou de routage pour réaliser la commutation du langage; 3. Pour les URL de traduction, les chemins peuvent être définis pour différentes langues via des groupes de routage préfixés ou par voie d'alias dans les fichiers linguistiques mappés dynamiquement; 4. Gardez les touches de traduction concises et

TOWORKEFFECTECTEMENTSWitHPivottablesInLaravel, FirstAccessPivotDatauSingWithPivot () Orwithtimestamps (), ThepDateEntrieswitHupDateExistPivot (), ManagerLeshipSviaDeTache

LaravelprovidesAcleanAndFlexiblewayToSendNotificationsViamultipleChannelsLikeEmail, SMS, In-Appakets, andpushNotifications.youdefinenotificationChannelsInthevia () MethodofanotificationClass, ANDIDEFINENOTIFICATIONSECHETHODSLIKETOMAIL (), ToDatabase (), Ortovonage

ServiceProvider est le mécanisme de base utilisé dans le cadre Laravel pour l'enregistrement des services et l'initialisation de la logique. Vous pouvez créer un ServiceProvider personnalisé via la commande Artisan; 1. La méthode de registre est utilisée pour lier les services, enregistrer des singletons, définir des alias, etc., et d'autres services qui n'ont pas encore été chargés ne peuvent pas être appelés; 2. La méthode de démarrage s'exécute après que tous les services sont enregistrés et sont utilisés pour enregistrer les écouteurs d'événements, afficher les synthétiseurs, middleware et autres logiques qui dépend d'autres services; Les utilisations courantes incluent les interfaces et les implémentations de liaison, l'enregistrement des fa?ades, le chargement des configurations, l'enregistrement des instructions de ligne de commande et des composants de vue; Il est recommandé de centraliser les liaisons pertinentes à un ServiceProvider pour gérer et de faire attention à l'enregistrement

L'injection de dépendance gère automatiquement les dépendances de classe via des conteneurs de service dans Laravel sans de nouveaux objets manuels. Son noyau est l'injection de constructeur et l'injection de méthode, comme le passage automatiquement de l'instance de demande dans le contr?leur. Laravel analyse les dépendances via des invites de type et crée récursivement les objets requis. L'interface de liaison et l'implémentation peuvent être utilisées par le fournisseur de services pour utiliser la méthode Bind, ou singleton pour lier un singleton. Lorsque vous l'utilisez, vous devez vous assurer des invites de type, éviter les complications du constructeur, utiliser les liaisons contextuelles avec prudence et comprendre les règles d'analyse automatique. La ma?trise peut améliorer la flexibilité et la maintenance du code.

Les méthodes de base pour gérer les exceptions et les erreurs d'enregistrement dans les applications Laravel incluent: 1. Utilisez la classe App \ Exceptions \ Handler pour gérer de manière centralisée les exceptions non gérées, et enregistrer ou notifier les informations d'exception via la méthode Report (), telles que l'envoi de notifications Slack; 2. Utilisez Monolog pour configurer le système de journal, définissez le niveau de journal et la méthode de sortie dans config / logging.php et activer les journaux d'erreur et supérieurs à l'environnement de production. Dans le même temps, des informations d'exception détaillées peuvent être enregistrées manuellement dans report () en combinaison avec le contexte; 3. Personnalisez la méthode Render () pour retourner une réponse d'erreur de format JSON unifié, améliorant l'efficacité de collaboration de l'extrémité avant et arrière de l'API. Ces étapes sont

L'optimisation des performances de Laravel peut améliorer l'efficacité de l'application à travers quatre directions de base. 1. Utilisez le mécanisme de cache pour réduire les requêtes en double, stocker rarement la modification des données via Cache :: Remember () et d'autres méthodes pour réduire la fréquence d'accès à la base de données; 2. Optimiser la base de données de la requête du modèle aux requêtes, évitez les requêtes N 1, spécifiant les requêtes de champ, ajoutant des index, pagination de traitement et de lecture et de séparation d'écriture et réduire les goulots d'étranglement; 3. Utilisez des opérations longues telles que l'envoi d'e-mails et l'exportation de fichiers vers le traitement asynchrone de file d'attente, utilisez le superviseur pour gérer les travailleurs et configurer des mécanismes de réessayer; 4. Utilisez raisonnablement les fournisseurs de middleware et de services pour éviter une logique complexe et un code d'initialisation inutile et retarder le chargement des services pour améliorer l'efficacité du démarrage.
