ウェブ、ショウジン

さくらVPSでのDNSの設定とバーチャルホストの設定(Ubuntu)

2011-11-1
Category
Server

さくらVPSにUbuntuをインストールしてLAMP環境の構築
さくらVPSでのセキュリティ関係の設定(Ubuntu)

これまで、なんとかここまでこれたので、DNSの切り替えやらバーチャルホストによる複数サイト(マルチサイト、サブドメインの追加とか)の運営は自分で出来るのかどうかを最後の締めとして試す。これができそうなら8割方VPSサーバへの移行を決める。

2011/12/04追記:
本契約をして、無料で利用できるさくらのネームサーバーでの設定の仕方を追加。
さくらVPSでさくらのネームサーバを利用する(サブドメインの追加も)
追記ここまで。

ムームーDNSによるネームサーバーの変更

さくらVPSでも無料のネームサーバー利用ができるようだけれども、これは本契約してからでないと使えない模様。

http://sakura.cb-faq.com/faq/public/app/servlet/qadoc?QID=001413
(512のプランでも5ゾーンまで無料で利用できるらしい)

でも、ここが自分で出来るのかを試すところまで、この無料お試し期間で済ませないといけないので困っていたら、これまた無料のネームサーバーを提供しているムームーDNSがあると知る。(設定についてはちょっと分かりにくいけど、カスタム設定を使うことで別サービスにもドメイン割り当てができるらしい)

幸い主要なドメインはムームードメインで取得していたので、これを利用してVPSのバーチャルホストを設定することにする。

ムームーDNSを利用する場合は、ムームードメインのコントロールパネルにログインして、左側メニューの「ムームーDNS」から「ムームーDNSセットアップ」をクリック。

該当ドメインの「処理」で「利用する」をクリック。まずこれをしないと「ネームサーバ設定変更」で「ムームーDNS」を選択することができない。

つづいて左側の「ドメイン操作」から「ドメイン詳細」をクリック。

ドメインで設定したいドメインを選択して「表示」をクリック。

遷移先ページの下のほうに進んで「ネームサーバ設定変更」で「ネームサーバ設定変更」をクリック。

遷移先ページの上のほうにある「ムームードメインのネームサーバー(ムームーDNS)を使用する」にチェックを入れて、下部の「ネームサーバ設定変更」をクリック。

このままだとまだムームーDNSのセットアップはなされていないので、ページ左側「ドメイン操作」から「ドメイン詳細」に進み、該当ドメインを選択して「表示」をクリック。

「ネームサーバ設定変更」部分が「ムームーDNS」に変わっているので、ここの「セットアップ」をクリック。

設定1の下にある「カスタム設定を利用する」をクリックして、カスタム設定利用中モードにする。

その上で「設定2」のところで

◯サブドメイン(使う場合には入力)
◯種別:A
◯内容:さくらVPSから割り当てられたグローバルIPアドレスを入力

入力が済んだらページ下の「セットアップ情報変更」をクリックして設定を変更。

DNS浸透には長いと数日かかるので、引越し本番では旧サーバ、新サーバ、どっちにも同じものを置いて、気長に待つべし。今回はテストとして、もうすぐで期限が切れて延長利用もしない予定のドメインを使用。
(でも、一晩たったらいけた。さくらVPSの初期割り当てホストも有効のまま=これは/var/wwwに割り当てられている)

これでDNSの設定はできたので、VPSサーバ側でバーチャルホストの設定に進む。

VPS(Ubuntu)でバーチャルホストの設定

その、もうすぐ期限が切れてしまうドメインで以下を試す。(ドメインはapieceoflife.in)

ディレクトリ名、設定ファイル名はドメインに合わせたらわかりやすいので、そうする。

/var/www配下にapieceoflife.inディレクトリを作成。

$ sudo mkdir /var/www/apieceoflife.in

つづいてこのディレクトリのオーナー(所有者)を自分のユーザー名に設定する。(Ubuntuにログインする際のユーザー名)

$ sudo chown ユーザ名:ユーザ名 /var/www/apieceoflife.in

つづいてApacheのバーチャルホストを設定する。

以下のディレクトリに移動してsudo vimで設定ファイルを作成。

