読者です 読者をやめる 読者になる 読者になる

すがブロ

sugamasaoのhatenablogだよ

sugamasao.com をリニューアルしたよ

sinatra ruby

ずーっと気になっていたけど、放置しっぱなしであった

.com ドメインをとるタイミングで作り変えようと考えていたのだけど、突発的にサーバが死んだこともあってうやむやになっていたのをついにリニューアルしたよ。

sinatra で作った理由

sinatra が好きだから……というだけでなく

  • HTMLのヘッダとかとしてテンプレート使いたいよ*1
  • はてブのリンクとかのドメイン名とかべた書きなのもヤダよ

という理由です。

新発見

"/" を sinatra アプリで動かすようにするためにはどうするか問題

これは、ある意味もっともポピュラーな問題だと思うのですが、ぼくは初めてだったのでちょっとドキドキした。
やってみればなんのことはなくて、documentroot を public にすれば良いだけでした。
今のサーバは nginx で動いているので、以下のような値に

location / {
# /path/to の /to には sinatra を動かす一式のファイルがあると思ってね
root /path/to/public;
}

じゃあ SubURI で動いてる他の sinatra アプリはどうなっちゃうの問題

実はこの問題こそが一番の懸念点だったのですが、やってみたら存外すんなりと解決しました。
こんな感じで、httpd の設定は変更なし。

location / {
# /path/to の /to には sinatra を動かす一式のファイルがあると思ってね
root /path/to/public;
passenger_enabled on;
passenger_base_uri /sinatra_app;
}

で、sinatra アプリの public へリンクさせるシンボリックリンクを上記 /path/to/public においてあげれば良いのでした。

ls -s /path/sinatra_app/public /path/to/public/sinatra_app

これだけで解決!安心した!

TODO

そういや google Analytics 移植すんのわすれてた

*1: :layout のアレ