Home >Backend Development >PHP Tutorial >How to integrate and configure Deployer in PHP projects

How to integrate and configure Deployer in PHP projects

PHPz
PHPzOriginal
2023-07-12 12:53:211141browse

How to integrate and configure Deployer in PHP projects

Overview:
In the deployment process of PHP projects, it is very necessary to use automated tools. Deployer is a PHP-based deployment tool that can help us achieve automated project deployment. This article will introduce how to integrate and configure Deployer in a PHP project, as well as some common configurations and sample code.

1. Install Deployer:
First, we need to install Deployer in the project. Installing using Composer is the easiest way. Open a terminal, switch to the project root directory, and execute the following command:

composer require deployer/deployer --dev

This will install Deployer in the project and add it to the development dependencies.

2. Configure Deployer:
Create a deploy.php file in the project root directory. This will be the Deployer configuration file. In the deploy.php file, we need to configure some basic information, such as target server host, username, password, etc.

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

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

// 需要发布的代码库地址(可以是 Git、SVN 等)
set('repository', 'git@github.com:your_username/your_project.git');

// 部署的目标服务器
server('production', 'your_server_hostname')
    ->user('your_server_username')
    ->password('your_server_password')
    ->set('deploy_path', '~/your_deploy_path');

// 可选:生成版本号(根据 Git 提交信息生成)
set('keep_releases', 5);
set('release_name', function () {
    return date('YmdHis') . '_' . strtolower(deployer_run('git log -n 1 --format="%h"'))->toString();
});

// 自定义任务:重启服务
task('service:restart', function () {
    run('sudo service your_service_name restart');
});

// 在部署成功后执行自定义任务
after('success', 'service:restart');

The above sample code shows a most basic Deployer configuration, you need to modify it according to your actual situation. Among them, your_project_name is the name of the project, your_username is the username of the code base, your_project is the name of the code base, your_server_hostname is the target The host name of the server, your_server_username is the username of the target server, your_server_password is the password of the target server, your_deploy_path is the deployment path of the project on the target server,your_service_name is the name of the service that needs to be restarted.

3. Use Deployer to complete the deployment:
After the configuration is completed, use the following command to execute the deployment:

vendor/bin/dep deploy production

After the deployment is successful, your code will be pushed to the target server. Specify the path and perform a custom task (here, restart the service).

4. More configurations and custom tasks:
Deployer supports more configurations and custom tasks to meet the needs of different projects. Here are some examples of common configuration and customization tasks:

  1. Set writable directories:
    Some directories may need to be written to every deployment, you can use set Function to define these directories:
set('writable_dirs', ['var/logs', 'var/cache']);
  1. Custom tasks: clear cache and restart service:

    task('cache:clear', function () {
     run('cd {{release_path}} && php bin/console cache:clear');
    });
    
    task('service:restart', function () {
     run('sudo service your_service_name restart');
    });
    
    // 在部署完成后依次执行清理缓存和重启服务
    after('deploy:locked', 'cache:clear');
    after('success', 'service:restart');

Sample code above Shows how to customize tasks to clean cache and restart services. By configuring custom tasks, you can perform some additional actions after deployment is complete.

Conclusion:
In PHP projects, Deployer is a very useful automated deployment tool. With simple configuration and customization tasks, you can easily automate the deployment of your project. I hope this article can help you, and happy coding!

The above is the detailed content of How to integrate and configure Deployer in PHP projects. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn