プログラマとプロマネのあいだ

プログラマもやるし、プロマネもやるし、たまに似非アーキとか営業っぽいこともやる

「RailsによるアジャイルWebアプリケーション開発」27章読了

本番環境への配備のお話し。


capistranoで色々ハマったので、メモっておく。

cap --apply-toが使えない件

なんかもうオプションとか変わってるみたい。
http://www.tkrb.jp/guide/2008/02/capistrano_rails.html
辺りを参考にしました。

Subversion久しぶりだったので

どうやってimportするか忘れてた。
http://www.hyuki.com/techinfo/svninit.html#repdir
を参考にした。

taka@taka-desktop:~/test$ svn import file:///home/taka/svnrepos/myapplication -m "Initial import."
追加しています              test
追加しています              test/unit
追加しています              test/unit/product_test.rb
追加しています              test/unit/order_mailer_test.rb
追加しています              test/test_helper.rb
...

cap deploy:setupでディレクトリ作成エラー

 ** [localhost :: err] svn: ディレクトリ '/var/www/myapplication/releases/20080729065038' を作成できません: Permission denied

配備先(/var/www/myapplicationとか)のディレクトリの書き込み権限がなくてエラーになった。
とりあえず777で強引に抜けたものの、もしかしたらユーザIDを設定するのが正しいのかもしれない。
下記参照。

sudo: no passwd entry for app!

http://pools.jp/2008/05/06/capistrano-sudo-no-passwd-entry-for-app/
のやりかたでOKでした。
もしかしたら、上のも回避出来るかもしれないと思ってたりします。


あと、mysqlのパスワードが設定されてないとダメなのかと思って、
rootのパスワードを設定してみたりもしました。

http://blog.c-production.com/archives/2006/08/mysqlroot.html

が、たぶんこれは関係ないです。

pidファイルが見付からないうんぬん

mysqlのpidファイルの場所が、デフォルトでは/tmpなのですが、違ってたという話し。
mysqlにログインして、\sコマンドで調べられます。

UNIX socket:            /var/run/mysqld/mysqld.sock

こいつをconfig/database.ymlに設定する。

production:
  adapter: mysql
  database: myapplication
  database: myapplication
  username: root
  password: root
  socket: /var/run/mysqld/mysqld.sock

script/spinでpermission denied

上で作ったspinスクリプトを実行権限付けずにVCへコミットしてしまうと起こるらしいエラー。
僕も漏れなく引っかかりました。


Subversionで作業コピーのパーミッションを変えても、
リポジトリパーミッションは変わらないようだったので、
一旦リポジトリから削除した上、実行権限を付けてから再コミットしました。


こんなところだったかなあ。ハマり過ぎ。
でも、マイグレーションとか色々やってくれるので、便利かもしれません。