LoginSignup
7
7

More than 5 years have passed since last update.

webistrano+apacheを使ってみる(ec-cubeを使ったサイト用検討)

Last updated at Posted at 2014-03-21

デプロイツールソリューション検討

Mina Rocketeer Capistrano Fabric Cinnamon
Webistrano

今回はGUIを使うことが前提だったので他のモノの方がPHPには向いていそうだったがCapistranoを使ってみる

導入メモ

gitでレポジトリ管理

サブディレクトリでデプロイする方法もありそうなので、ひとまずルートでgit initしておく

capistranoインストール

capistranoは割とすぐ入った。
gem install capistrano

webistranoインストール

少しややこしくてちょっと手間取る
rubyのバージョン周りの注意点はyum任せだったので元から0.8.7とかだったので苦労せずスルー。

yum install make gcc-c++ curl-devel openssl-devel zlib-devel httpd httpd-devel ruby-devel rubygems mod_ssl
// MySQLログインしてdatabase追加
create database webistrano_development;
create database webistrano_test;
create database webistrano_production;

// maigrate
RAILS_ENV=development bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake db:migrate

基本は下記を参考
http://www.maepachi.com/blog/entry/120
apacheで動かすのでdeployerは作らなかった
passengerを使ってapacheユーザーでプロセスを起動しているので権限周りがまだ制限された状態
権限周りは今後検討、ひとまずはapacheユーザーで出来る範囲でいい

webistrano設定

デフォルトがsubversionの設定になっていてちょっと手間取る
迷ったのは、repositoryの指定をローカルのURIにすること
repository:file:///path/.git
sshの秘密鍵指定(ローカルに接続して検証)
ssh_keys:hoge
あとは実行ユーザーがapacheで出来ないことある。
サーバーの再起動とかいろいろ権限が足りない。
sudoの設定もしたくないし、、apacheで動かすのやめるかも。
passengerの設定でクリアできるのかも知れないけどひとまず保留。
(->権限あるユーザーでsshでログインすればできた、、use_sudoとrunnerでremoteのユーザーを帰れるけど、、ファイル権限はrecipes実行で変えればいいのかな。)

インストール後

currentの下にsimlinkで反映する仕組みだとインストールしてから気づいた。
(simlink少し不安。Rocketeerもsimlinkでリリースを切り替えるみたい。大本のディレクトリ構成もcurrentとかでそろえるかなあ。)
あとgitにpush,pullみたいな感じじゃ無くて別管理なのね。これはメリットとデメリットがありそう。
(releaseを指定してロールバックとかはrecipeを使えば出来るのかな。)
もうすこし使ってみて考える。
ec-cubeのテンプレだけデプロイとかしたいんだけどうまく出来るかとか。

公開鍵暗号にしたらエラーが出た

Net::SSH::AuthenticationFailed

・今回は「解決法1: net-sshのバージョンを2.7.0に固定する」で対応。

test.rb
equire 'rubygems'
require 'net/ssh'
Net::SSH.start("example.ppp", "hohoho", :keys => ['/foo/hoge.key'], :verbose => :debug) {|x| p x }

>テストスクリプトは大丈夫だったけど、だめでした。

・ssh_configに追加

RSAAuthentication yes
PubkeyAuthentication yes

>だめでした。

・結局

鍵ファイルの権限がapacheでwebistrano側のユーザーを別の一般ユーザーに変更したのが原因っぽい。

上記のtest.rbをそれらのユーザーでsudoしてみて検証したら分かった。

ほか参考

Net::SSH::AuthenticationFailed 鍵 - Google 検索
http://goo.gl/nDMTpE

chef soloでAuthenticationFailedといわれたときの対応
http://goo.gl/QlMNqx

capistrano3 sshの設定で躓く. - Qiita
http://goo.gl/bP1WSx

メモ

ロールをwebにしているとdeploy:web:disableとかできる
recipesはひとまずは簡単に作れそうなので便利につかえそう
deploy:rollbackはdeployしたreleaseを戻すとは限らない、setupとかの分を戻すかも??ので注意。

参考

git

http://nob-log.info/2013/03/18/ec-cube-git-guide/

Capistranoインストール

$ sudo gem install capistrano
(http://d.hatena.ne.jp/yamada6789/20110108/1294450383)

Webistranoインストール

http://hiro1986.hateblo.jp/entry/2013/12/10/143700
http://www.maepachi.com/blog/entry/120

サブディレクトリのみ処理

http://tesiri.hateblo.jp/entry/2013/11/29/180241
7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7