以下の環境でApacheにVirtualHostを設定したときの備忘録
VertialBoxでの仮想環境
Ubuntu 14.04.1 LTS
Server version: Apache/2.4.7 (Ubuntu)
sites-available以下にvhostの設定を書きます
sudo vim /etc/apache2/sites-available/virtual-host.conf <VirtualHost *:80> ServerName hogehoge.com DocumentRoot /home/user/hoge/htdocs ErrorLog /var/log/apache2/hoge.error.log CustomLog /var/log/apache2/hoge.access.log combined LogLevel warn </VirtualHost>
設定を有効にします
sudo a2ensite virtual-host.conf
設定を反映させるために、Apacheを再起動させます
sudo /etc/init.d/apache2 restart
ブラウザからチェック!
動かない・・・
まあforbiddenなので、ファイルのアクセス権限だろうと予想し、以下を実行
chmod -R 755 /home/user/hoge
だが結果はforbiddenのまま。
困ったらググる!
stackoverflowに似たような質問があったので、試してみる
ubuntu - Apache2 virtualhost 403 forbidden? - Stack Overflow
sudo vim /etc/apache2/sites-available/virtual-host.conf <VirtualHost *:80> ServerName hogehoge.com DocumentRoot /home/user/hoge/htdocs ErrorLog /var/log/apache2/hoge.error.log CustomLog /var/log/apache2/hoge.access.log combined <Directory /home/user/hoge/htdocs> Require all granted </Directory> LogLevel warn </VirtualHost>
再度apacheをリロード
無事表示できました!
うーん・・・
前に作業したときは、Directoryに対する権限設定ってなくても問題なかったはずだったんだけどなーと思って、apache2.confをみると
sudo view /etc/apache2/apache2.conf 153 <Directory /> 154 Options FollowSymLinks 155 AllowOverride None 156 Require all denied 157 </Directory> 158 159 <Directory /usr/share> 160 AllowOverride None 161 Require all granted 162 </Directory> 163 164 <Directory /var/www/> 165 Options Indexes FollowSymLinks 166 AllowOverride None 167 Require all granted 168 </Directory>
ちゃんと設定されてました。反省。
まとめ
困ったときは親の設定やログを見ることはすごく大事なこと