Maison >développement back-end >tutoriel php >Déployez votre site Web à l'aide de Laravel et Git
Points de base
.gitignore
pour ignorer certains fichiers et vérifier s'ils existent avant d'exécuter l'itinéraire de déploiement. Les autres méthodes incluent la protection par mot de passe ou la restriction d'adresse IP.
Le développement Web réussi est inséparable à partir de workflows de déploiement de sites Web efficaces. Que votre flux de travail soit bon ou mauvais ou non, si le site Web n'est pas disponible, les clients ne pourront pas payer les fruits de votre travail acharné.
Il existe de nombreuses façons de déployer un site Web sur un serveur de production, chacun avec ses avantages et ses inconvénients, mais les méthodes de départ et de fin sont les mêmes. La clé d'un bon flux de travail de déploiement de site Web est les étapes intermédiaires.
L'autre jour, j'ai utilisé Filezilla pour télécharger des fichiers sur mon serveur de production. J'ai toujours senti que l'interface de Filezilla n'était pas très sympathique, mais pendant longtemps, je pensais que c'était une pratique standard.
Pour le même projet, j'utilise également GIT pour suivre les modifications des fichiers. Quand j'ai commencé à taper git push origin
, je me suis arrêté et j'ai pensé un instant. Si le déploiement du site Web est aussi simple que de pousser un référentiel GIT, ne serait-il pas beaucoup plus pratique?
y penser attentivement, Git est l'outil parfait pour gérer les fichiers de déploiement du site Web. Il suit toutes les modifications de fichiers et pousse ou tire ce que vous voulez avec une seule commande. J'ai décidé de commencer à rechercher Google un moyen d'utiliser GIT lors du déploiement de mon propre site Web.
Une façon populaire pour déployer des sites Web à l'aide de GIT est de tirer le meilleur parti des crochets GIT (Tom Oram aime utiliser des méthodes similaires). Imaginez que Git Hooks démarrera un script prédéfini en tapant simplement git push origin
dans la console terminale. Ce script prédéfini accède à votre serveur de production et tire les dernières modifications de fichier. Vous pouvez également mettre à jour votre site Web en utilisant les mêmes commandes que les modifications push. Je pensais que cette approche était géniale jusqu'à ce que je réalise que ce n'est pas parce que je poussais le référentiel local que j'étais prêt à être en ligne.
Je veux un moyen de pousser un référentiel aussi simple que de l'utilisation de Git. Plus important encore, je veux avoir un contrôle total lors de la mise en ligne du contenu. J'ai trouvé un flux de travail similaire qui gère les transferts de fichiers à l'aide de GIT. Plus important encore, j'ai également constaté qu'il est possible d'utiliser le framework PHP Laravel pour automatiser des tâches plus répétitives.
Ce qui suit est le flux de travail de déploiement de mon site Web:
Paramètres structurels
Dans cette section, nous configurerons un référentiel de - Bare comme référentiel central et créerons deux référentiels par clonage. L'un est notre site Web local où nous effectuerons le processus de déploiement; Nous installerons également Laravel.
Avant de commencer, vous avez besoin d'un serveur local et d'un serveur de production avec GIT installé.
<code>ssh username@domain.com cd repos</code>Initialisez maintenant votre référentiel.
<code>git init --bare --shared mywebsite.git</code>
Ce dossier est généralement recommandé de le placer en dehors de la structure du dossier public. De cette façon, d'autres ne tombent pas accidentellement sur votre référentiel privé.2.
public_html
<code>cd ~/public_html/</code>
3.
<code>git clone username@domain.com:~/repos/mywebsite.git mywebsite exit</code>Si vous utilisez quelque chose comme Homestead, vous devrez peut-être utiliser la commande Vagrant sur SSH pour vous connecter à votre serveur local pour accéder à vos fichiers.
Suivez les étapes que vous venez de créer un site Web en ligne.
<code>vagrant ssh</code>
4.
Avant de configurer Laravel, vous devez l'installer sur votre site Web local.<code>cd websites git clone username@domain.com:~/repos/mywebsite.git mywebsite</code>
Installation Laravel
/app/config/remote.php
Souvenez-vous de la clé "Production", car nous devons la référencer plus tard.
<code>'connections' => array( 'production' => array( 'host' => 'domain.com', 'username' => 'username', 'password' => '********************', 'key' => '', 'keyphrase' => '', 'root' => '/var/www', ), ),</code>
Ajoutez vos fichiers au référentiel de sites Web local afin que nous puissions suivre toutes les modifications.Exécutez votre engagement initial.
<code>git add .</code>Enfin, poussez vers le référentiel central sur le serveur de production.
<code>git commit -m 'initial commit with laravel'</code>
<code>git push origin master</code>Lorsque vous accédez à votre Host local, vous devriez voir l'écran de Laravel "You Have Arrive".
bon travail! Vous avez tous configuré et configuré, et maintenant vous devriez être prêt à creuser dans un contenu intéressant.
flux de travail de base en utilisant git
Une fois tout configuré, il sera facile de déployer votre site Web à l'aide de Git. Regardons le code et essayons de comprendre son contenu principal.
Il est important de comprendre le flux de travail, car nous le réécrivrons plus tard dans PHP en utilisant Laravel. Cela nous aide également à déboguer les problèmes qui peuvent survenir.
<code>ssh username@domain.com cd repos</code>
<code>git init --bare --shared mywebsite.git</code>
Si vous avez tous été corrects jusqu'à présent, vous devriez voir l'écran de Laravel "You Have Arrive" lors de la visite de votre site en ligne.
Si vous voulez vous arrêter ici, je n'aurai aucune opinion sur vous. Il s'agit d'un flux de travail de déploiement assez fiable en soi. Mais nous pouvons le rendre plus efficace en l'automatisant avec Laravel.
Déploiement automatique avec Laravel
ok, maintenant que nous savons comment déployer un site Web à l'aide de Git, utilisons Laravel pour automatiser ce processus. Cette pièce peut ne pas être nécessaire, mais si vous utilisez déjà Laravel, je demanderais: «Pourquoi pas?» Utiliser Laravel ici rend ce flux de travail de déploiement de site Web simple, efficace, contrôlable et personnalisable.
Ouvrez la page /app
dans le dossier routes.php
et ajoutez la ligne de code PHP suivante au fichier.
<code>cd ~/public_html/</code>
Chaque fois que nous accédons à http://localhost/deploy
, la fonction commune du contrôleur Server
est exécutée. deploy
vide qui étend BaseController
. Server
<code>git clone username@domain.com:~/repos/mywebsite.git mywebsite exit</code>Insérez maintenant la fonction commune
dans le contrôleur. deploy
<code>vagrant ssh</code>Enregistrez-le dans votre dossier
et nommez-le /app/controllers
. Server.php
3.
deploy
Insérez la façade SSH. Nous voulons accéder à la configuration distante de production que nous avons configurée précédemment. Maintenant, la fonction
<code>cd websites git clone username@domain.com:~/repos/mywebsite.git mywebsite</code>acceptera deux paramètres que nous devons fournir. Le premier et le plus important paramètre est le tableau de commandes de terminal que nous voulons exécuter lors de l'exécution de la fonction
. run()
deploy
<code>'connections' => array( 'production' => array( 'host' => 'domain.com', 'username' => 'username', 'password' => '********************', 'key' => '', 'keyphrase' => '', 'root' => '/var/www', ), ),</code>
Maintenant, chaque fois que nous voulons déployer notre site Web, nous avons juste besoin de visiter
<code>git add .</code>. Assez simple? Oui, pas exactement.
http://localhost/deploy
Nous devons faire face à certaines vulnérabilités de sécurité avant de l'appeler la fin. Tout le monde peut tomber sur
Il existe de nombreuses façons de le faire, et nous pouvons affirmer quelle méthode est la plus sûre jusqu'à ce que nous soyons épuisés. Vous pouvez protéger le mot de passe de l'itinéraire, vous pouvez bloquer l'accès via une adresse IP, etc.
Dans cet exemple, nous utiliserons .gitignore
et vérifierons si le fichier existe, puis exécuterons l'itinéraire que nous venons de créer.
controllers
.gitignore
Créez un nouveau fichier et enregistrez-le dans Server.php
et nommez-le
/app/controllers
Ajoutez la ligne de texte suivante au fichier et enregistrez-la. .gitignore
5.
<code>ssh username@domain.com cd repos</code>Vous vous souvenez de l'itinéraire que nous avons créé avant de déployer notre site Web? Nous devons l'envelopper avec cette déclaration conditionnelle, puis nous pouvons aller en ligne.
Server.php
<code>git init --bare --shared mywebsite.git</code>
Soyez créatif
<code>cd ~/public_html/</code>
c'est tout! Enregistrez simplement tous les fichiers, engagements et poussées mis à jour et vous pouvez commencer à déployer avec des workflows adaptés à Git.
Vous pouvez aller plus loin si vous le souhaitez. Ajoutez simplement
à votre signet pour un déploiement rapide en un clic. Vous pouvez même créer un formulaire HTML simple à publier sur la page, vous permettant de tirer des branches spécifiques. Les possibilités sont infinies.
http://localhost/deploy
Veuillez partager avec moi les méthodes créatives que vous avez utilisées pour simplifier le déploiement du site Web!
FAQ (FAQ) pour le déploiement de sites Web avec Laravel et Git
Comment résoudre les conflits lors du déploiement d'un site Web Laravel à l'aide de Git? Les affrontements peuvent se produire lors du déploiement de sites Web Laravel à l'aide de GIT, en particulier lorsque plusieurs développeurs travaillent sur le même projet. Pour résoudre ces conflits, vous devez utiliser l'outil de résolution des conflits de Git. Lorsque le conflit se produit, Git mettra en pause la base de changement et vous donnera une chance de réparer le conflit. Vous pouvez ensuite utiliser
pour ajouter les fichiers résolus et utiliser Comment utiliser efficacement Git Branch dans mon projet Laravel? git add
git rebase --continue
Git Branch est un outil puissant pour gérer différentes versions de projets Laravel. Vous pouvez créer une nouvelle branche pour chaque fonctionnalité ou correction de bogue, qui vous permet de gérer plusieurs tâches simultanément sans affecter la base de code principale. Une fois la tâche terminée, vous pouvez fusionner les branches vers la base de code principale. Cette méthode garantit que la base de code principale reste stable et sans erreur.
Le processus de déploiement automatisé peut économiser beaucoup de temps et d'efforts. Vous pouvez utiliser Git Hooks, qui sont des scripts que GIT exécute avant ou après des événements tels que Commit, Push et Recevoir. Vous pouvez écrire un script qui déploie automatiquement votre site Web chaque fois que vous appuyez vers la branche principale. De cette façon, vous pouvez vous assurer que votre site Web est toujours cohérent avec les derniers modifications.
git fournit plusieurs façons de faire reculer les changements. Vous pouvez utiliser git revert
pour créer un nouvel engagement pour annuler les modifications apportées dans un engagement spécifique. Alternativement, vous pouvez utiliser git reset
pour déplacer le pointeur de tête vers le commit précédent, "oublié" le commit qui apparaît par la suite. Soyez prudent lorsque vous utilisez git reset
car il peut supprimer définitivement vos modifications.
La sécurité est un aspect important de tout projet de développement Web. Lors du déploiement de projets Laravel avec GIT, assurez-vous d'ajouter des fichiers sensibles (tels que .env
) à vos fichiers .gitignore
pour les empêcher d'être engagés dans le référentiel. De plus, les protocoles sécurisés tels que SSH ou HTTPS sont toujours utilisés lors de la poussée et du tirage du référentiel.
Le système de migration de Laravel est un outil puissant pour gérer les schémas de base de données. Lors du déploiement d'un projet, vous pouvez utiliser php artisan migrate
pour appliquer les migrations en attente. Cependant, soyez prudent lorsque vous travaillez avec plusieurs développeurs, car les migrations conflictuelles peuvent causer des problèmes. Tirez toujours les derniers changements du référentiel pour éviter les conflits avant de créer une nouvelle migration.
git est un puissant outil de collaboration. Vous pouvez utiliser les branches pour gérer les différentes fonctionnalités simultanément et utiliser les demandes de traction pour examiner et fusionner les modifications dans la base de code principale. De plus, l'outil de résolution des conflits de Git peut vous aider à résoudre les conflits qui se produisent lorsque vous fusionnez les modifications.
Git fournit un historique complet de tous les changements dans le projet. Vous pouvez afficher l'historique des engagements à l'aide de git log
et utiliser git diff
pour afficher les modifications apportées dans un engagement spécifique. Ceci est très utile pour déboguer et comprendre l'évolution du projet.
L'optimisation des performances est un aspect clé du développement Web. Lors du déploiement de sites Web Laravel avec GIT, vous pouvez utiliser la mise en cache intégrée de Laravel pour améliorer les performances. Envisagez également d'utiliser CDN pour fournir des ressources statiques et optimisez vos images et autres ressources pour réduire le temps de chargement.
La gestion correcte des erreurs et des exceptions est essentielle pour une expérience utilisateur fluide. Laravel fournit un puissant système de gestion des exceptions que vous pouvez utiliser pour gérer différents types d'erreurs. Lorsqu'une erreur se produit, vous pouvez utiliser GIT pour revenir à l'état stable précédent tout en fixant l'erreur.
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!