Maison  >  Article  >  développement back-end  >  Déploiement et publication automatiques de projets PHP via Deployer

Déploiement et publication automatiques de projets PHP via Deployer

WBOY
WBOYoriginal
2023-07-13 09:43:361071parcourir

Déploiement et publication automatiques de projets PHP via Deployer

Avec le développement de la technologie Internet, l'échelle du développement de logiciels est en constante expansion, et le déploiement et la publication de projets sont également devenus un processus très fastidieux et long. Afin de résoudre ce problème, les développeurs ont progressivement commencé à utiliser des outils de déploiement automatisés pour simplifier et accélérer le processus de déploiement du projet. Dans cet article, je vais vous présenter comment utiliser Deployer pour implémenter le déploiement et la publication automatiques de projets PHP.

Deployer est un outil open source basé sur PHP, qui fournit des outils de ligne de commande simples et puissants pour aider les développeurs à déployer et publier automatiquement leurs projets. Deployer prend en charge diverses méthodes de déploiement, notamment FTP, SFTP, Git, etc., et fournit également une multitude de plug-ins pour étendre ses fonctions.

Tout d’abord, nous devons installer Deployer localement. Deployer peut être installé via Composer et utilisé comme dépendance du projet :

composer require deployer/deployer --dev

Une fois l'installation terminée, nous devons créer un fichier deploy.php dans le répertoire racine du projet en tant que fichier de configuration de le script de déploiement. Voici un exemple de configuration simple : deploy.php文件作为部署脚本的配置文件。以下是一个简单的配置示例:

require 'recipe/common.php';

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

// 项目仓库地址
set('repository', 'git@github.com:username/my_project.git');

// 部署目标服务器
server('production', 'production_server_ip')
    ->user('username')
    ->identityFile('~/.ssh/id_rsa')
    ->set('deploy_path', '/var/www/my_project');

// 部署后需要执行的任务
task('deploy:custom_task', function () {
    run('php artisan migrate');
});

// 部署完成后重启服务
after('deploy', 'deploy:restart');

// 配置要发布的文件和目录
set('shared_files', ['.env']);
set('shared_dirs', ['storage']);

// 配置要排除的文件和目录
set('exclude', ['.git', 'node_modules', 'tests']);

// 设置环境变量
set('env', [
    'APP_ENV' => 'production',
    'APP_DEBUG' => 'false',
]);

// 配置要保留的发布版本数量
set('keep_releases', 5);

上述配置文件中,我们设置了一些基本的参数,如项目名称、仓库地址、部署目标服务器等。同时,我们还定义了一些常用的任务,如自定义任务deploy:custom_task 和重启服务任务 after('deploy', 'deploy:restart')

# 部署项目到目标服务器
dep deploy production

# 回滚到上一个发布版本
dep rollback production

# 清理过期的发布版本
dep cleanup

Dans le fichier de configuration ci-dessus, nous définissons certains paramètres de base, tels que le nom du projet, l'adresse de l'entrepôt, le serveur cible de déploiement, etc. Dans le même temps, nous avons également défini certaines tâches couramment utilisées, telles que les tâches personnalisées deploy:custom_task et les tâches de redémarrage du service after('deploy', 'deploy:restart'). De plus, nous pouvons également configurer les fichiers et répertoires à publier, exclure les fichiers et répertoires et définir des variables d'environnement, etc.

Lorsque le fichier de configuration est prêt, nous pouvons utiliser Deployer pour déployer et publier automatiquement. Voici quelques exemples de commandes Deployer couramment utilisées :

rrreee

Avec ces commandes simples, nous pouvons déployer et publier automatiquement nos projets PHP. Deployer nous aidera à effectuer l'extraction automatique du code, le téléchargement de fichiers et la mise à jour de la configuration, ce qui simplifie grandement l'ensemble du processus de déploiement.

En résumé, Deployer est un outil de déploiement automatique très pratique et puissant pour les projets PHP. Grâce à Deployer, nous pouvons simplifier et accélérer le processus de déploiement et de publication des projets et améliorer l'efficacité du développement. J'espère que cet article sera utile à tout le monde. Vous êtes invités à essayer d'explorer davantage de fonctions et d'utilisations de Deployer. 🎜

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