1. awakia

    Posted

    awakia
Changes in title
+RailsにCMS機能を付け加えられる、LocomotiveCMS!
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,189 @@
+
+ちなみにLocomotiveCMSは`rails cms`でググって最初に見つかったもの。
+Railsでアプリを作ってあげて、後は使う人に任せるという運用をしたくて探していた。
+WordPressでもいいけど、PHPよりRubyがいいなぁみたいな時は選択肢の一つになると思う。
+
+LocomotiveCMSにはLocomotiveCMS Engineというものの他に、簡単にブログが作れるLocomotive Wagonというコマンドラインツールがついているけれど、こちらはRailsとして動くわけではないので注意。
+
+参考サイトとしては、以下の2つがとても役立った。
+
+- LocomotiveCMS本家
+ - http://www.locomotivecms.com/
+ - http://doc.locomotivecms.com/guides/get-started/install-engine
+- 管理ページを日本語化してくれた神のブログ
+ - http://xxxcaqui.hatenablog.com/entries/2013/04/12
+
+ローカルの環境構築Mac、サーバーはHerokuを想定。
+
+## 事前準備:MongoDBの設定
+
+まずはインストール。
+
+```bash
+$ brew install mongodb
+```
+
+次に起動設定。
+
+```bash
+$ mkdir -p ~/Library/LaunchAgents
+$ cp /usr/local/Cellar/mongodb/2.2.3-x86_64/homebrew.mxcl.mongodb.plist ~/Library/LaunchAgents/
+$ launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
+```
+
+きちんと立ち上がったか確認する。
+
+```bash
+$ ps x | grep mongodb
+ 14968 ?? S 0:00.41 /usr/local/opt/mongodb/mongod run --config /usr/local/etc/mongod.conf
+ 14983 s004 R+ 0:00.00 grep --color=auto mongodb
+```
+
+## 新規Railsプロジェクト作成
+
+- 現状railsは3.2系列で無いと動かない。4.0系列で作られると困る
+- DBはactive_recordじゃなく、mongodbを使う
+- テストはrspecを使いたい。
+
+ので、以下のように作製する。
+
+```bash
+$ rails _3.2.13_ new loco_site --skip-active-record --skip-test-unit --skip-bundle
+```
+
+もしくは、
+
+```bash
+$ rails _3.2.13_ new loco_site -O -T -B
+```
+
+## LocomotiveCMSをローカルで動かす
+
+Gemfileをちょっと書き換える。
+
+- rubyのバージョンを指定。(しないと後々HerokuでWarningが出る。)
+- `locomotive_cms`, `unicorn`, `rspec-rails`を追加。
+- locomotive_cmsに従ってassets groupに`compass-rails`を追加。
+ - 本当は`pry`とか`better-errors`とかも追加するけどまぁいいや。
+
+コメントを取った後のGemfileは以下のようになる。
+
+```Gemfile
+source 'https://rubygems.org'
+ruby '2.0.0'
+
+gem 'rails', '3.2.13'
+
+gem 'locomotive_cms', require: 'locomotive/engine'
+gem 'thin'
+gem 'rspec-rails'
+
+group :assets do
+ gem 'compass-rails', '~> 1.0.2'
+ gem 'sass-rails', '~> 3.2.4'
+ gem 'coffee-rails', '~> 3.2.2'
+ gem 'uglifier', '~> 1.2.4'
+end
+
+gem 'jquery-rails'
+```
+
+書き換えたら、
+
+```bash
+$ bundle install
+```
+
+Rspecの設定と
+
+```bash
+$ rails g rspec:install
+ create .rspec
+ create spec
+ create spec/spec_helper.rb
+```
+
+LocomotiveCMSの設定もgenerate。
+
+```bash
+$ rails g locomotive:install
+ create config/initializers/locomotive.rb
+ create config/initializers/carrierwave.rb
+ create config/initializers/dragonfly.rb
+ create config/mongoid.yml
+ route
+ mount Locomotive::Engine => '/locomotive', as: 'locomotive' # you can change the value of the path, by default set to "/locomotive"
+
+ remove public/index.html
+===============================================================================
+
+The Locomotive Engine has been correctly installed in your Rails application.
+
+ 1. Edit the main config files:
+
+ - config/initializers/locomotive.rb
+ - config/initializers/carrierwave.rb
+ - config/initializers/dragonfly.rb
+ - config/mongoid.yml
+ - config/devise.yml
+ - config/routes.rb
+
+ 2. Launch the server
+
+ > bundle exec unicorn_rails
+
+ 3. Open your browser
+
+ > open localhost:8080
+
+ 4. Follow the installation wizard steps
+
+ 5. Enjoy !
+
+===============================================================================
+```
+
+とりあえず何の設定もいじる必要ないだろと起動してみると、
+
+```bash
+$ bundle exec unicorn_rails
+I, [2013-07-07T14:49:13.214872 #62661] INFO -- : listening on addr=0.0.0.0:8080 fd=9
+I, [2013-07-07T14:49:13.215010 #62661] INFO -- : worker=0 spawning...
+I, [2013-07-07T14:49:13.216376 #62661] INFO -- : master process ready
+I, [2013-07-07T14:49:13.217791 #62681] INFO -- : worker=0 spawned pid=62681
+I, [2013-07-07T14:49:13.218408 #62681] INFO -- : Refreshing Gem list
+There is a configuration error with the current mongoid.yml.
+
+Problem:
+ No sessions configuration provided.
+Summary:
+ Mongoid's configuration requires that you provide details about each session that can be connected to, and requires in the sessions config at least 1 default session to exist.
+Resolution:
+ Double check your mongoid.yml to make sure that you have a top-level sessions key with at least 1 default session configuration for it. You can regenerate a new mongoid.yml for assistance via `rails g mongoid:config`.
+
+ Example:
+   development:
+     sessions:
+       default:
+         database: mongoid_dev
+         hosts:
+           - localhost:27017
+```
+
+と言ったエラーが出る。全くEnjoy出来ない。mongoid.ymlの設定の仕方が昔と変わったみたい。
+
+とりあえずエラーが親切なので、
+
+```bash
+rails g mongoid:config
+```
+
+とやって`config/mongoid.yml`を上書きしてやれば問題は解消。
+
+```
+open localhost:8080
+```
+
+とやってブラウザで`localhost:8080`を見ればウィザード画面が出ているはず!
+
+おしまい!!