試験が終了したrailsアプリ(myapp)を、本番環境のpassengerで稼働させる簡単なお仕事をしていました。
Installing Passenger + Apache on Ubuntu 14.04 LTS (with APT) on a Linux/Unix production server (part 2) - deployment walkthrough with Ruby, Passenger, Apache, Ubuntu 14.04 LTS (with APT) and Linux/Unix - Passenger Library
とかを見て、途中何個かポカをしつつも構築を進めていたのですが……
イザ、railsをやる段階で完全に詰まり、6時間ほどを浪費しました。
具体的には、passangerが動いている事を検証するために公開ディレクトリ(/var/www/myapp/public)においた
<body> passenger_page </body>
が何故か延々と表示され続けていたのです。
事前に、以下の手順でrailsの環境ごと丸々移植していたので、
本来ならURLにアクセスした時点でトップページが表示されるはずです。
$ sudo mkdir -p /var/www/myapp $ sudo chown myappuser: /var/www/myapp $ sudo -u myappuser -H bash -l $ cp -r #{RAILS_MYAPP} /var/www
……まぁ、タネがわかれば何のことはなく。
今回のターゲットアプリは、トップに飛んだ場合リダイレクトでとあるコントローラーに飛ばす仕様でした。
そんな仕様なので、当然のように/index.htmlなんてファイルはありません。
にも関わらずm
というわけで、処理順が「元からある静的ファイル => Railsのルート解決」という動作をしたのが原因でした。
$ cat /var/www/myapp/public/index.html <body> passenger_page </body>
もうpassangerがどうのこうのというレベルですらありません。
まさに、この記事そのまんまの事態でした。
qiita.com