Il est courant de travailler localement sur un projet et d'envoyer des révisions sur un serveur de production, mais l'étape que les gens ignorent souvent est le serveur intermédiaire. Un serveur de transfert est un mélange de production et de développement. vous pouvez tester votre application comme si elle était en production. Passons en revue certains problèmes que vous devrez prendre en compte, ainsi que les étapes nécessaires à la réplication d'une plate-forme de production en tant que service (PAAS)..
C'est arrivé plus d'une fois: je mets en production une version révisée de mon application, pour ensuite trouver un problème après sa publication. Ces problèmes peuvent être aussi simples que l’oubli d’ajouter des images dans votre référentiel, ou bien la modification de la structure locale d’une base de données et l’oubli de la mise à jour de la base de données de production. Tout le monde a des problèmes, surtout quand les délais sont serrés. Dans ces situations, il est judicieux de configurer un environnement de transfert. L'idée est de disposer d'un serveur qui réplique de près l'environnement de production, afin de tester votre application avant sa publication..
Les environnements de transfert détectent non seulement les erreurs humaines, mais également les problèmes liés aux logiciels.
Vous pouvez rechercher et résoudre ces problèmes car la zone de stockage intermédiaire contient le même logiciel que votre environnement de production. Cela contraste nettement avec votre machine locale, où différentes versions de logiciels sont installées (par exemple, PHP 5.3 ou PHP 5.4) ou même des fonctionnalités différentes. J'ai poussé du code contenant des appels à fichier_get_contents
seulement pour constater que le serveur de production ne supportait pas cette fonction.
Alors, comment allez-vous configurer un serveur de transfert? Eh bien, la première étape est un peu de reconnaissance.
Tout le monde a des problèmes, surtout quand les délais sont serrés.
La création d'un environnement de transfert est spécifique à votre environnement de production. Il n'y a pas de solution magique qui fonctionne dans toutes les situations. Mais la plupart des cas suivent un schéma similaire, et je couvrirai tous les points clés au fur et à mesure..
Il est juste de supposer que la plupart des gens déploient leurs applications avec un outil de gestion de version (comme GIT). Si vous travaillez sur un ancien projet utilisant encore le protocole FTP, des sites tels que ftploy.com ou deployHQ.com peuvent servir de mémoire tampon entre GIT et votre serveur. Jeffrey Way a mis au point une vidéo informative expliquant comment le configurer..
Outre GIT, vous devez penser aux langues, aux logiciels et aux fonctionnalités "spéciales" de vos serveurs de production. J'utilise un PAAS basé sur PHP, nommé Fortrabbit, car ils offrent un support à jour de PHP, Apache et GIT. Ils permettent également d'ajouter un mot clé dans votre message de validation GIT, ce qui incite Composer à installer les dépendances de votre projet..
C'est le système que je vais installer dans la suite de cet article. Son ensemble de fonctionnalités standard, ainsi que la fonction de composition spéciale, font de Fortrabbit le logiciel idéal pour une grande variété d'hôtes. Rappelez-vous: ce n’est pas une solution magique, mais les étapes à suivre suivent le même schéma que vous auriez utilisé pour configurer un environnement intermédiaire pour la plupart des projets. Adaptez le processus à vos besoins spécifiques.
Alors sans plus tarder, sautons dans.
La création d'un environnement de transfert est spécifique à votre environnement de production..
Il existe de nombreux systèmes d'exploitation que vous pouvez exécuter sur un serveur. Fortrabbit utilise Debian Squeeze sur leurs serveurs et, comme nous essayons de les faire correspondre, j'ai décidé de l'exécuter également..
Je vais utiliser Vagrant pour mettre cela en place. Ne vous inquiétez pas si vous n'avez jamais utilisé Vagrant; nous ne ferons rien d'avancé. Assurez-vous que VirtualBox et Vagrant sont installés (Vagrant est une CLI pour VirtualBox; VirtualBox est donc requis)..
Vagrant prend un instantané virtuel d'un système d'exploitation sous la forme d'une "boîte" de base, et vous pouvez ensuite créer plusieurs ordinateurs virtuels à partir de cette image. Nous devons donc commencer par télécharger la boîte de base pour Debian Squeeze. Je ne sais pas exactement d'où vient ma copie, je l'ai donc téléchargée sur DropBox pour que vous puissiez la télécharger et l'utiliser. Pour installer, ouvrez une fenêtre de terminal et tapez:
vagrant box add debian https://dl.dropbox.com/u/30949096/debian.box
Ceci ajoute la boîte à Vagrant avec le nom 'debian'. Nous pouvons maintenant créer une instance de cette boîte pour notre zone de transfert. Commençons par créer un nouveau dossier:
mkdir ~ / staging_server cd ~ / staging_server
Ensuite, créez le fichier de configuration Vagrant en tapant:
vagrant init debian
Cela crée un fichier de configuration, nommé "VagrantFile", qui contient tous les paramètres de votre serveur. Lorsque vous l'ouvrez, il semble assez encombré, mais la plupart des lignes sont des commentaires. Il vous suffit de décommenter la ligne qui dit: config.vm.network: ponté
. La suppression de tous les autres commentaires vous laisse avec un fichier qui ressemble à ceci:
Vagrant :: Config.run do | config | config.vm.box = "debian" config.vm.network: fin pontée
Ces options indiquent à Vagrant de créer une nouvelle machine virtuelle basée sur notre boîte de base Debian Squeeze. Il définit ensuite le mode réseau sur «ponté». Une machine virtuelle avec un réseau ponté apparaît en tant que nouvelle machine physique pour votre routeur. Elle récupère donc automatiquement sa propre adresse IP. Cela vous permet d'accéder à la machine depuis n'importe quel périphérique de votre réseau (éventuellement en dehors de votre réseau si vous configurez votre routeur)..
Maintenant, nous pouvons lancer notre VM avec la commande: "
vagabond
"(sans les guillemets).
Vous devriez voir la sortie de Vagrant créer votre machine virtuelle. Si votre ordinateur possède plusieurs cartes réseau connectées au réseau, Vagrant vous invitera à choisir la carte à ponter..
Nous utiliserons SSH pour nous connecter, mais nous devrons utiliser la fonction intégrée de Vagrant "ssh vagabond
"Commande pour vous connecter. Selon les meilleures pratiques de Vagrant, toutes les boîtes devraient avoir un utilisateur nommé" vagrant "avec le mot de passe, pour la racine et le vagabond," vagant ". L'utilisateur du vagabond est ajouté en tant que sudo
utilisateur qui n'a pas besoin d'entrer un mot de passe, vous pouvez donc utiliser directement sudo
commandes.
Passons à autre chose et configurons le logiciel du serveur.
La configuration de Fortrabbit comprend:
De plus, ils utilisent le référentiel dotdeb pour en installer la majeure partie. Pour ceux qui ne connaissent pas, dotdeb est un projet de Guillaume Plessis qui installe les versions les plus récentes des packages de serveur Web populaires..
Nous sommes prêts à commencer. Assurez-vous que la fenêtre de votre terminal est ouverte et connectée au serveur via SSH. Tout d’abord, ajoutez le référentiel dotdeb à APT (le gestionnaire de paquets) en ajoutant un nouveau fichier à sources.d
annuaire:
sudo vim /etc/apt/sources.list.d/dotdeb.list
Cela ouvre un nouveau fichier nommé dotdeb.list
dans vim (un éditeur de texte). Le nom n'est pas important car tous les fichiers de ce répertoire sont lus dans APT. Nous devons ajouter quatre lignes à ce fichier. Si vous n'avez jamais utilisé VIM, tapez simplement "je
"pour entrer en mode insertion et copier / coller les quatre lignes suivantes:
deb http://packages.dotdeb.org compresse tous les deb-src http://packages.dotdeb.org compresse tous les deb http://packages.dotdeb.org squeeze-php54 tout deb-src http: //packages.dotdeb .org squeeze-php54 tous
Pour sauvegarder, appuyez sur le bouton Esc
clé et type : wq
. C’est la commande pour écrire et quitter, ce qui signifie fondamentalement sauvegarder et quitter.
Appuyez sur Entrée pour enregistrer le fichier et revenir à la ligne de commande..
Nous avons maintenant ajouté les mises en pension, mais nous devons encore ajouter la signature avant de pouvoir les utiliser. Tapez ce qui suit pour ajouter la clé GNU:
curl http://www.dotdeb.org/dotdeb.gpg | sudo apt-key add -
Cela télécharge la clé dotdeb et l’ajoute en tant que source signée. Maintenant, mettez à jour APT pour extraire le nouveau paquet en tapant:
sudo apt-get update
Cela peut prendre environ une minute, mais vous aurez tous les paquets dotdeb répertoriés dans APT à la fin. En raison de la configuration de dotdeb et du chargement des dépendances APT, nous pouvons installer Apache et PHP en même temps en tapant:
sudo apt-get install php5
Avec cette ligne unique, APT installe et configure Apache2 et PHP5. Si vous utilisez le module complémentaire memcache de Fortrabbit, vous pouvez l'installer avec:
sudo apt-get install memcached
Mais je ne vais pas aller dans memcache dans notre exemple dans cet article.
Nous devons maintenant installer les extensions utilisées par Fortrabbit. Exécutez la commande suivante:
sudo apt-get install php5-xdebug php5-tidy php5-sqlite php5-redis php5-pgsql \ php5-mysqlnd php5-memcache php5-memcached php5-mcrypt php5-mysqlnd -apc php5-intl
La dernière chose à installer est Composer. Je vais l'installer globalement parce que nous allons l'utiliser dans quelques endroits différents. Les commandes pour installer globalement Composer sont les suivantes:
curl -s https://getcomposer.org/installer | php sudo mv composer.phar / usr / local / bin / composer
La première commande télécharge et exécute le programme d'installation. la deuxième commande déplace Composer dans le dossier bin afin que nous puissions l'utiliser sans déclarer le chemin. Passons à la configuration.
Il y a de bonnes chances que vous travailliez sur plusieurs projets. Si tel est le cas, le fait de disposer d'un serveur de transfert pour chaque projet génère beaucoup de temps système. Pour autoriser plusieurs sites sur un seul serveur, nous devons ajouter des hôtes virtuels nommés à Apache et séparer les répertoires et les mises en pension de chaque projet..
Commençons par un hôte virtuel.
Je vais continuer à utiliser vim, mais sachez que si vous souhaitez utiliser vos propres programmes, vous pouvez soit copier et coller, soit le sauvegarder dans le répertoire.
staging_server
dossier que vous avez créé sur votre ordinateur.
Ce dossier est partagé sur votre machine virtuelle et vous pouvez accéder aux fichiers du répertoire. vagabond
répertoire racine. Vous pouvez ensuite utiliser: sudo cp / vagrant / file newfile
ou sudo mv / vagrant / filee newfile
copier ou déplacer les fichiers, respectivement.
Pour créer un nouvel hôte virtuel, nous devons créer un fichier dans le dossier / etc / apache2 / sites-available /
annuaire. Pour ce faire avec VIM, tapez ce qui suit:
sudo vim /etc/apache2/sites-available/demo.site
À l'intérieur, entrez les informations suivantes (rappelez-vous, appuyez sur "je
"pour le mode insertion):
ServerAdmin [email protected] ServerName demo.dev DocumentRoot / var / www / demo Options Index FollowSymLinks MultiViews AllowOverride ALL Ordre autoriser, refuser autoriser de tous ErrorLog $ APACHE_LOG_DIR /demo.log débogage de LogLevel
La première ligne déclare un hôte virtuel qui écoute les demandes sur n'importe quelle adresse IP au port 80. Nous définissons ensuite l'adresse de messagerie de l'administrateur du serveur et son nom. L'e-mail sert à signaler les erreurs et l'option du nom du serveur indique à Apache quand lire cet hôte virtuel. Les hôtes virtuels normaux fonctionnent à partir d'adresses IP. Par exemple, chaque vhost écoute sur une adresse IP différente; voilà comment Apache les différencie.
Comme vous ne possédez probablement qu’une seule adresse IP, nous pouvons utiliser des hôtes virtuels nommés, ce qui vous permet de fournir un nom différent sur la même adresse IP..
Dans notre exemple, toutes les demandes adressées à demo.dev sont récupérées par cet hôte virtuel..
La ligne suivante définit le dossier racine du document. C'est ici qu'Apache récupère les fichiers de ce vhost. Les déclarations à l'intérieur du Annuaire
directive définit les autorisations pour cet hôte. Je n'entrerai pas dans les détails, mais nous avons d'abord défini les options de répertoires Apache, puis ce que l'on peut remplacer dans un fichier .htaccess, et enfin, nous avons défini qui peut accéder au site (tout le monde peut le faire dans notre cas)..
Les deux dernières lignes indiquent à Apache comment nommer le fichier journal et quoi écrire dans le journal. Notre fichier journal s’appelle demo.log dans le dossier journal Apache situé à / var / log / apache2 /
sur cette VM.
Pour activer ce vhost, tapez ce qui suit:
sudo a2ensite demo.site
Cela crée un lien symbolique entre le fichier du dossier sites-available vers un fichier du dossier sites activés. Après avoir exécuté cette commande, vous êtes invité à redémarrer Apache. Vous obtiendrez une erreur si vous essayez de redémarrer Apache car nous n'avons pas créé le répertoire du site. Ceci est facilement résolu acheter créant la démo
dossier que nous avons référencé dans le fichier vhost:
sudo mkdir / var / www / demo
Nous ne voulons pas que l’utilisateur root soit propriétaire du dossier, changez-le donc en utilisateur vagrant avec chown
commander:
sudo chown -R vagrant: vagrant / var / www / demo
Maintenant redémarrez Apache:
sudo service apache2 redémarrer
Notre nouveau site devrait maintenant être entièrement fonctionnel. Notre prochaine étape est de configurer GIT.
Assurez-vous que vous êtes dans le répertoire de base en tapant cd ~
. Créez un nouveau dossier pour le référentiel: mkdir demo.git
, entrez dans le dossier et initialisez un nouveau dépôt GIT nu:
cd demo.git git init --bare
Un référentiel nu est essentiellement un référentiel standard sans répertoire de travail. Si vous voulez en savoir plus sur GIT, regardez la série de vidéos d'Andrew Burgess.
Nous avons maintenant besoin de la possibilité d'insérer du code dans le dossier du site, et il existe de nombreuses façons de le faire. Mais j'aime faire en sorte que les choses soient aussi proches que possible du service que je suis en train d'imiter. Voici une photo du processus git de fortrabbit tirée de leur site:
Vous pouvez voir que le processus push se déroule en trois étapes. Il affiche un message de mise à jour lors de la connexion et déploie le site dans l'annuaire. La dernière étape installe tout si le message de validation contient les mots-clés "[trigger: composer]". Puis, une fois ces trois étapes terminées, le message ">> All Done <
Avant de créer les crochets, je veux parler des couleurs.
Je fais la plupart de mon travail dans le terminal, et le plus souvent, les applications de terminal laissent toutes les mêmes couleurs. L'ajout de couleurs différentes à votre application augmente non seulement la lisibilité, mais également les capacités. Donc, afin de mieux diffuser les "pratiques de couleur" dans les applications de terminal, je vais prendre un moment pour discuter de leur fonctionnement..
Les terminaux sont livrés avec seize couleurs ANSI pouvant être configurées et utilisées dans tout le terminal. Voici une image de l'écran de réglages iTerm2, montrant les seize emplacements de couleur:
Vous pouvez y accéder dans le terminal en tapant le caractère d'échappement, suivi du crochet ouvert, puis du code de la couleur. Vous pouvez voir sur cette image que les couleurs sont divisées en deux lignes: l’une intitulée "Normal" et l’autre "Lumineuse". Les codes pour les couleurs normales sont les chiffres 30-37 suivis de la lettre "m", et les couleurs vives vont de 90-97 suivis d'un m. Vous pouvez tester cela dans la fenêtre de votre terminal en utilisant écho
. Pour créer le caractère d'échappement, tapez ctrl-v
suivi par ctrl- [
. Vous obtiendrez un personnage qui ressemble à ^ [
, mais cela ne fonctionnera pas si vous tapez simplement "^ [" (shift-6 et ouvrez le crochet). Donc, dans le type de fenêtre de terminal:
echo "^ [[31m Bonjour le monde ^ [[0m"
Encore une fois, le premier ^ [
n'a pas été tapé mais a été créé avec ctrl-v
et alors ctrl- [
. le 0m
le code de caractère est le code de réinitialisation; cela supprime tout formatage. Cela est dû au fait que les codes de couleur ne se terminent pas après le mot suivant, ils continuent jusqu'à ce qu'ils reçoivent un code différent..
Si cela est fait correctement, le code ci-dessus affiche les mots "hello world" en rouge (sauf si cet emplacement est défini sur une couleur différente).
Tout au long du tutoriel, je vais ajouter des couleurs aux commandes. N'hésitez pas à les suivre ou à les omettre; ils ne sont pas strictement requis. Mais si vous souhaitez utiliser des couleurs, n'hésitez pas à utiliser mon cours d'aide aux couleurs. Maintenant, revenons à écrire les crochets.
Si vous examinez de nouveau l'image Fortrabbit, vous verrez qu'elle affiche le message "Etape 1: mise à jour du référentiel" avant de mettre à jour le référentiel. Pour faire cela correctement, nous devons placer ce message dans le hook de pré-réception, qui s'exécute avant la mise à jour du référentiel. Dans la fenêtre du terminal, tapez:
vim ~ / demo.git / hooks / pre-receive
Cela ouvre le crochet pour l'édition. Ajoutez le code suivant:
#! / usr / bin / php
La première ligne indique au système d'exploitation qu'il s'agit d'un fichier PHP et qu'il doit être exécuté en tant que tel. Ensuite, nous affectons une couleur et la séquence de réinitialisation aux variables. La dernière étape écho
s la ligne.
Le hook suivant est un peu plus compliqué car il gère le reste des actions. Nous allons procéder étape par étape, alors sauvegardez le premier hook (: wq) et ouvrez le hook suivant:
vim ~ / demo.git / hooks / post-receive
Le hook post-réception s'exécute après la mise à jour du référentiel. Nous devons d'abord mettre à jour le site, puis rechercher le déclencheur Composer. Voici un squelette de notre programme, laissant de côté toute nouvelle logique:
#! / usr / bin / php ". $ cyan." OK ". $ vierge." \ n "; echo $ jaune." Étape 2: déploiement ". $ vierge." \ n "; / * TODO: déployer sur le site * / echo" -> ". $ cyan. "OK". $ blank. "\ n"; / * TODO: Vérifie si la validation a un déclencheur * / echo $ yellow. ">> All Done <<" . $blank . "\n"; ?>
Ceci est juste un plan de travail à partir de. La première chose que nous devons mettre en place est la fonctionnalité permettant d'extraire la nouvelle version du référentiel dans le répertoire du site. Traditionnellement, je taperais simplement ce qui suit si j'étais dans le dossier:
git chercher l'origine git reset - hard origin / master
Vous pourriez utiliser quelque chose comme git pull
, mais cela peut provoquer des erreurs. Si un fichier a été modifié directement ou si vous avez manqué un commit, alors git pull
ne vous autorisera pas non plus à extraire ou à supprimer vos fichiers non suivis.
Ce sont deux commandes simples, mais vous obtiendrez une erreur si vous essayez de les exécuter à partir du crochet.
GIT définit certaines variables d'environnement avant d'exécuter les points d'ancrage. Vous pouvez contourner cela avec l'une des deux solutions, et je vais vous montrer à la fois.
La première consiste à remplacer les variables d'environnement en transmettant directement les informations. La seconde efface complètement les variables. Je vais utiliser la première option dans cet exemple et la deuxième option lorsque nous travaillons sur le déclencheur composer. Remplacez le commentaire que j'ai ajouté ci-dessus, où il est écrit "Déployer sur le site", par ce qui suit:
$ git = "git --git-dir = / var / www / demo / .git / --work-tree = / var / www / demo /"; exec ("$ git fetch -q origine"); exec ("$ git reset - hard origin / master");
Ceci remplace les variables d'environnement et appelle les fonctions susmentionnées. L'ajouté -q
paramètre dit à GIT d'être "silencieux", interdisant à GIT de renvoyer des messages.
Nous devons maintenant vérifier le déclencheur Composer. Divisons cela en deux étapes. Nous vérifions d'abord le déclencheur, puis nous exécutons Composer. Remplacez le deuxième commentaire TODO par le suivant:
$ msg = exec ("$ git log -n 1 --format = format:% s% b"); if (strpos ($ msg, "[trigger: composer]")!! == false) echo $ yellow. "Step3: Composer Hook". $ vide. "\ n"; echo "-> Déclencher l'installation - obtenez un". $ cyan. "café" . $ vide. "\ n"; // lance le compositeur echo "->". $ cyan. "D'ACCORD" . $ vide. "\ n";
La première ligne récupère le message de validation en utilisant le journal git
commande et en passant dans un format spécial pour exclure toute information supplémentaire. Ensuite, nous vérifions si la chaîne a le mot de déclenchement spécial et renvoyons la troisième étape et le message OK. Nous recherchons le mot clé Composer, mais vous pouvez implémenter plusieurs mots clés pour d'autres fonctionnalités telles que: migrer dans Laravel ou exécuter des tests unitaires. Ajoutez n'importe quoi pour améliorer votre flux de travail.
La dernière étape consiste à exécuter Composer. Le compositeur a deux commandes: compositeur installer
et mise à jour du compositeur
.
La commande install ne lit pas le
composer.json
fichier s'il trouve uncomposer.lock
, et parce que certaines personnes pourraient ajoutercomposer.lock
à leur fichier .gitignore, il est plus sûr d'exécutermise à jour du compositeur
(il regarde toujours lecomposer.json
fichier.
Le deuxième problème est que parfois Composer utilise GIT pour télécharger des packages et que ces tentatives échouent à cause des variables d'environnement. Voici donc un bon endroit pour supprimer la variable d’environnement "GIT_DIR". Remplacez le commentaire pour exécuter Composer par ce qui suit:
chdir ("/ var / www / demo"); putenv ("GIT_DIR"); exec ("mise à jour du compositeur");
Ce code est simple. Nous déplaçons le processus PHP dans le dossier du site, puis supprimons le fichier. GIT_DIR
variable d’environnement pour que GIT fonctionne normalement. La dernière ligne exécute Composer.
Nous avons maintenant la configuration des deux hooks, mais nous ne sommes pas complètement prêts à commencer à utiliser notre serveur. Premièrement, nous devons rendre ces hooks exécutables:
chmod a + x ~ / demo.git / hooks / pré-reçu chmod a + x ~ / demo.git / hooks / post-receive
Ensuite, créez un dépôt GIT dans le dossier du site. Nous aurions une erreur si nous essayions d'exécuter nos hooks car le dossier du site n'était pas un référentiel GIT. Pour réparer ce type:
cd / var / www / demo git init git à distance ajouter l’origine /home/vagrant/demo.git
Les deux premières lignes créent le référentiel, puis nous ajoutons le référentiel nu comme origine du référentiel..
Vous devez également ajouter votre clé publique aux hôtes autorisés de ce serveur pour pouvoir y accéder via GIT sans mot de passe. Vous pouvez copier votre clé publique en tapant sur votre ordinateur (pas la machine virtuelle):
cat ~ / .ssh / id_rsa.pub | pbcopy
Ensuite, il suffit de le coller sur le serveur dans le fichier ~ / .ssh / registered_keys
:
vim ~ / .ssh / registered_keys
Ajoutez-le simplement au fichier, mais laissez tout ce qui est déjà à l'intérieur.
Ensuite, nous devons ajouter l'IP de ce serveur à notre fichier hosts. Pour trouver l'IP, tapez:
ip -4 -o addr show label eth *
Cela vous montre l'adresse IP de tous les périphériques réseau sur cette machine virtuelle. Ajoutez celui qui se connecte à votre réseau local. Si vous ne pouvez pas déterminer quelle adresse IP utiliser, copiez-la et collez-en une dans votre navigateur. S'il se connecte, vous avez la bonne adresse IP.
Prenez l'adresse IP et ajoutez-la au fichier hosts de votre ordinateur (pas au fichier hosts de la VM). Le fichier hosts sur un Mac est situé à etc / hôtes
:
sudo vim / etc / hosts
Ensuite, ajoutez la ligne suivante:
#Format: IP_address nom_site 192.168.0.110 demo.dev
Si cela fonctionne, vous pourrez accéder à http://demo.dev
dans votre navigateur. Toujours sur votre Mac, créez un dossier et initialisez un dépôt GIT:
mkdir ~ / demo cd ~ / demo git init echo "Bonjour tout le monde"> index.php git add. git commit -am "added index.php" git remote ajoute staging [email protected]: demo.git maître git push staging
Si tout se passe bien, vous devriez voir une réponse de nos crochets GIT. Naviguer vers http://demo.dev
Le message "Hello World" devrait s'afficher dans votre navigateur..
C'est ainsi que vous pouvez créer un environnement de transfert qui imite les fonctionnalités d'un PAAS typique. Si vous rencontrez des difficultés ou si vous devez configurer plusieurs environnements de transfert, j'ai créé un script qui automatise complètement le processus. Pour plus d'informations, vous pouvez visiter stagr.gmanricks.com.
J'espère que vous avez apprécié l'article. N'hésitez pas à poser toutes les questions que vous pourriez avoir dans les commentaires. Merci pour la lecture.