ページ

2012年5月22日火曜日

Padrinoでこんにちはしてみた

http://jp.padrinorb.com/

インストール
% gem install padrino

プロジェクトの生成
% padrino g project padrino-test

gはgenerateのg。genとかgenerateでも良い。

projectのところに生成するものを指定。
生成できるのは project, app, mailer, controller, model, migration, plugin, admin, admin_page。

padrino-testはプロジェクト名。適当。

デフォルトだとこんなんが生成される。
.
├── Gemfile
├── app
│   ├── app.rb
│   ├── controllers
│   ├── helpers
│   └── views
│   └── layouts
├── config
│   ├── apps.rb
│   └── boot.rb
├── config.ru
├── public
│   ├── favicon.ico
│   ├── images
│   ├── javascripts
│   └── stylesheets
└── tmp

ちなみに --tiny オプションをつけて生成するとcontroller、helper、mailerフォルダーがrbファイルと化す。
.
├── Gemfile
├── app
│   ├── app.rb
│   ├── controllers.rb
│   ├── helpers.rb
│   └── mailers.rb
├── config
│   ├── apps.rb
│   └── boot.rb
├── config.ru
├── public
│   ├── favicon.ico
│   ├── images
│   ├── javascripts
│   └── stylesheets
└── tmp

生成のときにはコンポーネントを色々選べる。僕の趣味で選ぶとこんな感じかしら。
% padrino g project padrino-slim -d mongoid -t rspec -s jquery -e slim -c sass -m mocha -b
-b つけるとbundle installまでやってくれる(自分でやらなくても、最初にアプリケーション起動するときに勝手にbundle installしてくれるらしい。最初って初回って意味だろうか)。

もっと適当な感じのときは
% padrino g project feeling --tiny -e slim -c sass -b
とかか。Slimは外せない。


jqueryとprototype.js両方使いたいときとかあるんじゃないか?と思って
% padrino g project -s prototype -s jquery
とかやってみたら後に指定したほうになるみたいだった。cucumberとrspec両方使う人とかいると思うけどね?
(と思ってこっちもやってみたら、cucumber指定したらデフォでrspecの分も生成されてる?)

ともあれ、生成したら動かしてみる。
ルートディレクトリに入って
% padrino s

http://0.0.0.0:3000 で動き出す。
ログもカラフルに吐き出される。

http://0.0.0.0:3000 にアクセスしてみると404の画面になる。

app/app.rbを編集
get '/' do
  "something"
end
とか適当に書く。

shotgunとか使わなくても自動リロードされてるようだ。

なぜかここまで書くのに3日ぐらいを費やしてしまったので(padrino自体をいじったのは10分ぐらいなのに)、とりあえず一区切り。

2012年5月9日水曜日

Ubuntu + Passenger + Nginx インストール

Rubyはrvmで入れた1.9.3。
% gem install passenger
% rvmsudo passenger-install-nginx-module

そしたら
Curl development headers with SSL support... not found
って出た。

足りないのはこれだけだったので、指示に従ってインストール
% sudo aptitude install libcurl4-openssl-dev
そして改めて
% rvmsudo passenger-install-nginx-module

途中、選択肢が出るので選択する。人生は選択の連続。

インストール先も設定できるが 、何のこだわりもないのでデフォルトの /opt/nginx 。
設定ファイルの場所は /opt/nginx/conf/nginx.conf になる。

編集する。
pid /var/run/nginx.pid;

server {
listen 8080;
server_name hogehoge.jp;

# publicを指定するらしい
root /var/www/hogeapp/public;

passenger_enabled on;
}


Nginx-init-ubuntuの起動スクリプトを/etc/init.d/nginxにコピペ&ちょっと編集。
DAEMON=/opt/nginx/sbin/nginx
NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
にする。

% sudo chmod a+x /etc/init.d/nginx
% sudo update-rc.d -f nginx defaults

参考:
Rails 3 on Ubuntu 10.10 with RVM, Passenger and Nginx « theKindOfMe
Ubuntu 10.04 TLS に nginx + passenger + sinatra を入れたメモ(1) - Moderation is a fatal thing. Nothing succeeds like excess.
Ubuntuに、passenger-install-nginx-moduleした « blog.udzura.jp