Maison  >  Article  >  outils de développement  >  Explication détaillée des étapes pour déployer des projets Github sur le serveur

Explication détaillée des étapes pour déployer des projets Github sur le serveur

PHPz
PHPzoriginal
2023-03-27 10:53:325461parcourir

Github est actuellement la plus grande communauté open source au monde. De nombreux programmeurs hébergent leur code sur Github pour utiliser ses fonctions pratiques de contrôle de version et de collaboration. Cependant, le projet sur Github n'est que du code et son déploiement sur le serveur pour son exécution nécessite un travail supplémentaire. Cet article vous présentera les étapes spécifiques.

1. Connectez-vous au serveur

Utilisez SSH pour vous connecter à distance et entrez la commande :

ssh root@your_server_ip

2. Installez le logiciel nécessaire

Installez Git et Node.js sur le serveur. En prenant le système Ubuntu comme exemple, exécutez la commande suivante :

sudo apt-get update
sudo apt-get install git
sudo apt-get install nodejs

3. Créez un référentiel Git sur le serveur

Créez un répertoire vide sur le serveur et initialisez-y un référentiel Git, exécutez la commande suivante :

mkdir myapp
cd myapp
git init --bare

4. Configurez Git Hooks

Ajoutez un hook de post-réception dans le référentiel Git pour déployer automatiquement l'application :

cd hooks
touch post-receive
sudo chmod +x post-receive
nano post-receive

Entrez le contenu suivant dans l'éditeur de texte ouvert :

#!/bin/bash
git --work-tree=/var/www/html/myapp --git-dir=/root/myapp.git checkout -f
cd /var/www/html/myapp
sudo npm install

Le. Le script extraira automatiquement le code dans /var/www/html/myapp et exécutera la commande npm install pour installer les dépendances du projet.

5. Configurez les Webhooks sur Github

Connectez-vous à Github, cliquez sur l'option Webhooks dans la page Paramètres du projet, puis cliquez sur le bouton Ajouter un webhook. Entrez l'adresse IP du serveur et le chemin d'accès au hook de post-réception dans l'URL de charge utile, par exemple : http://your_server_ip:8000/hooks/post-receive. Sélectionnez application/json dans Type de contenu et cliquez sur Ajouter un webhook.

6. Ajoutez l'adresse du serveur dans le code local

Modifiez le fichier package.json dans le code local et ajoutez le contenu suivant :

{
  "scripts": {
    "start": "node app.js",
    "deploy": "git push deploy master"
  },
  "config": {
    "deploy": {
      "production": {
        "user": "root",
        "host": "your_server_ip",
        "ref": "origin/master",
        "repo": "ssh://git@your_server_ip:/root/myapp.git",
        "path": "/var/www/html/myapp",
        "ssh_options": ["StrictHostKeyChecking=no", "PasswordAuthentication=no"],
        "post-deploy": "npm install && pm2 restart app"
      }
    }
  }
}

Parmi eux, le script de déploiement poussera le code vers le myapp.git Warehouse sur le serveur dans ; certains éléments de configuration sont définis dans config/deploy/production, notamment l'adresse IP du serveur, le chemin du projet, le chemin du hook, etc.

7. Exécuter le déploiement du code

Exécutez la commande suivante dans le répertoire de code local :

npm run deploy production

Cette commande poussera le code vers le serveur, déclenchera le hook post-réception et déploiera automatiquement le code sur /var/. Répertoire www/html/myapp.

8. Démarrez l'application

Allez dans le répertoire /var/www/html/myapp et exécutez la commande suivante pour démarrer l'application :

npm start

L'application devrait maintenant pouvoir s'exécuter sur le serveur ! Si l'application ne démarre pas, vous devez vérifier que les dépendances sont correctement installées et que l'application est correctement configurée.

Résumé :

Voici les étapes ci-dessus pour déployer le projet sur Github sur le serveur. Bien que ce processus puisse sembler fastidieux, l’utilisation de cette approche permet un déploiement de code et une collaboration efficaces. Dans le même temps, cela nous offre également d'excellentes opportunités d'apprentissage, nous permettant d'avoir une compréhension plus approfondie de Git, Node.js et d'autres technologies.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn