XAMPPバーチャルホストの設定とシンボリックリンク
XAMPPはDドライブ直下へインストール。データは別のドライブ、またはフォルダで管理している時など、XAMPPの「htdocs」へデータを引っ越しするのも手間だし管理も大変。そんな時、任意のフォルダをバーチャルホストとして設定出来るととても便利。
ついつい忘れてしまう設定方法を自分用にメモ。
1.「httpd-vhosts.conf」ファイルの編集
OSはCドライブ。
XAMPPはDドライブ直下へインストール。
データはFドライブにあるケース。
D:/xampp/apache/conf/extra/httpd-vhosts.conf
XAMPPがインストールされているフォルダから上記ファイルを開き、下記記述を探し出し「##」を削除し有効化
##NameVirtualHost *:80修正後
NameVirtualHost *:80同ファイルの一番下あたりに下記2つのソースを追記して保存
「http://localhost」でアクセスした時用
<VirtualHost *:80> DocumentRoot "D:/xampp/htdocs" ServerName localhost </VirtualHost>今回設定する「http://localhost_test」でアクセスした時用
<VirtualHost *:80> DocumentRoot "F:\hoge\hogehoge\test" ←フォルダの場所を指定 ServerName localhost_test ←任意の名前を指定(アクセスするURL) <Directory "F:\hoge\hogehoge\test"> ←フォルダの場所を指定 Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory> </VirtualHost>
主なOptionsの設定
「htdocs」以外のフォルダを指定する場合、フォルダの権限を設定する必要があります。
Options Indexes FollowSymLinks Includes ExecCGI
- Indexes
- インディックス表示を有効
- FollowSymLinks
- シンボリックリンクを有効
- Includes
- SSIを有効
- ExecCGI
- CGIを有効
- IncludesNoExec
- SSIを有効、CGIを無効
- FollowSymLinksIfOwnerMatch
- シンボリックリンク先の権限が一致する場合のみ有効
2.「hosts」の編集
メモ帳を「管理者として実行」
メモ帳の「ファイル→開く」から下記フォルダを開く
D:/windows/System32/drivers/etc
設定を「テキスト文書→全てのファイル」に変更し、現れた「hosts」ファイルを開く
先程「httpd-vhosts.conf」にて、アクセスするURLとして指定した任意の名前を追記して保存
127.0.0.1 localhost_testXAMPP起動後(起動していたら再起動)、アクセスするURLとして指定した http://localhost_test/ にアクセスし、「F:\hoge\hogehoge\test」フォルダにあるindex.htmlが表示されていたら完了。
おまけ.「シンボリックリンク」
シンボリックリンクとはショートカットの仲間。あたかも、そこにデータが存在するかのように動作する。
例えるなら、ショートカット=只の残像
シンボリックリンク=質量をもった残像
自分の場合、同じバーチャルホスト内で表示したいけど、Gitのバージョン管理の都合上フォルダは分けたい。めったに無いけどそんな時に設定。知っていると何かと便利かと。
F:\hoge\hogehoge\test フォルダ内に F:\hoge\sample へのシンボリックリンクを作る場合、つまり F:\hoge\hogehoge\test\sample として動作させたい場合の設定方法。(先程設定したバーチャルホスト http://localhost_test/sample/ としても動作可)
コマンドプロンプトを「管理者として実行」し、下記コマンドを実行
mklink /d "F:\hoge\hogehoge\test\sample" "F:\hoge\sample"簡単な解説
mklink /d "[シンボリックリンクを作るフォルダ\リンク名]" "[実際にデータのあるフォルダ]"「F:\hoge\hogehoge\test」フォルダ内に、「sample」という「F:\hoge\sample」フォルダへのシンボリックリンクが出来ていたら完了。
シンボリックリンクを削除のする時は、通常のショートカット同様、シンボリックリンクを削除してしまっているけど、やはりコマンド打った方が良いのかな。