Apacheをインストールしたフォルダ配下のhtdocsフォルダにファイルを作成し、http://localhost/XXXX.phpとブラウザで確認します。
例えば「%APACHE_HOME%\htdocs\test.php」というPHPファイルは「http://localhost/test.php」でブラウザで確認します。
複数のWebサイトを管理する場合、htdocsフォルダ配下にサイトごとにフォルダを作成すればよいのかと思ったのですが
これだとルートディレクトリは「%APACHE_HOME%\htdocs」なので外部ファイルを読み込む際のパスなど、なにかと問題が発生します。
例えば「website_a」と「website_b」という二つのサイトがあり、それぞれに「test.php」がある場合
以下のようなPHPファイルは
「%APACHE_HOME%\htdocs\website_a\test.php」
「%APACHE_HOME%\htdocs\website_b\test.php」
ブラウザでは以下のように確認することになります。
「http://localhost/website_a/test.php」
「http://localhost/website_b/test.php」
外部ファイルを絶対パスなどで読み込む際にwebsite_aもwebsite_bもルートディレクトリが「%APACHE_HOME%\htdocs」になるので
「website_a」配下のファイルにアクセスするのに困ってしまいます。
「website_a」のルートディレクトリは「%APACHE_HOME%\htdocs\website_a」
「website_b」のルートディレクトリは「%APACHE_HOME%\htdocs\website_b」
と設定したいと思います。
Apacheにバーチャルホスト(仮想ホスト)を設定する
仮想ホストとは、Webブラウザーで指定されるURLとサーバー上の実際のフォルダとを結びつける役割をします。つまり好きな場所に配置したフォルダ内のファイルを、こんなURLでアクセスするからちゃんと表示してねと設定してあげるんですね。
今回は「D:\website_a」フォルダを作成し、「http://local.website_a」でアクセスできるように設定してみます。
%APACHE_HOME%\conf\httpd.confの編集
1.アクセス権限の変更
以下のような記載箇所を検索し 赤字の「Deny from all」を「Allow from all」に変更します。
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory>これですべてのフォルダに対してアクセス権限を与えることができます。
もし個別のフォルダに対してアクセス権限を与えるのであれば、以下のようにパスを指定します。
<Directory "D:\website_a"/> Options FollowSymLinks AllowOverride None Order deny,allow Allow from all </Directory>
2.仮想ホストの設定ファイルを読み込めるようにする
以下のような記載箇所を検索し 赤字の「#」を削除します。
# Virtual hosts #Include conf/extra/httpd-vhosts.confこれで仮想ホストの設定ファイル「conf/extra/httpd-vhosts.conf」を読み込むようになります。
%APACHE_HOME%\conf\extra\httpd-vhosts.confの編集
コメントは省いて、以下のような記載があると思います。
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@dummy-host.localhost DocumentRoot "C:/Program Files2/Apache2.2/docs/dummy-host.localhost" ServerName dummy-host.localhost ServerAlias www.dummy-host.localhost ErrorLog "logs/dummy-host.localhost-error.log" CustomLog "logs/dummy-host.localhost-access.log" common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@dummy-host2.localhost DocumentRoot "C:/Program Files2/Apache2.2/docs/dummy-host2.localhost" ServerName dummy-host2.localhost ErrorLog "logs/dummy-host2.localhost-error.log" CustomLog "logs/dummy-host2.localhost-access.log" common </VirtualHost>以下のように変更します。
NameVirtualHost *:80 #======================= #localhost #======================= <VirtualHost *:80> ServerName localhost DocumentRoot "C:/Program Files/Apache2.2/htdocs" ErrorLog "logs/localhost-error.log" CustomLog "logs/localhost-access.log" common </VirtualHost> #======================= #website_a #======================= <VirtualHost *:80> ServerAdmin webmaster@dumy.co.jp DocumentRoot "D:/website_a" ServerName local.website_a ErrorLog "logs/local.website_a-error.log" CustomLog "logs/local.website_a-access.log" common </VirtualHost>ServerAdmin・・・管理者のメールアドレス
DocumentRoot・・・サイトのファイルのあるフォルダ
ServerName・・・サイトにアクセスするための名前
ErrorLog・・・エラーログ
CustomLog・・・アクセスログ common・・・httpd.confファイル内で定義されているcommonフォーマットを利用する
一つ目の仮想ホストの設定は
今まで通り「%APACHE_HOME%\htdocs」フォルダ配下のファイルを「http://loalhost」でアクセスできるようにするためのものです。
二つ目の仮想ホストの設定は
「D:/website_a」フォルダ配下のファイルを「http://local.website_a」でアクセスできるようにするためのものです。
設定を有効にするためにApacheを再起動します。
C:\WINDOWS\system32\drivers\etc\hostsの編集
ServerNameで設定した名前「local.website_a」とIPアドレスを紐付するために、hostsファイルを編集します。
hostsファイルはwindows7の場合「C:\WINDOWS\system32\drivers\etc」にあります。
「127.0.0.1 localhost」の次行に「127.0.0.1 local.website_a」を追記します。
127.0.0.1 localhost 127.0.0.1 local.website_a「127.0.0.1」はローカル・ループバック・アドレスと呼ばれ、自分自身を指す特別なIPアドレスです。
ホスト名「localhost」や「local.website_a」でアクセスされたとき、自分自身にアクセスするように設定しています。
設定を有効にするためにブラウザを一度閉じて開き直します。
以上で設定は終了です。
「D:\website_a」にhtmlファイルを配置し、「http://local.website_a/XXX.html」にアクセスして表示されるか確認してください。
0 件のコメント:
コメントを投稿