FREE-QUENCY BLOG

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

FQ赤田

こんばんわ。東京事務所の赤田です。

今日はWEB上で、

・エクセル風の見た目
かつ
・文字を折り返さずに一行で表示
して、
・折り返さなかったことで隠れてしまう文字は、列の幅を伸ばすことで見える!
(列幅がドラッグで可変できる)

そんなサンプルをご紹介します。

完成したサンプルの見た目はこんな感じです。
エクセル風の一覧表

続きを読む

こんばんわ。東京事務所の赤田です。

タイトルで既に語りたいことは大体語ってしまった感がありますが、
今回のTipsは、

イベントの募集や応募フォームなど、フォームで入力してもらう内容は大体同じだけど、

イベントごと、応募ごとに、それぞれ別管理のフォームを
大量に用意したい!


サイトの運用者がプログラマーでなくても
自力で
任意のフォームを用意したい!


といった場合にお役立ちな情報です。


続きを読む

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を含めてしまえばいいし、
エンジニアがメンテナンスに参加できるため属人化せずに済みそう。


↑このページのトップヘ