>  기사  >  백엔드 개발  >  PHP 프로젝트에서 Deployer를 통합하고 구성하는 방법

PHP 프로젝트에서 Deployer를 통합하고 구성하는 방법

PHPz
PHPz원래의
2023-07-12 12:53:211120검색

PHP 프로젝트에서 Deployer를 통합하고 구성하는 방법

개요:
PHP 프로젝트 배포 프로세스에서는 자동화된 도구를 사용하는 것이 매우 필요합니다. Deployer는 자동화된 프로젝트 배포를 달성하는 데 도움이 되는 PHP 기반 배포 도구입니다. 이 기사에서는 PHP 프로젝트에서 Deployer를 통합하고 구성하는 방법과 몇 가지 일반적인 구성 및 샘플 코드를 소개합니다.

1. Deployer 설치:
먼저 프로젝트에 Deployer를 설치해야 합니다. Composer를 사용하여 설치하는 것이 가장 쉬운 방법입니다. 터미널을 열고 프로젝트 루트 디렉터리로 전환한 후 다음 명령을 실행합니다.

composer require deployer/deployer --dev

그러면 프로젝트에 Deployer가 설치되고 개발 종속성에 추가됩니다.

2. 배포자 구성:
프로젝트 루트 디렉터리에 배포.php 파일을 만듭니다. 이것이 배포자 구성 파일이 됩니다. 배포.php 파일에서 대상 서버 호스트, 사용자 이름, 비밀번호 등과 같은 몇 가지 기본 정보를 구성해야 합니다.

<?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');

위 샘플 코드는 가장 기본적인 Deployer 구성을 보여주며, 실제 상황에 따라 수정해야 합니다. 그 중 your_project_name은 프로젝트 이름, your_username은 코드베이스의 사용자 이름, your_project는 코드베이스의 이름입니다. , your_server_hostname은 대상 서버의 호스트 이름, your_server_username은 대상 서버의 사용자 이름, your_server_password는 대상 서버의 비밀번호, your_deploy_path는 대상의 프로젝트 위치입니다. 서버의 배포 경로, your_service_name은 다시 시작해야 하는 서비스의 이름입니다. your_project_name 是项目的名称,your_username 是代码库的用户名,your_project 是代码库的名称,your_server_hostname 是目标服务器的主机名,your_server_username 是目标服务器的用户名,your_server_password 是目标服务器的密码,your_deploy_path 是项目在目标服务器上的部署路径,your_service_name 是需要重启的服务名称。

三、使用 Deployer 完成部署:
配置完成后,使用以下命令可以执行部署:

vendor/bin/dep deploy production

部署成功后,你的代码将会被推送到目标服务器上的指定路径,并执行自定义任务(此处为重启服务)。

四、更多配置与自定义任务:
Deployer 支持更多的配置和自定义任务,以满足不同项目的需求。下面是一些常用的配置和自定义任务示例:

  1. 设置可写目录:
    有些目录可能需要在每次部署时被写入,你可以使用 set
  2. 3. Deployer를 사용하여 배포를 완료합니다.
구성이 완료되면 다음 명령을 사용하여 배포를 수행합니다.
    set('writable_dirs', ['var/logs', 'var/cache']);
  1. 배포가 성공하면 코드가 대상 서버의 지정된 경로로 푸시되고 사용자 지정 작업이 수행됩니다. (이것은 서비스를 다시 시작하는 것입니다).

    4. 추가 구성 및 사용자 정의 작업:
  2. Deployer는 다양한 프로젝트의 요구 사항을 충족하기 위해 더 많은 구성 및 사용자 정의 작업을 지원합니다. 다음은 일반적인 구성 및 사용자 정의 작업의 몇 가지 예입니다.

    쓰기 가능한 디렉터리 설정:

    일부 디렉터리는 모든 배포에 작성해야 할 수 있습니다. set 함수를 사용하여 이러한 디렉터리를 정의할 수 있습니다.


    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');

    🎜🎜 사용자 정의 작업: 캐시를 지우고 서비스 다시 시작: 🎜rrreee🎜🎜🎜위의 샘플 코드는 캐시를 정리하고 서비스를 다시 시작하는 작업을 사용자 정의하는 방법을 보여줍니다. 사용자 지정 작업을 구성하면 배포가 완료된 후 몇 가지 추가 작업을 수행할 수 있습니다. 🎜🎜결론: 🎜PHP 프로젝트에서 Deployer는 매우 유용한 자동 배포 도구입니다. 간단한 구성 및 사용자 정의 작업을 통해 프로젝트 배포를 쉽게 자동화할 수 있습니다. 이 글이 여러분에게 도움이 되기를 바랍니다. 즐거운 코딩 되세요! 🎜

위 내용은 PHP 프로젝트에서 Deployer를 통합하고 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.