FREE-QUENCY BLOG

有限会社フリークエンシーのブログです。
渋谷区代々木にあるWEB/アプリ開発会社です。技術ネタなど更新中。

カテゴリ: PHP

Deployer

DeployerはPHP製のデプロイツールです。
基本動作はCapistrano3に似ていますが、
Deployerはもっと機能を絞った、シンプルな印象です。
2016年1月18日現在、3.0.10がリリースされています(公式サイト


基本動作

大まかなデプロイの流れとしては
・ホスト(CIサーバ等)からデプロイ先のサーバへSSH接続時
・デプロイ先にてリリース用ディレクトリを作成
・gitからソースをclone
・currentディレクトリのシンボリックリンクを最新のリリースディレクトリへ貼り直し
という流れになります。

ただ、それだとアプリケーションによってアップされた画像ファイルやログファイルが
リリースのたびに消えてしまいます。
そのためsharedというディレクトリが用意されており、
デプロイ時に対象ディレクトリを指定できるようになっています。

デプロイ先での配置例
deploy_path/
 ├── current -> /deploy_path/releases/20160117145103(最新のリリースフォルダ)
 ├── shared/
 |       └── fw/
 |           └── logs/(リリースフォルダ/fw/logsから参照されている)
 └── releases/
         ├── 20160117145103/
         ├── 20160117144938/
         └── 20160117134101/



インストール

下記のコマンドでpharファイル(約2.6MB)を1つダウンロードしてくるだけです。
curl -L http://deployer.org/deployer.phar -o deployer.phar
CentOSなどでコマンドとして使用するのであれば
chmod +x /usr/local/bin/dep
mv deployer.phar /usr/local/bin/dep
としておきましょう。


設定ファイルを用意

deploy.phpという名前でデプロイのための設定を記述します。
具体的にはPHPで下記のように、使用するタスクとサーバ情報、
gitのリポジトリ情報等を記述します。
設置場所はオプションで指定できます。
/usr/local/bin/dep --file=/your/server/path/deploy.php deploy stage_name -vvv
また、deployer.phpと同階層に設置するのであれば指定を省略できます。
php deployer.phar deploy sandbox -vvv


SSH接続設定

接続元サーバからデプロイ先サーバへSSH接続できるよう設定しておきます。
今回は両方のサーバに同名のユーザを作り、SSH公開鍵認証方式で接続できるよう設定
していました。
(deploy.phpのserver設定でパスワードも指定できるようですが未確認です)


実行方法

■デプロイ実行
php deployer.phar deploy stagename -vvv
実行するたびYYYYMMDDHHIISS形式でリリースフォルダを作成。
デフォルトで3世代管理されます。

■ロールバック実行
php deployer.phar rollback stagename -vvv
実行するたび1世代切り戻します。
最新のリリースフォルダは削除されます。
切り戻れるリリースフォルダが無い場合、ロールバックに失敗します。


所感

シンプルながら必要なデプロイ機能は最初から用意されている印象。
また、今回は紹介できませんでしたが、タスクの追加 / 拡張がやりやすそうなので、
プロジェクトごとの細かい対応や、migrationの実行設定なども問題なさそう。
あと、PHP製というところが地味に大事。
PHPプロジェクトにそのままdeployer.pharを含めてしまえばいいし、
エンジニアがメンテナンスに参加できるため属人化せずに済みそう。


昨日の記事でWindows環境にComposerを導入できたので、
試しにSlimをインストールしてみました。

■環境
・Windows10 home 32ビットOS
・Xampp
 Apache 2.4.12
 PHP5.6.8

■キーワード
Slim
ビルトインサーバ


事前にworkspace以下にプロジェクトフォルダを作っておきます。
ここではredprintフォルダを作りました。
続けてcomposer.jsonを作成します。
slim0
slimはすでにバージョン3がリリースされているのですが、
今回はバージョン2系をインストールすることにしました。

プロジェクトフォルダ直下に保存します。
slim1

コマンドプロンプトを開き、composer.jsonを置いたフォルダまで移動します。
移動したら「composer install」を実行
slim2

自動的にダウンロードが始まり、終了すると下記のように表示されます。
ダウンロードはデフォルトでvendorフォルダ内に行われます。
slim3

プロジェクトフォルダ内にhtmlフォルダを作成します。
htmlフォルダ内には下記のようなindex.phpをおいておきます。
(文言に迷ったら取りあえずredprint!)
slim4
これで準備完了です。

あとは適当にローカルサーバ設定をして表示を確認します。
Xamppだと下記のようになります。
slim5

hostsファイルにも設定
slim6

Apacheを再起動してブラウザで確認してみます。
slim7
無事表示されました。

PHP5.4以降ならビルトインサーバを使うのもいいかもですね。

5年前に買ったPCが意外と壊れないので、Windows10にアップグレードして使い続けている。
そんなPCでも、ちょっとした実験くらいは出来るようにしておこうかと思い、
ひとまずComposerを入れてみた(Xampp導入済み)

■環境
Windows10 home 32ビットOS
CPU:Core i3
メモリ:2GB

■キーワード
Composer

■インストール
まずサイトからインストーラーをダウンロードしてくる
https://getcomposer.org/doc/00-intro.md#installation-windows

Composer-Setup.exeの部分をクリックすればOK

「Composer-Setup.exe」がダウンロードできたら、ダブルクリックで実行します。
composer1
「Next」をクリック
composer2
「Install Shell Menus」を選択すると、Composerを右クリックメニューで利用できます。
こだわりがなければ「Install Shell Menus」を選択。
composer3
PHPのパスを入力して「Next >」をクリック
composer4
「Install」をクリック。
composer5
「Next >」をクリック。
composer6
無事完了!

自動的に環境変数も登録されていて、composerにパスが通っています。
一度PCを再起動してから、コマンドプロンプトを立ち上げて
composer
と打ち込んでみます。

composer7
上記の画面が表示されれば正常にインストールされています。

以上

↑このページのトップヘ