Apacheのバーチャルホストの設定 XAMPPやLAMP

IT関連

備忘録なので内容は適当です。

バーチャルホストとは、1台のマシン、1つのApacheというウェブサーバで、複数のアプリやHPを立ち上げようというもの。

特にXAMPPでテスト環境を作るとき、ホームページの練習もWordPressもLaravelの練習もやりたいといっても、待ち受けがhttp://127.0.0.1だけでは足りない。そういうときにフォルダを分けて運用しようとするときに使う。

 

ディレクトリ構成

まずディレクトリはapacheの直下に「conf」ディレクトリがあり、その直下に「extra」ディレクトリがある。

基本的な設定はご存知のとおり、「conf」ディレクトリにある、「httpd.conf」で行う。

バーチャルホストの設定も「httpd.conf」でも出来るが、「extra」のなかにある「vhosts.conf」で行う。

 

httpd.confの設定

バーチャルホストの設定はextra/vhosts.confで行うが、まずはデフォルトで立ち上がっているものの設定変更や、待ち受けポートの設定はこちらで行う。

ポートの指定

ちなみにウェブなどのHTTP通信は基本ポート番号は80を使うことになっている。デフォルト80は暗黙の了解なので、https://qryheavy.comにアクセスしたのと、https://qryheavy.com:80にアクセスしたのと付けたのと同じことになる。

 

今回はバーチャルホストの話なので、1つのIPアドレスだけでは無理なので、ポート番号を追加で指定しなければいけない。

 

Listen80というのがあるので、その下に待ち受けしたいポート番号を入力するだけ。今回は8080とする。

Listen80
Listen8080

これでhttp://IPアドレス:8080にアクセスできるようになった。

 

 

ポート80の既存設定をコメントアウト

ポート80はデフォルト設定なので、すでにhttpd.confにDocumentRootやServerAdminやディレクトリ設定などがされている。

今回はポート80もバーチャルホスト側で設定しようと思うので、不要項目をコメントアウトする。

#ServerAdmin postmaster@localhost
#ServerName localhost:80
#DocumentRoot “C:/xampp/htdocs”

 

アクセス制限

もともと下記の設定があると思うが、

<Directory />
AllowOverride All
Require all granted
</Directory>

バーチャルホスト側の設定でオーバーライドやアクセス権の設定をするので、一旦下記のようにシャットアウトしておく。

<Directory>
AllowOverride none
Require all denied
</Directory>

 

httpd-vhosts.confの設定

続いてバーチャルホストの設定。ディレクトリは違うが書けば自動的に読みこまれるみたい。

ちなみにこのファイルは基本全文コメントあうとされていて、初期段階では何も読まない。

末尾に追加していく。

 

#——————————————
#システム:WebSystem(試作)
#構造:手作りMVC
#データベース:DB2
#ファイヤーウォール:許可
#——————————————
<VirtualHost *:80>

ServerAdmin hogehoge@gmail.com
DocumentRoot “C:/xampp/htdocs/”
ServerName localhost

<Directory “C:/xampp/htdocs”>
AllowOverride All
Require all granted
</Directory>

</VirtualHost>

 

#——————————————
#システム:俺のT(実用)
#構造:WordPress
#データベース:MySQL(my_tipslog)
#ファイヤーウォール:不許可
#——————————————-
<VirtualHost *:8080>

ServerAdmin hogehoge@gmail.com
DocumentRoot “C:/xampp/htdocs2/”
ServerName localhost

<Directory “C:/xampp/htdocs2”>
AllowOverride All
Require all granted
</Directory>

</VirtualHost>

 

こんな感じ。先頭が#ならばコメントアウトになるので、解りやすくサーバに関するコメントを書いておく。

ファイヤーウォールとは、Windowsの場合は外部からのアクセスを許さない設定になっているので、自分のXAMPPで作ったプログラムを他人に利用してもらいたければ、開通設定する必要がある。その有無ということ。要するに特に意味はない。

今回はローカルなので、RequireやAllowOverrideは緩め。

 

 

コメント

タイトルとURLをコピーしました