Maison  >  Article  >  développement back-end  >  Déploiement PHP élégant : utilisez Deployer pour améliorer l'efficacité du développement

Déploiement PHP élégant : utilisez Deployer pour améliorer l'efficacité du développement

王林
王林original
2023-07-12 13:55:36746parcourir

Déploiement PHP élégant : utilisez Deployer pour améliorer l'efficacité du développement

Dans le développement Web, le déploiement est un maillon très important. La méthode de déploiement traditionnelle implique généralement des opérations fastidieuses telles que la copie manuelle de fichiers et l'exécution de commandes, ce qui est non seulement sujet aux erreurs mais également inefficace. Désormais, avec l'aide d'outils de déploiement automatisés, nous pouvons facilement terminer le travail de déploiement et améliorer l'efficacité du développement.

Cet article présentera un outil de déploiement PHP élégant - Deployer, et montrera comment utiliser cet outil pour un déploiement automatisé à travers des exemples de code.

1. Introduction à Deployer

Deployer est un outil de déploiement automatisé open source développé sur la base de PHP. Ses objectifs de conception sont faciles à utiliser et hautement évolutifs. Grâce à Deployer, nous pouvons déployer des projets en écrivant des fichiers de configuration concis sans exécuter manuellement des commandes de déploiement lourdes.

2. Installer Deployer

Pour utiliser Deployer, vous devez installer PHP et Composer localement. Une fois l'installation terminée, nous pouvons installer Deployer via Composer.

Ouvrez l'outil de ligne de commande et entrez la commande suivante pour installer Deployer globalement :

composer global require deployer/deployer

Une fois l'installation terminée, nous pouvons utiliser Deployer via la commande dep. dep命令来使用Deployer了。

三、使用Deployer进行部署

下面,我们将通过一个示例项目来演示如何使用Deployer进行自动化部署。

首先,我们需要在项目根目录下创建一个deploy.php配置文件,此文件将包含我们的部署脚本。

<?php
require 'recipe/common.php';

// 项目名称
set('application', 'myproject');

// 项目远程仓库
set('repository', 'git@github.com:user/repo.git');

// 部署到的服务器
server('production', 'mydomain.com', 22)
    ->user('username')
    ->password('password')
    ->set('deploy_path', '/var/www/html/{{application}}');

// 执行部署
task('deploy', function () {
    // 增量更新代码
    run('cd {{release_path}} && git reset --hard HEAD && git pull origin master');

    // 安装依赖
    run('cd {{release_path}} && composer install');

    // 更新数据库
    run('cd {{release_path}} && php artisan migrate');

    // 配置文件处理
    run('cd {{release_path}} && cp .env.production .env && php artisan config:cache');

    // 重启服务
    run('sudo service nginx restart');
});

// 将以上步骤绑定到部署命令
after('deploy', 'cleanup');

在以上配置文件中,我们首先使用require函数引入了Deployer的基础配置文件。

然后,我们通过set函数来设置一些项目相关的配置,例如项目名称、远程仓库地址等。

之后,我们使用server函数来创建一个部署服务器,并设置服务器相关的配置,如服务器地址、用户名、密码等。

最后,我们使用task函数来定义一个部署任务,并在任务中编写部署脚本。在这个示例中,我们首先执行了增量更新代码的操作,然后安装项目依赖、更新数据库、处理配置文件等。

最后,我们使用after函数将以上操作绑定到部署命令中,这样当我们执行dep deploy

3. Utiliser Deployer pour le déploiement

Ci-dessous, nous utiliserons un exemple de projet pour montrer comment utiliser Deployer pour un déploiement automatisé.

Tout d'abord, nous devons créer un fichier de configuration deploy.php dans le répertoire racine du projet. Ce fichier contiendra notre script de déploiement.

dep deploy

Dans le fichier de configuration ci-dessus, nous avons d'abord introduit le fichier de configuration de base du Deployer à l'aide de la fonction require.

Ensuite, nous utilisons la fonction set pour définir certaines configurations liées au projet, telles que le nom du projet, l'adresse de l'entrepôt distant, etc.

Après cela, nous utilisons la fonction server pour créer un serveur de déploiement et définir les configurations liées au serveur, telles que l'adresse du serveur, le nom d'utilisateur, le mot de passe, etc.

Enfin, nous utilisons la fonction task pour définir une tâche de déploiement et écrire le script de déploiement dans la tâche. Dans cet exemple, nous avons d'abord effectué une mise à jour incrémentielle du code, puis installé les dépendances du projet, mis à jour la base de données, traité les fichiers de configuration, etc.

Enfin, nous utilisons la fonction after pour lier les opérations ci-dessus à la commande de déploiement, de sorte que lorsque nous exécutons la commande dep déployer, les étapes ci-dessus seront exécutées dans séquence.

4. Exécuter le déploiement🎜🎜Une fois la configuration terminée, nous pouvons basculer vers le répertoire racine du projet dans l'outil de ligne de commande, puis exécuter la commande suivante pour déployer : 🎜rrreee🎜Pendant le processus de déploiement, Deployer se connectera automatiquement à le serveur distant que nous avons configuré et effectuons les tâches de déploiement que nous avons définies. 🎜🎜Une fois le déploiement terminé, nous pouvons voir le projet déployé avec succès sur le serveur distant. 🎜🎜Résumé🎜🎜À travers les exemples ci-dessus, nous pouvons voir que l'utilisation de Deployer pour un déploiement automatisé est très simple et qu'il vous suffit d'écrire un fichier de configuration concis. Cela améliore considérablement l'efficacité du développement et réduit le risque d'erreurs causées par les opérations de déploiement manuel. 🎜🎜Bien sûr, Deployer offre également plus de fonctions et d'évolutivité, comme la prise en charge du déploiement simultané de plusieurs serveurs, des fonctions de hook avant et après le déploiement, etc. Si vous avez des exigences de déploiement plus complexes, vous pouvez consulter la documentation officielle du déployeur pour plus d'informations. 🎜🎜J'espère que cet article pourra vous être utile et vous rendre plus élégant et efficace dans le déploiement de projets PHP ! 🎜

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