さくらVPSで今までのIPアドレスに加え独自ドメインも使うぞっと

さくらVPSを使い始め、ようやっと独自ドメインを使う機会に恵まれました。今までは裏方の仕事をさせてたのでIPアドレスで使えればOKでしたが、一般公開となるとドメインは必須。でも今まで通りIPアドレスでも使いたいよって感じの記事です。

ググってみると複数の独自ドメインを使う設定はあるんだけど、なかなか解決に至るページが見当たらなかったので一応記録に。ちなみにドメインはムームードメインで管理してますが、DNSの解説はWEBに沢山あるので省きます。

httpd.confでVirtualHostの設定をする

httpd.confを編集します。バーチャルホスト機能を使うので、

#NameVirtualHost *:80

のコメントを外します。*:80 の * にVPSのIPアドレスを指定してもOKですが、* の全てのIPにマッチでOKです。VPSで複数のIPアドレスを使う程の玄人ならば、この記事を見る必要はないでしょう。

次に個々のドメインのVirtualHostを設定します。新しく追加したい独自ドメインをこのように設定します。

<VirtualHost *:80>
    ServerAdmin info@example.com #管理者のメアド
    DocumentRoot /home/(ユーザー名)/www/example.com #ドキュメントルート
    ServerName example.com #設定するドメイン
    ErrorLog logs/example.com-error_log #ログ名
    CustomLog logs/example.com-access_log common #ログ名
</VirtualHost>

アパッチを再起動してhttpd.confを反映します。

service httpd restart

ブラウザで見るとForbiddenになる

試しにブラウザでアクセスしたところ「Forbidden」と表示されてしまいました。これは、新しく設定したDocumentRootの(ユーザー名)のパーミッションが700で作られていたためで、ユーザーのディレクトリのパーミッションを755に変更することで解決。

IPアドレスでアクセスすると新しく設定した独自ドメインの内容が表示される

次に今まで使っていたようにIPアドレスでアクセスしてみると、何故か新しく設定した独自ドメインのディレクトリ内が参照されます。

これはバーチャルホストを設定すると全てのアクアスはhttpd.conf の VirtualHost 設定を利用するようになるが、今のところ1つしか VirtualHost を設定していないので、全てのアクセスがその設定を利用している為でした。

今まで通りIPアドレスも利用する場合、IPアドレス用のVirtualHostを先ほどの記述より前に追加します。

<VirtualHost *:80>
    ServerAdmin info@example.com
    DocumentRoot /home/(ユーザー名)/www/
    ServerName (VPSのIPアドレス)
    ErrorLog logs/ip-error_log
    CustomLog logs/ip-access_log common
</VirtualHost>

VirtualHost は記述の順にプライオリティが設定され、どのドメインにもマッチしなかったアクセスは先頭のVirtualHost設定が使用されます。

ディレクトリの.htaccessが効かない

最後にアップしたページをテストしていると、ディレクトリ毎に設置できる.htaccessが効きませんでした。mod_rewriteが反映されないので気付きました。この設定は httpd.conf で行えます。

<Directory />
    Options FollowSymLinks
    AllowOverride None → Allに
</Directory>

上記の変更後、アパッチ再起動でスグに使えるようになりました。

参考

さくらのVPS -初期設定からLAMP環境導入まで- | 時にはWEBの話っ!

バーチャルホストの例 – Apache HTTP サーバ

 

 

広告