忍者ブログ

エンジニア初心者の備忘録

エンジニア初心者が躓いたことハマったことを公開します!

複数サイト運用のためのバーチャルホスト設定

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

複数サイト運用のためのバーチャルホスト設定

今回は、1つのサーバーで複数のドメイン名を利用できるようにし、複数のサイトを運用できるようにする方法を書き留めておきます!

これは、自分のパソコンのLAMP環境で色々試したいとき、勉強したいときにドメイン名が一つだと不便だなと思ったところから、色々調べた内容です、

方法は、色々あるようですが、プログラム超初心者のための方法である、バーチャルホストの設定による方法を採用しました。

まず、バーチャルホストとは何か?

バーチャルホストとは、1台のサーバーで複数のドメインのWebサイトを運営することを可能にする、apache(httpd)の機能のことである。
この機能を利用することで、ドメイン毎にサーバーやIPアドレスを用意する手間・コストが省ける。
『 Apacheでのバーチャルホストの設定』


以下、手順となります。

●Apache(httpd)の設定ファイルを開く
 vim /etc/httpd/conf/httpd.conf

●Apacheが外部からリクエストを受け付けるポート番号を指定するListenディレクティブを検索
 /Listen


Listen 80」が検索結果として見つかるはずです。
通常、リクエストを受け付けるポート番号は初期設定として80番が指定されています。
ですが、Apacheが受け付けることができるポートの数は複数設定可能ですので、下記の書式で複数設定します。

Listen [IPアドレス:]ポート番号 [プロトコル]

例えば、下記のように他のポート番号と重複がなければ適当で、、

Listen 80
Listen 8080
Liseten 1287

バーチャルホストディレクティブを追加
 <VirtualHost [IPアドレス:]ポート番号>
 ServerName ホスト名
 DocumentRoot コンテンツディレクトリ
 ServerAdmin 管理者メールアドレス(省略するとデフォルト値)
 ErrorLog エラーログファイル名(省略するとデフォルト値)
 TransferLog アクセスログファイル名(省略するとデフォルト値)
 </VirtualHost>



上記がバーチャルホストディレクティブの基本構造となります。
このブロックをListenしたポートの数ごとに記述していきます。
最低でもDocumentRootディレクティブの記述は必須のようです(当たり前?参照するディレクトリが分かりませんもんね、、)。

ちなみに、私は、とりあえず、3つのサイトを下記のように設定しました。

サイト1:Wired Zend Frameworkの練習サイト
Listen 80
<VirtualHost *:80>
     DocumentRoot /var/www/wzfsample/public
     SetEnv APPLICATION_ENV "development"
     <Directory /var/www/wzfsample/public>
         DirectoryIndex index.php
         AllowOverride All
         Order allow,deny
         Allow from all
         Options FollowSymLinks
     </Directory>
 </VirtualHost>

サイト2:Laravelの練習サイト
Listen 81
<VirtualHost *:81>
     DocumentRoot /var/www/laravel/public
     SetEnv APPLICATION_ENV "development"
     <Directory /var/www/laravel/public>
         DirectoryIndex index.php
         AllowOverride All
         Order allow,deny
         Allow from all
         Options FollowSymLinks
     </Directory>
 </VirtualHost>

サイト3:素のPHPの練習サイト
Listen 82
<VirtualHost *:82>
     DocumentRoot /var/www/test
     Options Indexes FollowSymLinks
 </VirtualHost>

ちなみに、下記が上記3サイトの設定の留意点です。

*サイトのディレクトリは、「/var/www/」以下に集約する。
 一箇所にまとめておいた方が、見通しが良いだろうと思います。
*シムリンクを使用したいので、全てのサイトに「Options Indexes FollowSymLinks」を追加(参照:『Sambaにおけるリンクの効用~プログラム超初心者のためのLinuxコマンド~』)。
*サイト1と2はフレームワークを使用しているので、設定を追加しています。

Apache(httpd)の設定ファイルを保存して閉じる
 Esc」 → 「:wq」 → 「Enter」

Apache(httpd)の再起動
 service httpd restart

以上で設定は終了です。

この設定で、それぞれのサイトを下記のURLで表示します。

サイト1:Wired Zend Frameworkの練習サイト
http://192.168.56.101/

サイト2:Laravelの練習サイト
http://192.168.56.101:81/

サイト3:素のPHPの練習サイト
http://192.168.56.101:82/

つまり、初期設定のポート番号80番を持つサイトは「http://IPアドレス/」で、80番以外のポート番号のサイトは「http://IPアドレス:ポート番号/」で表示させることができます。


以上です!


【参考サイト】
『 Apacheでのバーチャルホストの設定』
『バーチャルホストによる複数サイトの同時運用』
『サーバ名とポート番号(ServerName, Listen)』
『CentOSリンク集 TOP > 未分類 > バーチャルホスト』

PR

コメント

プロフィール

HN:
プラムザ 太郎
性別:
非公開

P R