概要
つい先日、仕事でとある機能の修正をした後の動作確認で、クロスドメイン(サブドメインと独自ドメイン)間でブラウザ上のローカルストレージに保持される値が共有されるかをテストしなければならない機会があり、その際にやったことの自分用メモです。
ローカルストレージの解説
refs: https://help.amebaownd.com/posts/616547
前提
- Unicorn(アプリケーションサーバー)のgemがすでにGemfileに記載されていること
- Railsアプリの同一ディレクトリで実行
手順
まず普通に起動。 RailsはデフォルトではWEBrickというアプリケーションサーバーでサーバーを起動します。
$ bundle exec rails s
次にデフォルトのポート3000以外のポートで別のプロセスで起動します。
ここでUnicornで起動します。(-pでウェルノウンポートを指定する場合はroot権限じゃないといけない模様)
$ sudo bundle exec unicorn -p 80
コレで出来ること
- WEBrickの方で
hoge.hatena.com:3000
のようなサブドメイン - Unicornの方で
hoge.com
のような独自ドメイン
→両方起動して独自ドメインとサブドメイン間の値のやりとりを検証出来る
注意点
- Unicornサーバーをroot権限で立ち上げてるとたまにアセットのキャッシュがroot権限で作られてしまうため、localhost:3000のWEBrickのほうでPermission Denied で怒られるので、その際は
sudo chown -R username:groupname tmp/cache/*
としてあげないといけないです...(なお、username:groupname
が分からない方はターミナルを開いて、ホームディレクトリでls -al
とかやって確認ください) - sudoで起動しているプロセスをkillする際は
sudo kill -9 プロセスID
じゃないと止まらないので注意