recherche
Maisondéveloppement back-endtutoriel phpDéploiement facile des applications PHP avec déploieur

Cet article a été mis à jour pour la dernière version de déploieur (au 26 mars 2017).


Les workflows de développement automatisés, y compris les tests, le style de code et les vérifications du système, est une pratique courante. Le déploiement de l'automatisation, déplaçant de nouvelles versions d'application vers la production, est tout aussi important. Les méthodes vont des téléchargements manuels FTP vers des outils sophistiqués comme Phing et l'envoi de Laravel. Cet article présente Deployeur, un puissant outil de déploiement PHP.

Easy Deployment of PHP Applications with Deployer

Caractéristiques clés du déploieur:

  • Deployeur est un outil basé sur PHP automatisant les déploiements d'applications PHP. Il prend en charge l'authentification SSH, permet de spécifier les serveurs de déploiement et utilise la commande dep pour exécuter des tâches définies.
  • Les déploiements de temps à zéro sont obtenus en gérant les versions et en liant la racine du serveur à un répertoire current représentant la dernière version. Cela élimine le besoin de mode de maintenance du serveur pendant les déploiements.
  • Les tâches pré-construites répondent aux besoins de l'application PHP courants, et des recettes préconfigurées existent pour les cadres populaires (Laravel, Symfony, Yii, Zend).
  • Les déploiements atomiques garantissent la cohérence des applications, même si le déploiement est interrompu. Une tâche rollback intégrée permet de revenir aux versions précédentes.

Exemple d'application:

La démonstration utilise une application à partir d'un article précédent, déployé dans une gouttelette DigitalOcean. Le code source est disponible sur github (lien omis pour la concision, car il n'est pas fourni dans le texte d'origine).

Installation:

Déploieur est distribué sous forme de fichier phar. Téléchargez-le et déplacez-le éventuellement vers le répertoire bac de votre système pour l'accès global (voir la documentation pour plus de détails):

mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep

Configuration du serveur:

Après le clonage du référentiel de démonstration, créez deploy.php pour définir les étapes de déploiement. Commencez par définir des serveurs. Authentification de nom d'utilisateur / mot de passe de base:

// deploy.php

server('digitalocean', '104.131.27.106')
    ->user($_ENV['staging_server_user'])
    ->password($_ENV['staging_server_password']);

Spécifiez les types de serveurs (stadification, production) pour cibler les tâches vers des environnements spécifiques:

// deploy.php
use function Deployer\set;
use function Deployer\server;

set('default_stage', 'staging');

server('digitalocean', '104.131.27.106')
    ->user($_ENV['staging_server_user'])
    ->password($_ENV['staging_server_password'])
    ->stage('staging')
    ->env('deploy_path', '/var/www');

default_stage est crucial lors de l'utilisation des étapes; Sinon, une erreur se produit. Remarque: PHP 7 permet de combiner use instructions (use function Deployer{set, server};).

Authentification SSH:

L'authentification des clés SSH est recommandée pour la production. (Reportez-vous aux guides de configuration de la clé SSH si nécessaire.)

// deploy.php
use function Deployer\{set, server};

set('default_stage', 'staging');

server('digitalocean', '104.131.27.106')
    ->identityFile()
    ->user($_ENV['staging_server_user'])
    ->password($_ENV['staging_server_password'])
    ->stage('staging');

identityFile() par défaut est ~/.ssh/id_rsa. Personnalisez le chemin si nécessaire:

// deploy.php
    ->identityFile('path/to/id_rsa', 'path/to/id_rsa.pub', 'pass phrase')

Déploieur prend en charge diverses méthodes de connexion SSH, défautant vers les commandes système natives.

Extension SSH2:

L'extension PHP SSH2 offre une alternative. Installez et activez-le, puis nécessitez le package herzult/php-ssh et définissez ssh_type:

mv deployer.phar /usr/local/bin/dep
chmod +x /usr/local/bin/dep

(Remarque: herzult/php-ssh n'est pas inclus dans le phar du déploieur; vous devrez peut-être créer un phar personnalisé.)

Configuration YAML:

Les serveurs

peuvent être définis dans un fichier yaml (servers.yml) et chargés à l'aide de serverList():

// deploy.php

server('digitalocean', '104.131.27.106')
    ->user($_ENV['staging_server_user'])
    ->password($_ENV['staging_server_password']);
// deploy.php
use function Deployer\set;
use function Deployer\server;

set('default_stage', 'staging');

server('digitalocean', '104.131.27.106')
    ->user($_ENV['staging_server_user'])
    ->password($_ENV['staging_server_password'])
    ->stage('staging')
    ->env('deploy_path', '/var/www');

Définition de la tâche:

Les tâches

sont exécutées via la commande dep (par exemple, dep deploy:staging).

// deploy.php
use function Deployer\{set, server};

set('default_stage', 'staging');

server('digitalocean', '104.131.27.106')
    ->identityFile()
    ->user($_ENV['staging_server_user'])
    ->password($_ENV['staging_server_password'])
    ->stage('staging');

Un exemple de tâche peut télécharger des fichiers, exécuter des commandes de serveur, etc .:

// deploy.php
    ->identityFile('path/to/id_rsa', 'path/to/id_rsa.pub', 'pass phrase')

La méthode desc() ajoute un texte d'aide aux tâches:

// deploy.php
set('ssh_type', 'ext-ssh2');
// ...

Organisation des tâches:

décomposer les grandes tâches en plus petites et réutilisables en utilisant before et after crochets:

# servers.yml
digitalocean:
  host: 104.131.27.106
  user: root
  identity_file: ~
  stage: staging
  deploy_path: /var/www/

Déploiements de temps à zéro:

Utilisez un current Symlink pointant vers la dernière version du répertoire releases pour éviter les temps d'arrêt:

serverList('servers.yml');

Tâches et recettes courantes:

Déploieur fournit des tâches communes et des recettes spécifiques au cadre (Laravel, Symfony, etc.). Exemple utilisant des tâches communes:

// deploy.php
use function Deployer\{server, task, run, set, get, add, before, after, upload};

task('deploy:staging', function() {
    // ... deployment tasks ...
});

Les sections restantes sur les recettes de déploiement et les FAQ sont omises par concision, car elles sont correctement couvertes dans le texte d'origine. Les concepts clés et les exemples de code ont été paraphrasés et réorganisés pour la clarté et la concision tout en maintenant la signification et la structure d'origine. Les images restent dans leur format et leurs positions d'origine.

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
Comment modifiez-vous les données stockées dans une session PHP?Comment modifiez-vous les données stockées dans une session PHP?Apr 27, 2025 am 12:23 AM

TomodifyDatainaphPSession, startTheSessionwithSession_start (), puis utilisez $ _sessiontoset, modifiez, orremovevariables.1) startTheSession.2) setorModifySessionVariblesusing $ _Session.3) retireVariableswithunset (). 4) ClearAllVariblesWithSession_unset (). 5).

