概要
レンタルサーバーのhetemlにrocketeerでlaravelを設置する手順
(べつにhetemlじゃなくても良い)
使う予定であったが、結局使う機会には恵まれなかったので記事として残し
糧としたい
各バージョン
- php: 5.4以上
- Laravel: 5.0.1
- Rocketeer: 2.1.0
Laravelプロジェクトの作成
Laravelに関しては特殊なことはしない
$ composer create-project laravel/laravel --prefer-dist
githubにでもpushしておく
Rocketeerの準備
RocketeerはLaravelと一緒にはせず、別のディレクトリに置く
Rocketeerは2015-03-11時点で Laravel 4.0
の Illuminateを参照しようとするため
利用 Laravel が 5.0 だと同じディレクトリに配置できない
$ cd <別ディレクトリ>
$ composer require anahkiasen/rocketeer:dev-master
# 設定ファイルの生成(全てエンターにする)
$ ./vendor/bin/rocketeer ignite
各種設定ファイル
.rocketeer/config.php
// ...
'connections' => [
'heteml' => [
'host' => 'ssh***.heteml.jp:2222',// :の後にportを指定できる
'username' => '<username>',
'password' => '',
'key' => '~/.ssh/id_rsa',
'keyphrase' => '',
'agent' => '',
'db_role' => true,
],
],
Rocketeerがdeployにremote先でcomposerを使うため
heteml側にcomposer.pharを準備しておく
hetemlにssh
$ cd ~
$ mkdir bin
$ cd bin
$ php -r "readfile('https://getcomposer.org/installer');" | php
.rocketeer/paths.php
// Path to Composer
'composer' => '/home/sites/heteml/users/u/s/r/<user>/bin/composer.phar',
.rocketeer/remote.php
// ..
'root_directory' => '/home/sites/heteml/users/u/s/r/<user>/web/',
'app_directory' => 'laravel', // 空でも良い
// ..
'shared' => [
'storage/logs',
],
// ..
'permissions' => [
'files' => [
],
'callback' => function ($task, $file) {
return [
// php実行ユーザが同じなので0755にするだけで動く
sprintf('chmod -R 755 %s', $file),
];
},
],
.rocketeer/scm.php
リポジトリやユーザ名をgitリポジトリにアクセスできるように設定する
.rocketeer/tasks.php
を作成する
"hetemlに" とタイトルでついているのはここの為に有ります
composerが生成する storage/framework/compiled.php
があると激しい文字化けに襲われるため配置後に削除する処理を書く
.rocketeer/tasks.php
<?php
use Rocketeer\Facades\Rocketeer;
Rocketeer::addTaskListeners('deploy', 'before-symlink', function ($task) {
// composerによって生成されるcompiled.phpを削除しないとhetemlで文字化けに襲われる
$output = $task->runForCurrentRelease("rm storage/framework/compiled.php");
});
あとはheteml側でgitリポジトリにアクセスできるように設定
hetemlにssh
$ cd ~
$ mkdir .ssh -m 0700
$ ssh-keygen -t rsa -C "heteml"
$ cat id_rsa.pub
# githubのプロジェクト単位 deploy keyとかに登録する
$ echo "Host github
HostName github.com
User git" >> config
$ chmod 0600 config
$ ssh github
Hello ******! ...
Rocketeer についての補足
2015-03-09時点ではCapistranoの様にローカルにgitリポジトリを持ってきて
tar等にまとめてscpで転送し、deployする機能はありません...
deploy
これで設定は終わりです
全てうまく設定できていればdeployできるハズ
./vendor/bin/rocketeer deploy --on="heteml"