Leopard環境のRuby on Rails 2.3.3の簡単インストール方法。
システムが不安定だったので、再インストールすることになりました。
以前の記述だと、いろいろなエラーが出たので、再々インストールしたときの手順を記述します。
http://d.hatena.ne.jp/monote/20090404/1238829935
参考というかほとんどそのままコピペさせていただきます(><)
http://d.hatena.ne.jp/sawada0903/20090612/1244756957
1)OSを最新の状態に保つ ソフトウェアアップデートによってOSを最新版にすること。 現時点だと、10.5.8です。 (2)ADCから最新版のXcodeをインストール ほぼ1G近く、ダウンロードに30分を要します。 http://developer.apple.com/jp/ (3)MacPortsをインストール http://www.macports.org/install.php mac(Leopard)のファイルをダウンロード&インストールします。 (4)MacPortsをUpdateする http://www.macports.org/ ここからターミナルを立ち上げます。 sudo port -d selfupdate sudo port sync ※本来であればmysql5をインストールするのですが、 インストールをするとエラーになったので、後でにします。 (5)RubyをMacPortsでインストール sudo port install ruby (6)Ruby GemsをMacPortsでインストール sudo port install rb-rubygems (7)MacPortsからRailsをインストール sudo port install rb-rails ※現時点では、上記通りだとrailsが2.2.2になるようです。 ※gemでインストールする場合は下記の通り。でもエラーになったので注意が必要 sudo gem install rails (8)再度アップデート sudo port -d selfupdate sudo port sync sudo port -d selfupdate ... MacPorts本体とカタログを更新します sudo port upgrade installed ... MacPortsでインストールされているパッケージを全て最新版にします sudo gem update --system ... RubyGems本体を更新します sudo gem update ... RubyGemsでインストールされているRuby関連パッケージを全て最新版にします
ターミナルを再起動して確認
Macbook13:~ mono$ ruby -v ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9] Macbook13:~ mono$ rails -v Rails 2.3.3 Macbook13:~ mono$ gem -v 1.3.5
Mysqlのインストール
------------ (9)portでMySQLとMySQLデーモンをインストール sudo port install mysql5 sudo port install mysql5-server (6)my.cnf(設定ファイル)を作成 sudo cp /opt/local/share/mysql5/mysql/my-small.cnf /etc/my.cnf (7)my.cnfの設定(編集はvimなりemacsでも使って下さい) ・ソケットの場所変更 socket = /opt/local/var/run/mysql5/mysqld.sock となっている所全てを socket = /tmp/mysql.sock に変更する。 ・文字コードを設定 [mysqld] の下に default-character-set=utf8 skip-character-set-client-handshake を追記する (8)MySQLの初期化 sudo -u mysql mysql_install_db5 (9)MySQL自動起動の設定 sudo launchctl load -w /Library/LaunchDaemons/org.macports.mysql5.plist (13)port でrubyのMySQLアダプタをportから入れる sudo port install rb-mysql (14)Terminalの設定を変更(デフォルトシェルがbashの場合) ~/.profileに以下の一文を追加 alias mysql="mysql5" (15)おもむろに再起動 方法はおまかせ(sudo shutdown -r now ・ sudo reboot ・ りんごマーク>再起動) (16)MySQL接続の確認 mysql -u root で接続できたら無事完了。後はrailsで適当なプロジェクトを作って実行して下さい。(mysql用dbオプションを忘れずに!)
restful_authenticationの設定
参考サイト
http://terrazilog.quipu.jp/?eid=585865
acts_as_state_machine のインストール
ruby script/plugin install http://elitists.textdriven.com/svn/plugins/acts_as_state_machine/trunk/
restful_authentication のインストール
ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/restful_authentication/
セッション管理を利用するモデル(ここでは user)と
セッション管理用コントローラ(ここでは sessions)を生成
既存のモデルを上書きする場合、マイグレーションファイルだけは
上書きされないので、事前に削除しておくこと。
ruby script/generate authenticated user sessions --include-activation --stateful
-
- include-activation
メールによる認証登録を行なう
-
- stateful
acts_as_state_machine を利用したステート管理を行なう
config/routes.rb追加
map.activate '/activate/:activation_code', :controller => 'users', :action => 'activate' # map.signup '/signup', :controller => 'users', :action => 'new' map.login '/login', :controller => 'sessions', :action => 'new' map.logout '/logout', :controller => 'sessions', :action => 'destroy' map.resources :users, :member => { :suspend => :put, :unsuspend => :put, :purge => :delete }
ActionMailの設定
config/environment.rb
config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :address => 'your.smtp.domain', :port => 25, # or 587 SMTP 設定に依存 :domain => 'localdomain', # 分かるなら FQDN を設定 :authentication => :login, # SMTP 認証設定に依存 :user_name => 'username', # 認証がないなら削除 :password => 'password' # 認証がないなら削除 }
config/environment.rb
Rails::Initializer.run do |config| config.active_record.observers = :user_observer
development環境下でメール送信に失敗したことが分かるように設定
config/environments/development.rb
config.action_mailer.raise_delivery_errors = true
app/models/user_mailer.rb
def signup_notification(user) setup_email(user) @subject += 'Please activate your new account' @body[:url] = "http://localhost:3000/activate/#{user.activation_code}" # テストサーバのURLにあわせて end
def setup_email(user) @recipients = "#{user.email}" @from = "ADMINEMAIL" # <- ここ @subject = "[YOURSITE] " @sent_on = Time.now @body[:user] = user end
プロジェクトスタートアップのTODO
1)DB作成
2)モデル作成
3)/db/migrate/001_create_members.rb
4)migrate
5)controller作成
振り出し
2週間空いてしまった為、忘れてしまいました。。。
1日たりともあいては、駄目ですね。