CodeIgniter 3.0をコマンド一発でデプロイするCodeIgniter Deployer
CodeIgniter Composer Installerでコマンド一発でCodeIgniter 3.0をインストールできるようになりました。
デプロイもコマンド一発でできるようにしましょう。
CodeIgniter Deployer
CodeIgniterをデプロイするためのツールです。
中身はDeployerです。別にCodeIgniterでなくてもちょっと設定を変えれば使えます(w
も参考にしてください。
インストール方法
Composerでインストールします。
$ cd /path/to/codeigniter/
$ composer require 'phpseclib/phpseclib:dev-master#2c96af214bf1b5e29b707249108504b4e0041a21' # この行、Deployer v3.0.6以降では不要
$ composer require kenjis/codeigniter-deployer:1.0.x@dev --dev
$ php vendor/kenjis/codeigniter-deployer/install.php
これでインストール完了です。
(2015-06-15 更新)
phpseclibの行は、今現在Deployerがリリース前のphpseclibに依存しているため、プロジェクトルートのcomposer.jsonにそのコミットを追加しないと、stabilityの関係でうまくインストールできないために必要です。phpseclibの新しいバージョンがリリースされ、Deployerが更新されれば不要になります。 Deployer v3.0.6から不要になりました。
フォルダ構成
以下のようになります。
codeigniter/
└── deploy/
├── deploy.php ... Deployerの設定ファイル
├── deploy.sh ... デプロイ用のスクリプト
└── logs/
Deployerの設定方法
deploy/deploy.phpを変更します。
デプロイ先のサーバの指定
以下を自分のサーバに合わせて変更します。
// Your production server
server('prod', 'your.server.example.com', 22)
->user('username')
->forwardAgent()
->stage('production')
->env('branch', 'master')
->env('deploy_path', '/var/www/your-codeigniter-app');
上記はSSH Agentで認証する設定ですが、パスワードや鍵ファイルを使う場合の設定は、以下のドキュメントを参照してください。
リポジトリの指定
以下にリポジトリを設定します。
// Your Git repository
set('repository', 'git@github.com:org/your-codeigniter-app.git');
サーバ上でこのリポジトリからgit cloneしますので、アクセス可能に設定する必要があります。
サーバの設定
sudo
ttyなしパスワードなしでsudoが実行できる必要があります。そのように設定してください。
例えば、以下のようになります。
Defaults:username !requiretty
username ALL=(ALL) NOPASSWD: /usr/bin/setfacl
デプロイ方法
以下でデプロイされます。
$ cd /path/to/codeigniter/
$ cd deploy/
$ sh deploy.sh
サーバ上では以下のように配置されます。
your-codeigniter-app/
├── current -> /var/www/your-codeigniter-app/releases/20150603181638
└── releases/
├── 20150603180505/
├── 20150603181203/
└── 20150603181638/
デプロイ先のベースパスの中のcurrentが現在リリースされているソースになります。currentフォルダはreleases/20150603181638へのシンボリックリンクです。
Webサーバの設定は(codeigniter-composer-installerを使っている場合は)current/publicをドキュメントルートに設定します。
CodeIgniterをデフォルトのフォルダ構成で使っている場合は、currentをドキュメントルートに設定します。
関連
Date: 2015/06/04



![徹底攻略PHP5技術者認定[上級]試験問題集 [PJ0-200]対応 徹底攻略PHP5技術者認定[上級]試験問題集 [PJ0-200]対応](http://tatsu-zine.com/images/books/164/cover_s.jpg)