$ cd /etc/apache2/sites-available
$ sudo vim apieceoflife.in

◯apieceoflife.inの中身

<virtualHost *:80>
	ServerName apieceoflife.in
	DocumentRoot /var/www/apieceoflife.in
	DirectoryIndex index.php index.html

	<directory "/var/www/apieceoflife.in">
		AllowOverride All
		Allow from All
	</directory>
</virtualHost>

ServerName部分がWebブラウザからアクセスする際のドメイン名。DocumentRootとDirectory部分にドメインapieceoflife.in用ルートディレクトリへのパスを指定している。

設定ファイルを作成したのでこれを有効にするためにa2ensiteコマンドを実行。apieceoflife.inを有効にするので、このファイル名をコマンドに指定する。

$ sudo a2ensite apieceoflife.in
[sudo] password for showjin:
Enabling site apieceoflife.in.
Run '/etc/init.d/apache2 reload' to activate new configuration!

コマンド実行後のメッセージに従って/etc/init.d/apache2 reloadを実行(Apacheを再起動)する。

$ sudo /etc/init.d/apache2 reload

設定したバーチャルホストが不要になった場合はこれもコマンドで無効にできる。(これも実行後にApacheの再起動が必要)

$ sudo a2dissite 無効にするホストの設定ファイル名

Apacheをインストールした直後にデフォルトで有効になっているバーチャルホストの設定(defaultというバーチャルホストが有効になっているらしい)はとくに必要ないらく、削除しておいたほうがよいって記述も見たけど、とりあえずこれはこのままにしておく。これはVPSサービスに申し込んだ際にデフォルトで割り当てられたホスト用設定で、/var/wwwに割り当てられている。

つづいてhostsにドメインを設定する。

/etc/hostsをsudo vimで開いて追加したドメイン「apieceoflife.in」を追加。

$ sudo vim /etc/hosts
127.0.0.1       localhost
VPSのIPアドレス   さくらから初期に与えられたホスト名.sakura.ne.jp さくらから初期に与えられたホスト名 apieceoflife.in

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

これで/var/www配下に用意したapieceoflife.inディレクトリにドメイン「apieceoflife.in」を割り当てることができた。

DNSの浸透があるのですぐには確認できなかったけれども、翌日になったら/var/www/apieceoflife.inに配置したテストページにWebアクセスができて、内容を表示することができていた。一安心。

まだ不安なので、サブドメインも追加して、これもバーチャルホストに加えてVSPサーバに向けてみる。

DNSの設定は前述のムームーDNSで同様の操作を繰り返せばオーケー。(今回はサブドメインの項目にwwwを入力)

ここから先はVPS側のバーチャルホストの設定。

割り当てるディレクトリはapieceoflfe.inと同じなので、設定ファイル/etc/apache2/sites-available/apieceoflife.inをwww.apieceoflife.inとして複製保存。

複製したこのファイルを開いて、ServerNameの部分だけ変更。

<virtualHost *:80>
	ServerName www.apieceoflife.in
	DocumentRoot /var/www/apieceoflife.in
	DirectoryIndex index.php index.html

	<directory "/var/www/apieceoflife.in">
		AllowOverride All
		Allow from All
	</directory>
</virtualHost>

追加したドメインの設定を有効にする。

$ sudo a2ensite www.apieceoflife.in
Enabling site www.apieceoflife.in.
Run '/etc/init.d/apache2 reload' to activate new configuration!

Apacheを再起動。

$ sudo /etc/init.d/apache2 reload
 * Reloading web server config apache2
   ...done.

/etc/hostsにホスト(www)を追加。

$ sudo vim /etc/hosts
127.0.0.1       localhost
VPSのIPアドレス   さくらに初期に与えられたホスト名.sakura.ne.jp さくらに初期に与えられたホスト名 www.apieceoflife.in www

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

ちょっとこの部分は理解が一番甘いところなので(一連の作業の中で)一抹の不安もあるけれど、マルチサイト構築(Apacheバーチャルホスト設定)するには – Ubuntu Japanese Wikiを読むと、IPアドレスのあとは「ホスト名.ドメイン名」 「ホスト名」でワンセット?になっていればよさそうな感じ。サブドメインを追加したらまたこの後に「ホスト名.ドメイン名」「ホスト名」と追加していけばよさそう。(このあと試しにいくつかサブドメインを追加、そう設定していまのところは問題ない感じ)

