mysqlが文字化けしてたので、いつもの手順で直す。
いつもの手順
http://wota.jp/ac/?date=20061011
ついでに、mysql administratorも入れた。
http://dev.mysql.com/downloads/gui-tools/5.0.html
GoogleAppsを使っている自ドメインのrailsアプリでActionMailerを使い、gmailのsmtpサーバ経由でメール送信することが出来た。
http://douglasfshearer.com/blog/gmail-smtp-with-ruby-on-rails-and-actionmailer
このやり方で出来ました。
このやり方だとruby1.8には無く、ruby1.9に入っているtlsの部分がpluginとしてきちんと切り出されているし、わかりよいと思います。
./script/plugin install http://svn.douglasfshearer.com/rails/plugins/action_mailer_optional_tls
した後に、config/environment.rbに追記するのですが、こんな風に書きました。
ユーザ登録、削除だけを行うアプリを作る。
- サイトを訪れたひとが自分のアカウントを作成できる。
とにかくすぐに使えるようにしたい。
そのための工夫(?)として、フローを以下のようにしてみるつもり。
ログイン名:アルファベットや数字の文字列
パスワード(そのうち別の認証のサポートするかもしれないけど)
確認用パスワード(<-本当に必要なのか?)
ユーザ名:表示用
メールアドレス:なにかと連絡用。パスワード忘れ時に送る用。メールアカウントへの認証を本人確認のよりどころにする。
登録後はそのまま使える。
ユーザにメールを送るが、それはメールアドレスのverify用であって、アカウントverifyではない。
これだけをひとまずやってみる。
sudo ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/
sudo ruby script/plugin install http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk/
一足遅く
./script/plugin discover
./script/generate authenticated user sessions --include-activation --stateful
詳細はこちらを
http://terrazilog.quipu.jp/?eid=585865
閑話休題:textmateを入れた
http://hisasann.com/housetect/2008/05/railstextmate.html
google appsの設定
googleappsとニフティのDNSホスティングの組み合わせることで、
自分のドメインで
が使えるようになりました。
GoogleAppsのStandardEditionだと他サイトとのシングルサインオンが出来ないのですが、プレミア(有料)もしくはパートナーエディション(申し込みが必要。無料と有料の2種類がある)に移行することで、その辺も連携できるようになります。
ハマった箇所:ニフティのDNSホスティングにGoogleメールサーバのMXレコードを登録する時。
ホスト名の欄には「@」<--これが最初わからなくて困った。
レコードタイプ「MX」
ValueにはGoogleの説明ページに書いてるサーバ名
優先順位も同じく説明ページに書いてある値
あとはRailsアプリを整えていく際に、メールサーバの用意だとか運用だとか容量の心配事が殆どなく進めていけるんじゃないかと思います。
google apps(?)の設定
メールサーバの運営はしんどいので、googleappsのstandard editionを利用する。
http://www.google.com/a/help/intl/ja/admins/editions.html
ドメイン保有者であることの確認には、CNAMEの追加か、指定されたhtmlファイルをそのドメインにuploadすることが必要です。
ニフティのDNSホスティングサービスならCNAMEの追加なども出来るのですが、一応20レコードを超えるとお金が発生するので節約しておこうかとおもい、、htmlファイルのuploadでやりました。
ec2onrailsでデプロイしたそのままの状況だと、/var/www/以下は見に行かず全部ralsilsアプリ配下のpublic/を見てるので、そちらに指定のhtmlファイルを置きました。
すぐに確認が通り、google appsが使える状況になりました。
githubに置いたソースをec2onrailsを使ってdeployする。
〜再掲〜
macbook:~/apps/bookshelf code$ cap deploy:cold
* executing `deploy:cold'
* executing `deploy:update'
** transaction: start
* executing `deploy:update_code'
Enter passphrase for key '/Users/code/.ssh/id_rsa':
* executing "git clone -q git@github.com:susatadahiro/bookshelf.git /mnt/app/releases/20081111111111 && cd /mnt/app/releases/200811111111111 && git checkout -q -b deploy poisdfklasjdfalksjdfaoisdjfasdf && (echo asdfasdfasdfasdfasdf > /mnt/app/releases/20081111111111/REVISION)"
servers: ["ec2-11-111-11-111.compute-1.amazonaws.com"]
[ec2-11-111-11-111.compute-1.amazonaws.com] executing command
** [ec2-11-111-11-111.compute-1.amazonaws.com :: err] Host key verification failed.
** [ec2-11-111-11-111.compute-1.amazonaws.com :: err] fatal: The remote end hung up unexpectedly
** [ec2-11-111-11-111.compute-1.amazonaws.com :: err] fetch-pack from 'git@github.com:susatadahiro/bookshelf.git' failed.
command finished
[deploy:update_code] rolling back
** [ec2-11-111-11-111.compute-1.amazonaws.com :: err] Host key verification failed.
Host Key....
現在までに出来てること
macbook --> github
macbook --> ec2
ここのソース送り込みは出来てる。今やろうとしているのは、github --> ec2のソース取得なのです。
githubはprivateリポジトリにしているのえ、で、アクセスするにはkeyとかが必要です。
現時点で既にやっているのは、
あたりで、ec2 - github間は何もやってないはず。
〜ここから再開〜
あまり頭を使わないで考えると、
ec2->githubへのアクセスで認証NGになっているのだから、macbook->githubと同様に、ec2のpublickeyをgithubに登録すればいいのではないか?エラーメッセージもそれを意味してるように見える。
では、さっそくやってみよう。
だめだった。
替わりに別の方法で出来た。
set :deploy_via, :copy
github->ec2
ではなく
macbook->ec2
ての経路でソースを送るやり方です。
cap deploy:coldはapacheとmongrelの起動も一気に行なうので、この段階で、仮railsアプリがブラウザで見ることができるようになりました。
#記念に、懸案だったトイレ掃除を半分だけやってみました。