


Le seul guide VPS dont vous aurez besoin : de la configuration à la production en étapes simples
Configurer un VPS prêt pour la production est beaucoup plus simple que je ne le pensais - Meilleur guide sur la façon de déployer du code backend en production
- ?Connectez-vous : https://www.subham.online
- ?GitHub : https://github.com/Subham-Maity
- ?Twitter : https://twitter.com/TheSubhamMaity
- ?LinkedIn : https://www.linkedin.com/in/subham-xam
- ?Insta : https://www.instagram.com/subham_xam
Soyons réalistes... Fatigué des tutoriels de déploiement qui vous laissent en suspens ? Ouais, moi aussi.
Écoutez, j'ai remarqué quelque chose en aidant d'autres développeurs : la plupart des guides sautent les étapes petites mais super importantes. Vous savez ce qui se passe ensuite ? Vous êtes coincé avec des erreurs à minuit, ouvrant 50 onglets de navigateur pour essayer de comprendre ce qui ne va pas.
C'est pourquoi j'ai créé ce guide. Je vais vous guider à travers CHAQUE étape du déploiement de votre serveur. Que vous travailliez avec :
- Node.js
- Partez
- Démarrage de printemps (Java)
- Rouille
- Django
- Laravel
- Flacon
- Ou tout autre serveur
Je couvrirai ces petits détails qui font généralement trébucher les gens.
Pensez à cela comme à votre ami assis à côté de vous, vous aidant à déployer votre serveur sans vous arracher les cheveux ?.
Vous êtes coincé quelque part ? Commentez ci-dessous ou envoyez-moi un message directement. En fait, je réponds !
Prêt à déployer votre serveur de la bonne manière ? Commençons !
1️⃣ Première étape - Connectez le VPS
✅ 1. Choisissez un fournisseur d'hébergement
Achetez un plan VPS auprès de n'importe quel fournisseur d'hébergement.
✅ 2. Obtenez les informations d'identification
Que vous soyez indépendant ou que vous travailliez dans un bureau, vous aurez besoin de trois choses :
- Adresse IP :568.82.48.166
- Nom d'utilisateur : root
- Mot de passe : Subham@Xam_08
Exemple :
568.82.48.166 root Subham@Xam_08
✅ 3. Connectez-vous via le terminal
Ouvrez votre terminal et tapez :
ssh root@568.82.48.166
✅ 4. Vérifiez la connexion
Vous verrez un message comme celui-ci :
The authenticity of host '568.82.48.166 (568.82.48.166)' can't be established. ED33319 key fingerprint is SHA256:kLP3I9......QgQI. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Tapez simplement oui.
✅ 5. Entrez le mot de passe
Ensuite, il vous demandera :
Warning: Permanently added '568.82.48.166' (ED25519) to the list of known hosts. root@568.82.48.166's password:
Collez votre mot de passe (Subham@Xam_08) et appuyez sur Entrée.
(Remarque : le terminal n'affichera aucun caractère lors de la saisie du mot de passe. Appuyez simplement sur Entrée.)
✅ 6. Succès !
Si tout est correct, vous verrez :
Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Dec 21 11:56:39 PM UTC 2024 System load: 0.01555554443125 Processes: 292 Usage of /: 2.1% of 20000.02GB Users logged in: 0 Memory usage: 5% IPv4 address for kms160: 568.82.48.166 Swap usage: 0% * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s just raised the bar for easy, resilient and secure K8s cluster deployment. https://ubuntu.com/engage/secure-kubernetes-at-the-edge 137 updates can be applied immediately. To see these additional updates run: apt list --upgradable *** System restart required *** Last login: Mon Dec 9 06:55:53 2024 from 203.145.52.235 root@ajfaljflaf:~#
Que signifie root@ajfaljflaf:~# ?
Cette invite confirme que vous êtes connecté au serveur avec le nom d'hôte ajfaljflaf en tant qu'utilisateur root. Vous êtes maintenant prêt à exécuter des commandes et à configurer votre serveur.
2️⃣ Deuxième étape : Préparez votre système
✅ 1. Effacer le terminal
Une fois connecté, tapez :
568.82.48.166 root Subham@Xam_08
✅ 2. Vérifier les répertoires
Vérifiez votre répertoire actuel et listez les fichiers :
ssh root@568.82.48.166
Exemple de résultat :
The authenticity of host '568.82.48.166 (568.82.48.166)' can't be established. ED33319 key fingerprint is SHA256:kLP3I9......QgQI. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
✅ 3. Mettre à jour la liste des colis
Actualisez la liste des packages pour garantir les dernières mises à jour :
Warning: Permanently added '568.82.48.166' (ED25519) to the list of known hosts. root@568.82.48.166's password:
Exemple de résultat :
Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Dec 21 11:56:39 PM UTC 2024 System load: 0.01555554443125 Processes: 292 Usage of /: 2.1% of 20000.02GB Users logged in: 0 Memory usage: 5% IPv4 address for kms160: 568.82.48.166 Swap usage: 0% * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s just raised the bar for easy, resilient and secure K8s cluster deployment. https://ubuntu.com/engage/secure-kubernetes-at-the-edge 137 updates can be applied immediately. To see these additional updates run: apt list --upgradable *** System restart required *** Last login: Mon Dec 9 06:55:53 2024 from 203.145.52.235 root@ajfaljflaf:~#
Si vous rencontrez des avertissements ou des erreurs, examinez-les pour vous assurer qu'ils ne bloquent pas les mises à jour essentielles.
✅ 4. Mettre à niveau les packages installés
Installez les mises à jour et mises à niveau disponibles :
clear
Exemple d'invite :
pwd ls
Tapez oui pour continuer.
✅ 5. Gérer les invites de mise à niveau
Pendant la mise à niveau, vous pouvez voir des invites de configuration :
- Exemple 1 : Confirmer les actions Sélectionnez « OK » à l'aide de la touche Tab et appuyez sur Entrée :
- Exemple 2 : Choisissez les valeurs par défaut Sélectionnez les options par défaut ou effectuez vos modifications, puis appuyez sur Entrée :
(Remarque : vous devez utiliser la touche de tabulation pour changer d'option)
-
Examiner l'achèvement de la mise à niveau
Une fois la mise à niveau réussie, vous verrez des messages concernant le redémarrage des services :
root@hdicj8psx6:~# pwd /root root@hdicj8psx6:~# ls snap
Copier après la connexionCopier après la connexionCopier après la connexionCela confirme que les services ont été redémarrés ou différés si nécessaire.
3️⃣ Troisième étape - Installer les dépendances et le référentiel de clonage avec une authentification appropriée
✅ 1. Installer Node.js
Pour installer Node.js, exécutez :
sudo apt update
Cela installera Node.js.
✅ 2. Installer Git
Pour installer Git, exécutez :
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Ign:4 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy InRelease Err:5 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy Release 404 Not Found [IP: 185.125.190.80 443] Reading package lists... Done
✅ 3. Poussez votre référentiel vers GitHub
Si votre code n'est pas déjà transmis à GitHub, suivez ces étapes sur votre ordinateur local :
sudo apt upgrade
Commandes utiles supplémentaires :
124 upgraded, 13 newly installed, 0 to remove, and 0 not upgraded. Need to get 537 MB of archives. After this operation, 679 MB of additional disk space will be used.
Remarque : Si vous rencontrez des erreurs d'authentification, vous devez :
- Configurez une clé SSH.
- Utilisez un jeton d'accès personnel au lieu d'un mot de passe.
- Utilisez GitHub CLI (gh) pour l'authentification.
Pour obtenir des conseils, reportez-vous à ce guide.
✅ 4. Cloner le référentiel
-
Copiez le lien HTTPS depuis GitHub :
Exemple :
-
Cloner le dépôt :
568.82.48.166 root Subham@Xam_08
Copier après la connexionCopier après la connexionCopier après la connexionCopier après la connexionCopier après la connexion
Si c'est la première fois que vous vous connectez, vous verrez un message comme celui-ci :
ssh root@568.82.48.166
✅ 5. Résoudre les problèmes d'authentification
Si vous rencontrez l'erreur ci-dessus, procédez comme suit :
-
Installez la CLI GitHub (gh) :
The authenticity of host '568.82.48.166 (568.82.48.166)' can't be established. ED33319 key fingerprint is SHA256:kLP3I9......QgQI. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Copier après la connexionCopier après la connexionCopier après la connexionCopier après la connexion -
Authentifier avec GitHub :
Warning: Permanently added '568.82.48.166' (ED25519) to the list of known hosts. root@568.82.48.166's password:
Copier après la connexionCopier après la connexionCopier après la connexionCopier après la connexionSuivez les instructions :
- Choisissez GitHub.com.
- Sélectionnez HTTPS pour le protocole.
- Authentifiez Git à l'aide de vos informations d'identification GitHub en sélectionnant Se connecter avec un navigateur Web.
Exemples d'invites :
Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Dec 21 11:56:39 PM UTC 2024 System load: 0.01555554443125 Processes: 292 Usage of /: 2.1% of 20000.02GB Users logged in: 0 Memory usage: 5% IPv4 address for kms160: 568.82.48.166 Swap usage: 0% * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s just raised the bar for easy, resilient and secure K8s cluster deployment. https://ubuntu.com/engage/secure-kubernetes-at-the-edge 137 updates can be applied immediately. To see these additional updates run: apt list --upgradable *** System restart required *** Last login: Mon Dec 9 06:55:53 2024 from 203.145.52.235 root@ajfaljflaf:~#
Copier après la connexionCopier après la connexionCopier après la connexionCopier après la connexion- Copiez le code à usage unique et ouvrez le lien dans votre navigateur.
- Connectez-vous à votre compte GitHub et collez le code.
- Retournez sur votre terminal :
clear
Copier après la connexionCopier après la connexionCopier après la connexion
✅ 6. Ajouter une clé SSH à GitHub
Reportez-vous à ce guide pour ajouter votre clé SSH à GitHub.
✅ 7. Clonez à nouveau le référentiel
Une fois la clé SSH ajoutée, clonez votre dépôt :
pwd ls
✅ 8. Vérifier le clonage
Après le clonage, vérifiez si le référentiel est présent :
root@hdicj8psx6:~# pwd /root root@hdicj8psx6:~# ls snap
4️⃣ Quatrième étape – Configurez votre projet
✅ 1. Accédez à votre répertoire de projets
Commencez par lister les répertoires pour localiser votre projet :
sudo apt update
Ensuite, déplacez-vous dans votre dossier de projet :
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Ign:4 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy InRelease Err:5 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy Release 404 Not Found [IP: 185.125.190.80 443] Reading package lists... Done
Conseil : Tapez les 2-3 premières lettres du dossier de votre projet et appuyez sur la touche Tab pour compléter automatiquement le nom.
✅ 2. Installer les dépendances du projet
Exécutez la commande suivante dans le dossier de votre projet pour installer les packages nécessaires :
sudo apt upgrade
Cela peut prendre quelques minutes, selon la taille du projet.
✅ 3. Configurer le fichier .env
Si votre projet ne possède pas de fichier .env (généralement exclu des référentiels non privés), vous pouvez en créer un pour stocker vos variables d'environnement :
- Ouvrez un nouveau fichier nommé .env dans le répertoire de votre projet :
124 upgraded, 13 newly installed, 0 to remove, and 0 not upgraded. Need to get 537 MB of archives. After this operation, 679 MB of additional disk space will be used.
- Ajoutez vos variables au format suivant :
Restarting services... /etc/needrestart/restart.d/systemd-manager systemctl restart nginx.service polkit.service ssh.service udisks2.service Service restarts being deferred: systemctl restart networkd-dispatcher.service systemctl restart systemd-logind.service
- Enregistrez et quittez l'éditeur :
- Appuyez sur Ctrl O, puis Entrée pour enregistrer.
- Appuyez sur Ctrl X pour quitter.
✅ 4. Vérifier la configuration .env
Vérifiez si votre fichier .env existe et est correctement configuré :
sudo apt install nodejs
✅ 5. Exécutez l'application
Enfin, démarrez votre application en utilisant :
sudo apt install git
OU, si vous utilisez un framework ou un script, suivez sa commande spécifique, telle que :
568.82.48.166 root Subham@Xam_08
Remarque : Si vous rencontrez des erreurs, examinez les variables .env, vérifiez les dépendances installées et recherchez les configurations manquantes.
Voici une version réécrite du contenu avec une meilleure structure, clarté et mise en forme :
5️⃣ Cinquième étape – Démarrez votre projet
Installer PM2
Pour que votre application continue de fonctionner en continu, vous pouvez utiliser PM2, un puissant gestionnaire de processus pour les applications Node.js. Il permet des redémarrages sans temps d'arrêt et simplifie les tâches DevOps.
Exécutez la commande suivante pour installer PM2 globalement :
ssh root@568.82.48.166
Démarrer votre candidature
Si vous utilisez NestJS, suivez ce guide détaillé pour déployer votre application NestJS avec PM2 :
? Déployer l'application NestJS à l'aide de PM2 sur le serveur Linux Ubuntu
Si vous travaillez avec une application Node.js, vous pouvez vous référer à ce guide :
? Comment démarrer l'application Node.js avec PM2
Une fois votre configuration prête, démarrez votre serveur en tapant :
The authenticity of host '568.82.48.166 (568.82.48.166)' can't be established. ED33319 key fingerprint is SHA256:kLP3I9......QgQI. This key is not known by any other names. Are you sure you want to continue connecting (yes/no/[fingerprint])?
Ouvrez votre navigateur et accédez à :
Warning: Permanently added '568.82.48.166' (ED25519) to the list of known hosts. root@568.82.48.166's password:
Par exemple :
http://404.89.46.183:3333/xam
? Gérer les problèmes courants
⭐ Pare-feu bloquant votre site
Si le serveur n'est pas accessible, cela peut être dû à un problème de pare-feu. Tout d'abord, vérifiez les règles du pare-feu avec :
Welcome to Ubuntu 54.54.1 LTS (GNU/Linux 8.65.0-424-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sat Dec 21 11:56:39 PM UTC 2024 System load: 0.01555554443125 Processes: 292 Usage of /: 2.1% of 20000.02GB Users logged in: 0 Memory usage: 5% IPv4 address for kms160: 568.82.48.166 Swap usage: 0% * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s just raised the bar for easy, resilient and secure K8s cluster deployment. https://ubuntu.com/engage/secure-kubernetes-at-the-edge 137 updates can be applied immediately. To see these additional updates run: apt list --upgradable *** System restart required *** Last login: Mon Dec 9 06:55:53 2024 from 203.145.52.235 root@ajfaljflaf:~#
Cette commande répertorie toutes les règles de pare-feu actuelles. Si le port 3333 n'est pas répertorié ou si des erreurs se produisent, vous pouvez identifier le problème en effectuant une recherche sur des plates-formes telles que Stack Overflow ou des outils tels que GPT, Claude, Copilot ou Llama. Ils fournissent souvent des informations détaillées pour résoudre des problèmes spécifiques.
⭐ Mise à jour des règles de pare-feu
Si le pare-feu bloque le trafic entrant sur le port 3333, mettez à jour les règles avec :
clear
Répartition des commandes :
-A INPUT : Ajoutez une règle à la chaîne INPUT.
-p tcp : Spécifiez le protocole TCP.
--dport 3333 : Définissez le port 3333.
-j ACCEPTER : Autoriser le trafic sur ce port.
Vérifiez maintenant les règles mises à jour :
pwd ls
Vous devriez voir quelque chose comme ceci :
root@hdicj8psx6:~# pwd /root root@hdicj8psx6:~# ls snap
⭐ Règles de pare-feu persistantes
Pour garantir que les règles de pare-feu restent après un redémarrage, installez le package netfilter-persistent :
sudo apt update
Enregistrez les règles avec :
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [128 kB] Ign:4 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy InRelease Err:5 https://ppa.launchpadcontent.net/certbot/certbot/ubuntu jammy Release 404 Not Found [IP: 185.125.190.80 443] Reading package lists... Done
⭐ Gestion des processus PM2
-
Démarrez votre application avec PM2
Utilisez la commande suivante pour démarrer votre serveur avec PM2 :
sudo apt upgrade
Copier après la connexionCopier après la connexionCopier après la connexionL'indicateur -f force PM2 à redémarrer le processus.
Supprimer les processus inutilisés
S'il existe des processus issus d'exécutions précédentes, vous pouvez les supprimer en utilisant leurs identifiants :
568.82.48.166 root Subham@Xam_08
Cela garantit qu'aucun conflit ne se produit avec des processus en double.
Maintenant, votre application devrait fonctionner correctement ! ?
_Remarque : je mettrai à jour le blog avec toutes les informations concernant SSL, nginx et toutes les autres choses connexes _
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

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à 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











JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Les dernières tendances de JavaScript incluent la montée en puissance de TypeScript, la popularité des frameworks et bibliothèques modernes et l'application de WebAssembly. Les prospects futurs couvrent des systèmes de type plus puissants, le développement du JavaScript côté serveur, l'expansion de l'intelligence artificielle et de l'apprentissage automatique, et le potentiel de l'informatique IoT et Edge.

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

JavaScript est le langage central du développement Web moderne et est largement utilisé pour sa diversité et sa flexibilité. 1) Développement frontal: construire des pages Web dynamiques et des applications à une seule page via les opérations DOM et les cadres modernes (tels que React, Vue.js, Angular). 2) Développement côté serveur: Node.js utilise un modèle d'E / S non bloquant pour gérer une concurrence élevée et des applications en temps réel. 3) Développement des applications mobiles et de bureau: le développement de la plate-forme multiplateuse est réalisé par réact noral et électron pour améliorer l'efficacité du développement.

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

JavaScript ne nécessite pas d'installation car il est déjà intégré à des navigateurs modernes. Vous n'avez besoin que d'un éditeur de texte et d'un navigateur pour commencer. 1) Dans l'environnement du navigateur, exécutez-le en intégrant le fichier HTML via des balises. 2) Dans l'environnement Node.js, après avoir téléchargé et installé Node.js, exécutez le fichier JavaScript via la ligne de commande.

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.
