プログラムをWeb公開するワークショップ ワークショップ用資料
はじめに
LokkaというRuby製のCMSをHerokuというPaaS上にアップさせるというもの
Lokkaを動かすための開発環境構築から、LokkaのDL、Herokuのアカウント作成、デプロイまでとする。
※ ワークショップとは行っても仲間内で見せるための資料、使えそうならどっかでワークショップがしたいなぁと思う
目的
- 対象はノンプログラマのIT関係者(Excel SE含む)
- Java,C#とか固い言語で開発している人にWeb系でよく使われるRubyの環境構築を学ぶ
- アプリを作るってのはあるけど、「実際WWW上にアップロードしてアクセスしてみよう」と言うのがなかなか無いので作った
- Rails Girlsが近いけどhttp://railsgirls.com/tokyo 2日間と長いので、開発環境構築+ ありもののプログラムをDL +デプロイという形にした
前提条件
- Mac OSX系 Lion以上推奨
- ターミナルでコマンド操作をします
- Windowsでも開発環境の構築は多分出来きるRubyとGitが動けば良い
- 以降 カッコ書きは()作者であるオレの感想
開発環境を用意しよう
Gccをインストールしよう
Xcodeをインストールする
gcc -v
でGccのバージョンを取得出来れば完成
Rubyをインストール
RVMインストール
RVMhttps://rvm.io/とはRuby自体のバージョン管理ツール。別のバージョンのRubyを複数端末の保持できるし、インストールが楽
(rbenvを使おうと思ったけど、使ったことがないのでRVMで)
ターミナルを開いて以下のRVMインストールコマンドを実行する
$ \curl -L https://get.rvm.io | bash -s stable --ruby
$ source /Users/***/.rvm/scripts/rvm
RVMを使ってRubyインストール
インストールできるRubyのバージョンを確認する
$ rvm list known
インストール可能なRubyリストを見る
# MRI Rubies
…
…
[ruby-]1.9.3-head
リストを見るとCRubyやらJRubyやらがあるので、 MRI Ruby(cRuby)の最新バージョンをインストール
$ rvm install ruby-1.9.3-head
※インストールには5-10分ぐらいかかる
インストールしたRubyをデフォルト設定で使用する
$ rvm use ruby-1.9.3-head --default
バージョンの確認
$ ruby -v
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.2.0]
インストールしたRubyのバージョンが確認出来ればインストール完了
Gitのインストール
HomeBrewのインストール
HomeBrewhttp://mxcl.github.com/homebrew/とは、ソフトウェアのパッケージ管理システム。ここで言うソフトウェアは、主にサーバで使用するソフトウェアを指す MySQLとか、Emacs,Vim,
依存しているソフトとか良い感じでDLしてコンパイルしてパスを通してくれる (MacPortより手軽 usr/local/ の下に作られるので、いちいち管理者のパスワードを聞かれない macport は管理者パスワード聞かれる)
git をインストールするために入れます
HomeBrewのインストールコマンド
$ ruby -e "$(curl -fsSkL raw.github.com/mxcl/homebrew/go)"
インストールできるソフトウェアのリストをアップデート (しょっぱなのインストールの人も必要か?)
$ brew update
git のインストール
git とはソフトウェアのバージョン管理システム。(これしらないソフトウェア開発者はもうモグリでしょ) GitHubなのでも有名。 Herokuにアップする際も、gitを利用します
HomeBrewを使ってgitをインストール
$ brew install git
gitのバージョンを確認する
$ git --version
ローカルでアプリを動かす
LokkaのソースコードをDL
Lokkahttp://lokka.org/の公式サイトから、DownLordボタンを押して GitHubのプロジェクトサイトhttps://github.com/komagata/lokkaにアクセスしましょう
(以下はLokkaチュートリアルとほぼ同じ http://lokka.org/getting-started)
gitからクローンする(難しいことは置いといてDLするってことかな)
$ git clone https://github.com/komagata/lokka
任意の場所でLokkaをDLしたら、Lokkaのディレクトリへ移動する
$ cd lokka
(クローンすると、自分が変更した内容をGitでソースコード管理できるようになる。)
依存ライブラリをインストール
Lokkaで必要な依存ファイル・ライブラリのインストール 依存ファイル・ライブラリのDL BundlerというRubyのプログラムを使います。
補足 RubyがRubyGemsがすでにインストールされている人はRubyGems自体をアップデートしたほうがいいかも
$ gem update --system
Bundlerのインストール
$ gem install bundler
カレントディレクトリがLokkaのディレクトリになっているのを確認してから
依存ファイル・ライブラリのインストール
カレントディレクトリにある Gemfile があるとbundlerがそのファイルに従って依存ライブラリをDLしてくれる
$ cd lokka
xxxxx/lokka
$ bundle install --without=production:postgresql:mysql #MySQLとPostgreSQL用のライブラリは入れない
DBの初期化をする
ローカル環境では、このソフトウェア上のDBMS SQLiteにCMSの内容を書き込む。 テーブルや初期データを自動挿入する (ここは難しいかな おまじない と説明がいいかも)
$ bundle exec rake db:setup
Upgrading Database...
Initializing Database...
SQL: (0.000063) SELECT "id", "title", "description", "theme", "mobile_theme", "per_page", "default_sort", "default_order", "meta_description", "meta_keywords", "created_at", "updated_at" FROM "sites" ORDER BY "id"
SQL: (0.001141) INSERT INTO "sites" ("title", "description", "dashboard",……
ローカルで起動
以下のコマンドを実行するとローカルにサーバが起動する ポートは9292
$ bundle exec rackup
ブラウザをたちあげて http://localhost:9292/へアクセス
終了はターミナルで Ctrl+C でサーバが終了する
PaaSを用意しよう
Heroku のアカウントを取得しましょう
Herokuhttp://www.heroku.com/ とはPaaSで無料でも小規模ならずっと使える
TODO 補足説明が必要
- Herokuトップページから、SignUpボタンを押して、
- メールアドレスを入力し、Sign Upボタンを押す。
- 確認用のメールがHerokuより飛んでくるのでリンクをおしてHerokuのユーザ情報入力ページヘ
- ユーザ情報入力ページで必要事項を入れて、Saveボタンを押す
- Herokuのユーザホーム画面を表示する
TODO heroku toolbelt をインストールしたらGitもCLIツールもインストールできるっぽい
Herokuにアクセスしましょう
CLIツールのインストール
Heroku用にコマンドラインツールをインストールする このツールでHerokuにアップリをアップする
Herokuのtoolbeltをインストールすることで解決する https://toolbelt.herokuapp.com/
($ gem install heroku だと古いらしいHerokuでワーニングが出る.)
Herokuへログイン
$ heroku login
Enter your Heroku credentials.
Email: xxxx@xxxx.com
Password (typing will be hidden):
Could not find an existing public key. #sshkeyの登録をしてくれる
Would you like to generate one? [Yn] y
Generating new SSH public key.
Uploading SSH public key /Users/xxxxxxx/.ssh/id_rsa.pub... done
Authentication successful.
Herokuのプロジェクトとして登録する
$ heroku create lokkaXXXX #好きなアプリ名
Herokuへデプロイ
プログラムを修正してアップする場合もこのコマンドを利用する
$ git push heroku master
PostgreSQLのAdd-Onを使えるようにする
$ heroku addons:add heroku-postgresql
(必須)アプリのページに行って使えるようになったか確認する
$ heroku addons | grep POSTGRES
heroku-postgresql:dev HEROKU_POSTGRESQL_XXXX
$ heroku pg:promote HEROKU_POSTGRESQL_XXXX #これなにをしてるんだろう
$ heroku run rake db:setup #dbのセットアップ
サーバで動かしましょう
$ heroku apps:open