さくらのVPS サーバで複数のドメイン(Virtualhost / マルチドメイン)を運用する方法
さくらのVPS サーバに WordPress を移転して一番感動したのは、サクサク動く管理画面です。表示スピードも上がり大変快適になりました。せっかくなので、他のドメイン・サーバーで運用しているサイトもこのサーバーに引っ越したいという欲が出てきました…。
さくらのVPS ではマルチドメイン(Virtualhost)で運用することも可能です。エラーを出しながらもなんとか、複数のドメイン設定ができたのでその手順のメモです。
1. さくらのネームサーバー設定をする
さくらの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/〜
こうやって書いてみると大した作業ではないのですが、また割と時間がかかってしまいました…。しかし、トライ&エラーを繰り返すことにより、少しずつターミナルへの苦手意識はうすれてきたような気がします…。
1 Comments & Tracbacks