2018/03/10XAMPPでバーチャルホスト/バーチャルドメインを設定するとは?XAMPPとは?XAMPPとは、LAMP環境(Linux、Apache、MySQL、PHP、Perl)の環境を簡単に作成し、PHP、Perlのプログラム開発、学習を行うための便利なアプリケーションです。ちなみに、XAMPPは「ザンプ」と呼びます。XAMPPオフィシャルサイトhttps://www.apachefriends.org/jp/index.htmlXAMPPを結構長い間使っていましたが、ローカルの実験環境として使っていたため、細かな設定を気にすることがなかったのですが、このたび、XAMPPもバーチャルホストの設定を行うことができることを知りましたので、その設定についてご紹介します。VirtualHost(バーチャルホスト/バーチャルドメイン)とは?VirtualHost(バーチャルホスト/バーチャルドメイン)とは、1つのサーバで複数のドメインを運用するための技術です。Webサーバに対して、「bbb.com」というドメインのサイトも同居させよう、とする場合に必要になる技術で、このバーチャルドメインの技術によって、1つのサーバ(Apache)の中に複数のドメインのサイトを運営させることができるようになります。XAMPPはローカル環境として使うことが多いため、複数のドメインが設定できることは関係ない、と思うかもしれませんが、このバーチャルドメインの設定をすることで、複数のドキュメントルートを持つ環境を構築することができます。バーチャルドメインを設定しない場合に複数のサイトを構築する場合は、下記の様にサブフォルダ形式で構築をする必要があります。http://localhost/aaa/http://localhost/bbb/ですが、バーチャルドメインの設定をすることで、下記の様にそれぞれをドキュメントルートとして環境構築をすることができ、ドキュメントルートからのパスなどを本番環境と同じにすることができる、といったメリットを享受できるようになります。http://aaa.localhost/http://bbb.localhost/ちなみに、バーチャルホスト、バーチャルドメイン、マルチドメイン、仮想ホストなどは、言葉は違いますが同じ技術を指しています。IPベースバーチャルホスト/名前ベースバーチャルホストバーチャルホストには、大きく分けて、「IPベースバーチャルホスト」と「名前ベースバーチャルホスト」があります。IPアドレスを設定することで実現する方法です。IPアドレスに対して複数のドメインを設定する方法です。IPベースバーチャルホストは、IP層でドメインの判別が可能なため汎用性が高いのですが、IPアドレスの取得はコストがかかるため、明確な目的がある場合以外は「名前ベースバーチャルホスト」を選択することになるでしょう。XAMPPにバーチャルホストを設定する方法XAMPPにバーチャルホストを設定する方法として、「名前ベースバーチャルホスト」を設定する方法を解説します。2つの方法を解説します。ポートにサイトを割り当てる方法hostsを利用してドメインを割り当てる方法XAMPPのバーチャルホスト設定でエラーが発生した場合の確認項目ポートにサイトを割り当てる方法ポートにサイトを割り当てる方法です。URLでアクセスする方法です。http://localhost:8081設定方法も簡単ですので、おすすめの方法です。1.httpd-vhosts.confを編集httpd-vhosts.confを編集します。XAMPPのコントロールパネルからは選択することができませんので、直接下記のパスのファイルを探して編集します。C:¥xampp¥apache¥conf¥extra¥httpd-vhosts.conf編集する内容は、以下になります。この内容を「httpd-vhosts.conf」の一番最後に追記をします。"C:/xampp/htdocs/htdocs-8081"</VirtualHost>1行目、2行目の「8081」がポート番号を指定する箇所になります。ポート番号は「0」~「65535」まであり、他のプロトコルで使用していないポート番号であれば何番でもいいのですが、HTTPの標準ポート「80」に対して「80」を重ねる「8080」、そこから番号を増やしていく「8081」「8082」「8083」としていくことが多いような気がします。「DocumentRoot」のパスは、ドキュメントルートにするフォルダまでのパスを指定します。前項で設定した内容を反映させるため、XAMPPのコントロールパネルから、Apacheを再起動します。Apacheを止めて、「Start」ボタンで起動させます。URLにアクセスし、ページが表示されるかどうかを確認します。http://localhost:8081正しく表示されず、エラーが発生した場合は、後述の「XAMPPのバーチャルホスト設定でエラーが発生した場合の確認項目」で解説をしていますのでそちらを見てください。hostsを利用してドメインを割り当てる方法hostsを利用してドメインを割り当てる方法です。http://example.comのように、ドメインを当てることができます。WordPressのようにドメインも含めてシステムで管理されているようなサイトを構築する場合に役に立ちます。URLになることは避けられません。http://example.com:80801.httpd-vhosts.confを編集httpd-vhosts.confを編集します。XAMPPのコントロールパネルからは選択することができませんので、直接下記のパスのファイルを探して編集します。C:¥xampp¥apache¥conf¥extra¥httpd-vhosts.conf編集する内容は、以下になります。この内容を「httpd-vhosts.conf」の一番最後に追記をします。example.com</VirtualHost>先の「ポートにサイトを割り当てる方法」と比較すると、1行目が「NameVirtualHost」になっています。80番ポートを想定しています。example.com」が追加されています。4行目に設定したいドメイン名を指定します。80番ポートと違うポート番号で動作させている場合は、下記のような設定になります。XAMPPを動かしている場合の想定ですが、1行目、2行目の「80」を「8080」に変更します。2.hostsを編集hostsを編集します。hostsは、下記のファイルになります。C:¥Windows¥System32¥drivers¥etc\hosts下記の内容を「hosts」の最後に追記をします。Google検索を見てください。前項で設定した内容を反映させるため、XAMPPのコントロールパネルから、Apacheを再起動します。URLにアクセスし、ページが表示されるかどうかを確認します。URLでアクセスをします。Apacheの再起動が必要ですが、Apacheが起動しなくなる、という不具合もよく見かける不具合です。多くの場合は、下記のいずれかです。・「httpd-vhosts.conf」に記述した文法が間違っている・設定したポートがバッティングしている前者は、「VirtualHost」の綴りを間違えていたり、クォーテーションが閉じられていなかったり、といった単純なミスが多くあります。後者の場合は、「8081」などと設定したポートを他のアプリケーションが利用していてバッティングしている場合があります。ポート番号を違うものに変えて試してみてください。"C:/xampp/htdocs/htdocs-8081"」のフォルダのパスが間違っている場合があります。パスを変更するか、パスの場所にフォルダを作成するかして改めて確認をしてみてください。Apacheの再起動が必要です。8081」が抜けている場合も多々あります。こちらの抜けがないか確認をしてみてください。8081」の記述は、「C:\xampp\apache\conf\httpd.conf」に記述する方法もあります。バーチャルホストの設定をひとまとめにする、という意味で「httpd-vhosts.conf」に編集する方が無難であろうと思います。0HTMLファイルを表示したときは問題なかったけれど、PHPのファイルにアクセスしたら上記のようなエラーが表示された、というエラーが発生する場合があります。これは、バーチャルホストを設定したパスに日本語(マルチバイト文字、全角文字)が使われているために発生しているエラーです。URLの途中のフォルダに日本語が使われている場合も同様のエラーが発生します。http://localhost:8081/あ/index.phpフォルダ名に日本語(マルチバイト文字、全角文字)を使っている場合は、半角英数字に変更しましょう。PHPの文字コードが一致しないことによるエラーです。PHPの文字コードを一致させる対応などを行うことで、日本語を使っていても正しく動くようにすることはできるであろうと思います。単純にドキュメントルートを確保するためにバーチャルホストを設定するならば、1つ目に紹介した「hostsを利用してドメインを割り当てる方法」が簡単です。ドメインを設定する必要がある場合は「hostsを利用してドメインを割り当てる方法」がありますが、ポート番号なしでアクセスしたい場合は、80番ポートを使用している他のアプリ側のポート番号を変更する必要がでてきますね。その他、XAMPPに関しては下記の記事を書いていますので、あわせて参考にしてください。xamppGoogleAdwordsGoogleAdwords最後までお読みいただきましてありがとうございます。コメントをキャンセルメールアドレスが公開されることはありません。*サイト下記の空欄を埋めてください。date*日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)※入力いただいたコメントは管理者の承認後に掲載されます。関連記事Windowsに接続したBluetoothキーボード、マウスの突然動かない!つながらない!問題Bluetooth機器がつながらなくなった!そんなときの対応方法についての解説。Bluetooth接続の電源を勝手にOFFにしないようにする設定を中心に、その他の不具合とその対処方法についても紹介。チェックポイントも紹介Windowsで環境変数であるパス(path)の設定方法の解説。標準的な解説に加え、うまくいかない場合のチェック方法や別の設定方法の解説も。うまく設定できない状況は極力なくなるはず。ロリポップで非常に大きなハッキング騒動がありました。ロリポップで非常に大きなハッキング騒動がありました。その結果、影響を受けた内容と、それに対してどう対応したか、のレポートです。加えて、何でロリポップサーバを使っているかの紹介です。LAMP環境を簡単に構築することができるパッケージ「XAMPP」。そのインストール方法を詳細解説。インストール後の不具合やカスタマイズ方法についても説明。64Bit版について書いています。HTMLソースを秀丸で表示する際に「共有メモリへのアクセスが拒否されました」のエラーが表示される原因と解決方法の説明。Windowsのメモリ不足はUSBメモリに仮想メモリをおいて高速化Windowsでメモリ不足の時はUSBメモリ上に仮想メモリ(ページングファイル)設定で解決します。10のパソコンでスリープから復帰すると日付がズレる不具合が発生。その時の対応方法の時計の設定やマザーボードの電池の交換の方法を紹介。プラスαの不具合の原因と対応方法を紹介。XAMPPのApacheが起動しない!ポート番号の変更でバッティングの解消方法XAMPPを起動する際、Apacheのポートがバッティングして起動しない場合がある。XAMPP側のポートを変更する方法、バッティングしているプログラムを変更する方法の2種類の対応方法を解説。