つまづきポイント
-
ssh
コマンドが使えるターミナルからdeploy
すること- 素の
cmd.exe
とかでは - 筆者は GitHub Desktop 同梱の
Git Shell
を使用しました
- 素の
-
ssh user@domain.sakura.ne.jp -i ~/.ssh/id_rsa
でサーバーにログインできる状態であること-
user
、domain
は適宜自分のものに書き換える -
~/.ssh/id_rsa
は後述のdeploy.php
のidentityFile
に指定する秘密鍵とおなじもの
-
- サーバー側に最新の
Git
をインストールし- シェルをbashに変更し
- パスを通しておく
-
deploy.php
のbin/git
環境変数で指定します - さくらインターネットレンタルサーバにGitをインストールする - 高見知英のかいはつにっし(β)
- さくらインターネットのデフォルトのシェルをbash に変更してみた – 極上の人生
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コードなので、読めないことはないという気持ちがたいせつ。