2011/12/04追記:
VirtualHostの設定(ホストの追加)は、追加するホストごとに一行にしてみた。これでも問題なさそう。
さくらVPSでさくらのネームサーバを利用する(サブドメインの追加も)
追記ここまで。

www.apieceoflife.inにブラウザでアクセスしてみる。

apieceoflife.in用に用意したファイルの内容がwwwつきでも表示される(wwwつき、wwwなし、どちらも同じディレクトリに割り当てられている)ことを確認。

wwwのあり、なしでブラウザアクセスができるようになったので、今度はURLの正規化(wwwのあり、なしを統一)をする。htaccessの301リダイレクトを用いる。

/var/www/apieceoflife.in/.htaccess

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.apieceoflife\.in
RewriteRule (.*) http://apieceoflife.in/$1 [R=301,L]

としたら、Internal Server Error炸裂。

エラーログ(/var/log/apache2/error.log)を確認してみる。

[Tue Nov 01 10:38:05 2011] [alert] [client 124.37.248.58] /var/www/apieceoflife.in/.htaccess: Invalid command ‘RewriteEngine’, perhaps misspelled or defined by a module not included in the server configuration

ミスタイプはなかったので、moduleが有効になっていない模様。

mod_rewriteモジュールを有効にして様子をみる。
続けてApacheの再起動も。

$ sudo a2enmod rewrite
[sudo] password for showjin:
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
showjin@www34394u:/var/log$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2
 ... waiting    ...done.

再度wwwありのURLを叩いてWebアクセスの確認。今度はエラーは出ず、リダイレクトもうまくいった。

これで、ムームーDNSを使ったネームサーバーの変更と、バーチャルホストを使って複数のサイトをひとつのVPSサーバで運営するやり方はわかった。と思う。だいたい。たぶん。

そして、ここでおまけ。

サーバ情報・PHPのバージョン情報を隠匿する

mod_rewriteモジュールでのエラーで気づいたけれど、このままだとサーバ情報(サーバOS、Apache)やphpのバージョン情報が丸見えなので、これを隠すよう設定。

◯サーバ情報を隠す
/etc/apache2/conf.d/security
ServerTokens OSとなっているのをServerTokens Prodに変更。
ServerSignature OnとなっているのをServerSignature Offに変更。

変更したら設定を有効にするためにApacheの再起動。

$ sudo /etc/init.d/apache2 reload
 * Reloading web server config apache2
   ...done.

◯PHPのバージョン情報を隠す
/etc/php5/apache2/php.ini
expose_php = OnとなっているのをOffに変更してApache再起動。

$ sudo /etc/init.d/apache2 reload
 * Reloading web server config apache2
   ...done.

以上。

ということで、この記事も一緒にした以下三つの体験で、とりあえずは自分のような素人でもさくらVPSは使えるかなぁという実感。

さくらVPSでUbuntuをインストールしてLAMP環境を構築するまとめ

1. さくらVPSにUbuntuをインストールしてLAMP環境の構築
2. さくらVPSでのセキュリティ関係の設定(Ubuntu)
3. さくらVPSでのDNSの設定とバーチャルホストの設定

と、PHPのセキュリティも一応添えておく。このへん疎いので。
セキュリティ面に気をつかったphp.iniの設定

これでスタンダードプラン(さくらの共用レンタルサーバプラン)から引っ越すにあたっての懸念はだいたい払拭できたかな。あとはDB用意してWordPressとか諸々セットアップし直して、エクスポート、インポートとかしていけば、、面倒くさいけど。

Categories

Tag Cloud

AdMob Android Apache centos CodeIgniter EC-CUBE facebookアプリ facebookページ feed Firefox Flash google googleanalytics htaccess iPad iPhone JavaScript lamp mobile nginx ogp pear php plugin rollover rss sendmail setting smarty ssh Titanium Mobile Titanium Studio tutorial ubuntu vim VirtualBox vmware vps Windows WordPress xampp youtube さくらインターネット アクセス解析 カスタム投稿