Hatena::ブログ(Diary)

考えてる途中

2008年07月03日

Webサイト制作用のテスト環境作り(Ubuntuに導入したApacheでバーチャルホスト)

いよいよテスト環境作りも大詰めです。

ここまで設定できました。

最後は、Ubuntuに導入したApache2でバーチャルホストを設定していきます。

目指す状態

  • 運用しているサイトごとにフォルダを分ける
  • localhostではなく、実際に運用しているドメインor運用予定ドメインでチェックできるようにする

多分、これはUbuntuとか関係なくApache2なら同様の設定になるのだと思います。

端末からコマンドを実行して操作する部分がいくつかあるので、その辺りだけUbuntu(Linux)ならではの話かな。


フォルダの準備

まずは、Webサイト用のファイル入れるフォルダを準備します。

場所はどこでも構いませんが、私はホームの中に「www」フォルダを作って、その中でさらにサイトごとのフォルダを作りました。

実際のパスとしては、「/home/<username>/www/example.jp」みたいな感じですね。


hostsファイルの編集

次にhostsファイルを編集していきます。

実際に運用しているドメイン(例:example.jp)があったとして、そのドメインにブラウザからアクセスしたら、そのドメインで今現在インターネット上に公開されているサイトに繋がります。(当たり前)

それをテスト環境(ローカル)の方に繋ぐための作業です。

逆に、hostsファイルを編集した後はインターネット上に公開されているサイトの方に(ファイルの内容を元に戻さない限り)繋げなくなるので注意。


hostsファイルは、「etc」フォルダ内にあります。

普通にエディタで開いても権限がなくて編集できないので、端末を使って管理者権限で開きます。

$ sudo gedit /etc/host

そうすると、中身に

127.0.0.1	localhost
127.0.1.1	[Ubuntuに付けたPC名]

こんな感じの内容が書かれています。

「127.0.0.1」は自分自身を指す特別なIPアドレスです。今は、このIPアドレスと「localhost」が関連付けられた状態になっているので、ブラウザから「127.0.0.1」または「localhost」を開くことができるようになっています。(前々エントリのApache導入後のチェック参照)

ここに、その他のドメインを追加します。

127.0.0.1	localhost example.jp example.com

こんな感じで、半角スペースで区切ってテストに利用したいドメインなどを追加します。

追加できたら「保存」して閉じます。


Apacheにバーチャルホストの設定を追加

今追加したドメインをローカルで見たとき、最初に用意したフォルダの中身を表示するように設定していきます。

バーチャルホストの設定は、「/etc/apache2/sites-available」フォルダの中に用意します。


上記のフォルダは開いてみるとわかりますが、最初から「default」という名前のファイルが入っています。このファイルを直接編集しても構わないのですが、コピーを取って、コピーしたファイルをひな形にして編集する方が安全なのでそうします。

$ cd /etc/apache2/sites-available  [sites-availableフォルダに移動]
$ sudo cp default examplejp  [defaultをexamplejpの名前でコピー]

site-availableフォルダに移動したのは、その方がファイル名の記述が楽だからであって、

$ sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/examplejp

という記述でも上記の2行と同じ効果になります。

では、コピーしてできた「examplejpファイル」を編集していきましょう。

例によって普通に開いても編集できないので、管理者権限で開きます。

$ sudo gedit /etc/apache2/sites-available/examplejp

開いてみると、

NameVirtualHost *
<VirtualHost *>
	ServerAdmin webmaster@localhost
	
	DocumentRoot /var/www/
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
〜中略〜
</VirtualHost>

こんな感じの内容になっています。

次のように書き換えます。

NameVirtualHost *:80
<VirtualHost *:80>
	★ServerName example.jp
	ServerAdmin webmaster@localhost
	
	★DocumentRoot /home/<username>/www/example.jp/
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	★<Directory /home/<username>/www/example.jp/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>
〜略〜
	★ErrorLog /home/<username>/www/example.jp/error.log
〜略〜
	★CustomLog /home/<username>/www/example.jp/access.log combined
〜略〜
</VirtualHost>

実際には★マークは入力しませんが、変更箇所をわかりやすくするためにつけてみました。

書き換えたら保存して閉じます。

もう少しです。今作ったバーチャルホストの設定ファイルを「有効」状態にします。

端末を起動して以下を実行。

$ cd /etc/apache2/sites-available  [※sites-availableに移動済みなら不要]
$ sudo a2ensite examplejp

実行すると、

Site examplejp installed; run /etc/init.d/apache2 reload to enable.

こんな表示が出るはずなので、続けて

$ sudo /etc/init.d/apache2 reload  [Apacheを再読込]
$ sudo /etc/init.d/apache2 restart  [Apacheを再起動]

を実行します。


動作確認

これで設定作業は終了です。

最初に用意したフォルダの中に適当な index.html を準備して、Ubuntuのブラウザから「http://example.jp/」にアクセスしてみてください。


ちゃんと表示されました!

同じ要領で、バーチャルホストの設定ファイルをコピーして書き換えて有効にしてApache再読込・再起動をすれば、サイトごとにテスト環境を管理できます。

仮想環境だとWindows側のhostsファイルはいじらないので、Windowsでは実サイトをいつでも確認しつつ、Ubuntuではテストに専念できて良いですね。


多分、バーチャルホストの設定はファイルをたくさんコピーしなくてもできるはず…。

共通ファイルみたいなのを作って設定項目はまとめられるはず…。

なのですが、ちゃんと調べてないです。

以上。お疲れさまでした。

とろとろ 2009/01/21 15:42 いろいろ参考にさせていただいています。
ページ内の誤植をご連絡いたします。


sudo gedit /etc/host

sudo gedit /etc/hosts

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証