ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

さくらのネームサーバを利用する@さくらVPS

さくらVPSのネームサーバを利用して独自ドメインを割り当てます。

それから、サブドメイン(ホスト)の追加やURLの正規化も行います。

*OSは初期インストール済のCentOSではなくUbuntu。

さくらのVPS(512)では5ゾーンまで無料でネームサーバを利用することができます。
http://sakura.cb-faq.com/faq/public/app/servlet/qadoc?QID=001413

お試し利用期間中はこれは利用できません。 (本契約になってからでないと使えない)

これを利用して、さくらのVPSに他社で取得したドメインを割り当てます。

やり方はとくに特殊な設定が必要なければ「簡単設定」で大丈夫だと思います。
http://support.sakura.ad.jp/manual/ds/domain/ns.html

なかなか浸透しなかったけど、一晩たったら向くようになってました。

つづいて、ホスト(サブドメイン)を追加して、任意のディレクトリに割り当ててみます。

VPSを契約しているさくらの会員メニューから
https://secure.sakura.ad.jp/menu/top/

グローバルメニューの「契約情報」から 「.comドメインメニュー」をクリック。

f:id:showjinx:20160527114557j:plain

遷移先ページの左側のメニューから「ネームサーバメニューへ」をクリック。

現在さくらのネームサーバで利用しているゾーン(ドメイン)の一覧が表示されます。

この一覧の中に先ほどVPSに追加した独自ドメインも入っています。

ちなみに、VSPサービスの他に、例えばスタンダードプランを利用していると、そっちで利用している(設定している)ドメインもこの一覧に表示されます。

f:id:showjinx:20160527114647p:plain

ホスト(サブドメイン)を追加したいドメインの行にある「ゾーン設定」をクリック。

すると「エントリの追加と変更」という項目が表示されます。

f:id:showjinx:20160527114739p:plain

エントリというのがホストだと解釈してよさそうです。

上記では、すでにw3というエントリ(ホスト=サブドメイン)が追加された状態。(それ以外は「簡単設定」したそのままの状態)

エントリを追加するには、エントリ名のところに追加したいエントリ名を入力。種別はそのままで、値にはさくらのVPSで割り当てられているIPアドレスを入力。DNSチェックは「する」のまま、TTLの指定はチェックせずに「新規登録」をクリック。

このままではまだ設定は反映されないので、最後に左カラムにある「データ送信」をクリック。これで設定が反映されて、エントリが追加されます。

このままだとルートディレクトリ(/var/www)にルートドメインと、追加したエントリ(サブドメイン)両方が重複して割り当てられている状態なので、追加したエントリを運用するためのディレクトリを/var/www配下に用意します。(例として、w3.mysite.infoというディレクトリを作成)

用意したこのディレクトリに追加したホスト(エントリ)が向くようにApacheでVirtualHostの設定をします。

以下のコマンドでVimを起動し設定ファイルを編集します。

$ sudo vim /etc/apache2/sites-available

既存のdefaultを開いて、:w 追加したホスト名.ドメイン名として別名保存。(w3.mysite.info)

以下は「w3」をホストとして追加して、これを/var/www/w3.mysite.infoに割り当てた例。

<virtualHost *:80>
    ServerAdmin 管理者のメールアドレス
    ServerName w3.mysite.info
    DocumentRoot /var/www/w3.mysite.info
    DirectoryIndex index.php index.html

    <directory "/var/www/w3.mysite.info">
        AllowOverride All
        Allow from All
    </directory>
</virtualHost>

こうして設定ファイルを作成したら、この設定を有効化するためにコマンドを実行します。

$ sudo a2ensite w3.mysite.info

Apacheも再起動します。

$ sudo /etc/init.d/apache2 reload

続いて/etc/hostsファイルにもこのドメインを追加します。

127.0.0.1   localhost
VPSで割り当てられているIPアドレス   wwwXXX.sakura.ne.jp  wwwXXX sakura.ne.jp ←この行は申込時にデフォで割り当てられているもの
VPSで割り当てられているIPアドレス   w3.mysite.info w3 mysite.info ←この行を追加した

これで追加したドメイン「w3.mysite.info」でブラウザアクセスすると、それ用のディレクトリ/var/www/w3.mysite.infoにアクセスするようになりました。

つづいて、ルートディレクトリに独自ドメインでしかアクセスできないようにリダイレクト処理をします。

現状ではVPS申込時に割り当てられたwwwXXX.sakura.ne.jpと、あとから割り当てた独自ドメインどちらでもアクセス可能。sakura.ne.jpのほうでアクセスしたら独自ドメインのほうにリダイレクトされるように、/var/www直下の.htaccessに以下を記述します。

/var/www/.htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} wwwXXX?.sakura?.ne?.jp [NC]
RewriteRule .* http://mysite.info%{REQUEST_URI} [L,R=301]

これでデフォルトのURLを独自ドメインでのURLに統一できました。

つづいて、追加したホスト(サブドメイン)でのアクセスと、このホスト用のディレクトリを指定したURLどちらでもアクセスできるのを、前者(サブドメイン)でのものに統一します。

現状は

w3.mysite.info/
mysite.info/w3.mysite.info/

どちらでも同じ領域にアクセス出来てます。

.htaccessに以下を追記します。 (RewriteEngine onがすでに宣言されていること)

Redirect /w3.mysite.info/ "http://w3.mysite.info/"

これで、mysite.info/w3.mysite.infoへのアクセスはw3.mysite.infoにリダイレクトされます。

あと、wwwのありなしを「なし」で統一するために、同.htaccessに以下も追記します。

RewriteCond %{HTTP_HOST} www?.mysite?.info [NC]
RewriteRule .* http://mysite.info%{REQUEST_URI} [L,R=301]

以上です。