メモ > サーバ > 各論: Deployer > Deployer
Deployer
Deployer - Deployment Tool for PHP
https://deployer.org/
PHPで作られたデプロイツール
デプロイサーバにDeployerをインストールし、対象のサーバに命令を送る…という使い方をする
Webサーバがプライベートネットワークにあり、アクセスはロードバランサー…という場合、踏み台サーバ経由でデプロイする場合にも使える
動作にはPHP7が必要
Deployerを使ってデプロイしてみたら想像以上に楽だった - Qiita
https://qiita.com/ritukiii/items/ce1876b85c5bed68c93b
PHPだけで使えるDeployerでデプロイ | Pepo-le blog
https://blog.pepo-le.com/deployer/
Vagrant環境で試す場合、Ansible.txt にならって2台構成で最低限の環境を構築しておくといい
■準備
※デプロイ元サーバにPHP7が無ければ、あらかじめインストールしておく
※練習ではなく実際に使い続けるサーバなら、言語やタイムゾーンなども最初に設定しておく
# yum -y install epel-release
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# yum -y install --enablerepo=remi-php71 php php-cli php-common php-devel php-fpm
# yum -y install --enablerepo=remi-php71 php-process
# php -v
■Deployerをインストール
※最新版の挙動が怪しい(リポジトリのデプロイができない?)ので、Ver5の最終版を試す
# wget https://deployer.org/releases/v5.1.3/deployer.phar
# mv deployer.phar /usr/local/bin/dep
# chmod +x /usr/local/bin/dep
# dep
Deployer 5.1.3
# exit
以下は最新版をダウンロードする例
ファイルの取得以外は、インストール手順も基本的な使い方も同じ
バージョンごとの使い方の差は、以下に記載されている
deployer/UPGRADE.md at master - deployphp/deployer
https://github.com/deployphp/deployer/blob/master/UPGRADE.md
また例えばPHPのバージョンが5.6の場合、Deployerは4.3を使う必要があるみたい
今日からはじめるCI/CD ─ CircleCI + Deployerでテストとデプロイを自動化しよう!【休日個人開発】 - エンジニアHub|若手Webエンジニアのキャリアを考える!
https://employment.en-japan.com/engineerhub/entry/2018/03/20/110000
■1つのサーバ内でDeployerを動作確認
$ mkdir deploy_test
$ cd deploy_test
$ vi deploy.php … 処理内容を作成
■エラー対策
「[Error] Call to undefined function Deployer\Utility\posix_setsid()」のエラーになる場合、以下を実行する
「php71」の部分は、PHPのバージョンに合わせて変更する
<?php
namespace Deployer;
task('test', function () {
writeln('Hello world!');
});
$ dep test … Deployerを実行
Executing task test
Hello world!
Ok
$ vi deploy.php … 処理内容を作成
<?php
namespace Deployer;
task('test', function () {
writeln('Hello world!');
});
task('pwd', function () {
$result = run('pwd');
writeln("Current dir: $result");
});
$ dep test … Deployerを実行
Executing task test
Hello world!
Ok
$ dep pwd … Deployerを実行
Executing task pwd
Current dir: /home/vagrant/deploy_test
Ok
# yum -y install --enablerepo=remi-php71 php-process
# service php-fpm restart
# service nginx restart
deployerを実行した時にエラーになって進まないのを解決する話 - Qiita
https://qiita.com/binthec/items/bdc82416d4f6643498c9
「未だに必要要件が書いてあるページを見つけられません。どなたか知ってたら教えてください。」
とあるように、「PHP7」以外の必要要件がよく判らない