4bitにっき

ぽよ

Apache(2.4)+Passengerでバーチャルホストの設定ができない

世界一情弱な人が書いた記事です。きっと用語が適当なので訂正するべきところがあればお願いします。

問題

最近Webプログラミングを学ぼうとしているのですが、今日(More exactly, it's yesterday.)までずっと環境構築で詰まっていました。



OSはUbuntu(14.04)で、Debian Apache(2.4)+Passengerによるバーチャルホストでrailsアプリを動かそうとしていました。
しかし、どうやってもアクセス時に"You don't have permission to access / on this server."と言われてしまうんですね。
大抵、指定したディレクトリの権限設定のせいでPassengerの実行ユーザーがアクセス出来ないことが原因らしいので設定したのですが、一向に治りませんでした。

解法

色々なサイトを開きまくっていたら(一週間弱)偶然以下のサイトを見つけて解決しました。ありがとうございます。
tail -f pinzo.log: さくらVPSの Ubuntu12.04 を 14.04 にした

どうやら原因は、バーチャルホスト毎のアクセス許可の設定を、Apache2.4よりも以前の設定に習って書いていたことでした。

<Directory /hogehoge/public>
    Order allow,deny
    Allow from all
</Directory>

(全部許可しちゃうよ的な設定)

この設定の仕方が実は2.4では変わっていて、以下のように書かなければいけないのです。

<Directory /hogehoge/public/>
    Require all granted    
</Directory>

このように設定すると、晴れてrailsのデフォルトページが拝めました。
f:id:winjii:20151230021420p:plain
(感動の瞬間)

教訓

敗因は、ググる時にバージョンの情報を気にもしなかったことです。
GUI大好きアナログ人間だったのでアプリなどのバージョンをそんなに重く考えていませんでした。
まずは自分の使っているもののバージョンにあった情報を探すようにします。
とにかくこれでやっとプログラミングができるというわけですね...。