さくらのVPS サーバで複数のドメイン(Virtualhost / マルチドメイン)を運用する方法

さくらのVPS サーバに WordPress を移転して一番感動したのは、サクサク動く管理画面です。表示スピードも上がり大変快適になりました。せっかくなので、他のドメイン・サーバーで運用しているサイトもこのサーバーに引っ越したいという欲が出てきました…。

さくらのVPS ではマルチドメイン(Virtualhost)で運用することも可能です。エラーを出しながらもなんとか、複数のドメイン設定ができたのでその手順のメモです。

1. さくらのネームサーバー設定をする

さくらのVPS 管理画面から「ネームサーバー登録」をクリック

さくらのVPS 管理画面から「ネームサーバー登録」をクリックして「ネームサーバの利用申請」画面へ移行します。

新しいネームサーバの登録

画面一番下に「新しいネームサーバの登録」という項目があるので、ここからドメインを追加します。次に「ゾーン編集」のボタンをクリックし、「さくらインターネットのネームサーバーに設定する」の項目の箇所へ、IPアドレスを入力し送信します。

ドメイン管理会社側でも、さくらのネームサーバー設定を行えば準備完了です。

2. ディレクトリを分ける

さくらのVPS では var/www/html/ がドキュメントルートとなっています。この中でまたディレクトリを分けます。例えば、このブログを「memocarilog」ディレクトリにいれ、もう一つ運用したいサイトを「example」ディレクトリに入れたりします。

ディレクトリを分ける

ターミナルからディレクトリを作成する場合は mkdir コマンドで作成できます。

3. 設定ファイルを作成する

/etc/httpd/conf.d の中に設定ファイルを新規で作成します。サーバーへ SSH で接続し以下のコマンドでファイルの作成をします。

vim /etc/httpd/conf.d/vhost.conf

(ここでは、ファイル名を vhost.conf としていますが、拡張子が .conf ならファイル名は任意のものでよいようです。)

新規ファイル入力画面が表示されると思います。i を押して挿入モードに切り替え、以下のようにファイルに記入します。

# ドメイン1の設定
<VirtualHost *:80>
DocumentRoot /var/www/html/<ディレクトリ名>
ServerName <ドメイン名>
CustomLog logs/<ディレクトリ名>-access.log common
ErrorLog  logs/<ディレクトリ名>-error.log
AddDefaultCharset UTF-8
<Directory "/var/www/html/<ディレクトリ名>/">
    AllowOverride All
</Directory>
</VirtualHost>

# ドメイン2の設定
<VirtualHost *:80>
DocumentRoot /var/www/html/<ディレクトリ名>
ServerName <ドメイン名>
CustomLog logs/<ディレクトリ名>-access.log common
ErrorLog  logs/<ディレクトリ名>-error.log
AddDefaultCharset UTF-8
<Directory "/var/www/html/<ディレクトリ名>/">
    AllowOverride All
</Directory>
</VirtualHost>

設定したいドメインが memocarilog.info と example.com なら以下のようになります。

<VirtualHost *:80>
DocumentRoot /var/www/html/memocarilog
ServerName memocarilog.info
CustomLog logs/memocarilog-access.log common
ErrorLog  logs/memocarilog-error.log
AddDefaultCharset UTF-8
<Directory "/var/www/html/memocarilog/">
    AllowOverride All
</Directory>
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/html/example
ServerName example.com
CustomLog logs/example-access.log common
ErrorLog  logs/example-error.log
AddDefaultCharset UTF-8
<Directory "/var/www/html/example/">
    AllowOverride All
</Directory>
</VirtualHost>

記入したら、esc キーを押し挿入モードを終了してから、:wq を入力し保存して終了します。

4. マルチドメインを許可する設定にする

/etc/httpd/conf の 中にある httpd.conf ファイルを編集し、マルチドメインを許可する設定にします。以下のコマンドでファイルを開きます。

vim /etc/httpd/conf/httpd.conf

このファイルの中から「NameVirtualHost *:80」という行を探します。すべてを目視するのは大変なので、vim の検索機能を使うと簡単です。esc キーを押しノーマルモードにしてから / を押し、NameVirtualHost と記入・エンターキーを押すだけです。該当場所がハイライトされるかと思います。

該当場所がハイライト

「NameVirtualHost *:80」の前に # がついてコメントアウトされているので、i を押し挿入モードにしてから # を削除し、マルチドメインを許可する設定に変更します。# を削除したら、esc キーを押し :wq で保存して終了します。

設定ができたら、httpd を以下のコマンドで再起動します。

service httpd restart

ターミナルへ2つ [ OK ] がでればOKです。それぞれのドメインで、設定したディレクトリの内容が表示されると思います。

私がつまづいたところ

再起動すると、 [warn] NameVirtualHost *:80 has no VirtualHosts とエラーがでる

原因と対処方法

vhost.conf の1つのドメイン設定の中で VirtualHost *:80 の記述を2回していたことが原因でした。いろいろなサイトを参考に、最初は以下のように記述していたのですが、これがよくなかったようです。一番上の記述を削除すればエラーもでなくなりました。

NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/html/〜

こうやって書いてみると大した作業ではないのですが、また割と時間がかかってしまいました…。しかし、トライ&エラーを繰り返すことにより、少しずつターミナルへの苦手意識はうすれてきたような気がします…。

Related Article

1 Comments & Tracbacks

Leave a Comment

Emailは公開されません。*は必須項目です。


*


Categorys

Tags

CSS3 ダッシュボード ヘッダー トラブル コードサンプル コンテンツ スライドショー jQueryプラグイン php 引っ越し 素材 お知らせ JavaScript Facebook CSS カテゴリー 投稿タイプ IE HTML5 Shareボタン seo レスポンシブ Photoshop タクソノミー ナビゲーション カスタムメニュー Git Macアプリ サイドバー WPセキュリティ SVG iTunes PHPリファレンス API WP使い方 query_posts データベース get_posts() 条件分岐 コメント function RSS スマートフォン Sass/Compass さくらVPS