備忘録なので内容は適当です。
バーチャルホストとは、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は緩め。
コメント