プログラミングは芸術だ!

web系エンジニアの備忘録 「プログラミングは芸術」を座右の銘として日々勉強中 最近Androidもやってます

UbuntuでVirtualHost設定【Apache】

以下の環境で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

ブラウザからチェック!

f:id:gamu1012:20150131230546p:plain



動かない・・・

まあ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をリロード

無事表示できました!

f:id:gamu1012:20150131231005p:plain


うーん・・・
前に作業したときは、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>

ちゃんと設定されてました。反省。

まとめ

困ったときは親の設定やログを見ることはすごく大事なこと