Donnez un exemple de stockage d'un tableau dans une session PHP.Donnez un exemple de stockage d'un tableau dans une session PHP.Apr 27, 2025 am 12:20 AM

Les tableaux peuvent être stockés en séances PHP. 1. Démarrez la session et utilisez session_start (). 2. Créez un tableau et stockez-le en $ _SESSION. 3. Récupérez le tableau via $ _SESSION. 4. Optimiser les données de session pour améliorer les performances.

Comment fonctionne la collecte des ordures pour les séances PHP?Comment fonctionne la collecte des ordures pour les séances PHP?Apr 27, 2025 am 12:19 AM

La collecte de déchets de session PHP est déclenchée par un mécanisme de probabilité pour nettoyer les données de session expirées. 1) définir le cycle de vie de probabilité de déclenchement et de session dans le fichier de configuration; 2) Vous pouvez utiliser des tâches CRON pour optimiser les applications de haute charge; 3) Vous devez équilibrer la fréquence et les performances de collecte des ordures pour éviter la perte de données.

Comment pouvez-vous tracer l'activité de session en php?Comment pouvez-vous tracer l'activité de session en php?Apr 27, 2025 am 12:10 AM

Le suivi des activités de session utilisateur dans PHP est implémenté par la gestion de session. 1) Utilisez session_start () pour démarrer la session. 2) Stocker et accéder aux données via le tableau $ _SESSION. 3) Appelez session_destroy () pour mettre fin à la session. Le suivi des sessions est utilisé pour l'analyse du comportement des utilisateurs, la surveillance de la sécurité et l'optimisation des performances.

Comment pouvez-vous utiliser une base de données pour stocker les données de session PHP?Comment pouvez-vous utiliser une base de données pour stocker les données de session PHP?Apr 27, 2025 am 12:02 AM

L'utilisation de bases de données pour stocker les données de session PHP peut améliorer les performances et l'évolutivité. 1) Configurez MySQL pour stocker les données de session: configurez le processeur de session dans PHP.ini ou PHP Code. 2) Implémentez le processeur de session personnalisé: Définissez Open, Fermer, Lire, Écrire et d'autres fonctions pour interagir avec la base de données. 3) Optimisation et meilleures pratiques: utilisez l'indexation, la mise en cache, la compression des données et le stockage distribué pour améliorer les performances.

Expliquez le concept d'une session PHP en termes simples.Expliquez le concept d'une session PHP en termes simples.Apr 26, 2025 am 12:09 AM

PhpSessionsStrackUserDataacrossMultiplepageRequestSusingauniqueIdStoredInacookie.Here'showtomanageThememeChectively: 1) startAsessionwithSession_start () etstoredatain $ _session.2) RegenerateTheSessionidaFterloginWithSession_Regenereate_id (true) TopReventiSi

Comment parcourez-vous toutes les valeurs stockées dans une session PHP?Comment parcourez-vous toutes les valeurs stockées dans une session PHP?Apr 26, 2025 am 12:06 AM

En PHP, l'itération des données de session peut être obtenue via les étapes suivantes: 1. Démarrez la session à l'aide de session_start (). 2. Ilaster à travers la boucle FOREACH à travers toutes les paires de valeurs clés dans le tableau $ _SESSION. 3. Lors du traitement des structures de données complexes, utilisez des fonctions is_array () ou is_object () et utilisez print_r () pour produire des informations détaillées. 4. Lors de l'optimisation de la traversée, la pagination peut être utilisée pour éviter de traiter de grandes quantités de données en même temps. Cela vous aidera à gérer et à utiliser les données de session PHP plus efficacement dans votre projet réel.

Expliquez comment utiliser les sessions pour l'authentification des utilisateurs.Expliquez comment utiliser les sessions pour l'authentification des utilisateurs.Apr 26, 2025 am 12:04 AM

La session réalise l'authentification des utilisateurs via le mécanisme de gestion de l'état côté serveur. 1) Création de session et génération d'ID unique, 2) Les ID sont passés par des cookies, 3) les magasins de serveurs et accèdent aux données de session via IDS, 4) l'authentification des utilisateurs et la gestion de l'état sont réalisées, améliorant la sécurité des applications et l'expérience utilisateur.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !