PHP
Windows
Deployer

Deployer でつまづいたポイント(Windows 10+さくらレンタルサーバー+GitHub)

つまづきポイント :no_pedestrians:

  1. sshコマンドが使えるターミナルからdeployすること
    • 素のcmd.exeとかでは :no_good_tone1:
    • 筆者は :octocat: GitHub Desktop 同梱の Git Shellを使用しました
  2. ssh user@domain.sakura.ne.jp -i ~/.ssh/id_rsaでサーバーにログインできる状態であること
    • userdomainは適宜自分のものに書き換える
    • ~/.ssh/id_rsaは後述のdeploy.phpidentityFileに指定する秘密鍵とおなじもの
  3. サーバー側に最新のGitをインストールし

deploy.php

最終的に以下のようになりました。

<?php
namespace Deployer;

require 'recipe/common.php';

// Hosts
host('user@domain.sakura.ne.jp')
    ->port(22)
    ->addSshOption('UserKnownHostsFile', '/dev/null')
    ->addSshOption('StrictHostKeyChecking', 'no')
    ->identityFile('~/.ssh/id_rsa')
    ->forwardAgent(true)
    ->multiplexing(false)
    ->set('deploy_path', '~/www/path/of/project')
    ->set('bin/git', '~/local/bin/git')
    ->set('application', 'project-name-here')
    ->set('repository', 'git@github.com:your/project.git')
    ;

// Tasks

desc('Deploy your project');
task('deploy', [
    'deploy:info',
    'deploy:prepare',
    'deploy:lock',
    'deploy:release',
    'deploy:update_code',
    'deploy:shared',
    'deploy:writable',
    'deploy:vendors',
    'deploy:clear_paths',
    'deploy:symlink',
    'deploy:unlock',
    'cleanup',
    'success'
]);

// [Optional] If deploy fails automatically unlock.
after('deploy:failed', 'deploy:unlock');

> php deployer.phar deploy

すべてがうまくいったとき
✈︎ Deploying master on user@domain.sakura.ne.jp
➤ Executing task deploy:prepare
✔ Ok
➤ Executing task deploy:lock
✔ Ok
➤ Executing task deploy:release
✔ Ok
➤ Executing task deploy:update_code
✔ Ok
➤ Executing task deploy:shared
✔ Ok
➤ Executing task deploy:writable
✔ Ok
➤ Executing task deploy:vendors
✔ Ok
➤ Executing task deploy:clear_paths
✔ Ok
➤ Executing task deploy:symlink
✔ Ok
➤ Executing task deploy:unlock
✔ Ok
➤ Executing task cleanup
✔ Ok
Successfully deployed!

それでもエラーが出たら

-vvvオプションで実行してみる

php deployer.phar deploy -vvv
ステップのログが細かく出力されるので、どの部分で失敗しているのかが特定できるかもしれません。

deployerレポジトリをcloneしてコード読んでみる。

PHPコードなので、読めないことはないという気持ちがたいせつ。
- :octocat: deployphp/deployer: A deployment tool written in PHP with support for popular frameworks out of the box