ローカルのApacheのHTTPサーバーでポート別に複数サイトを表示する
Windows環境で、ローカルにApacheをインストールし、ポートごとに別のサイト(別のフォルダ)を表示する方法です。
既にApacheをインストール済みの場合はこちらのみをご覧ください。
ダウンロード
こちらの「Apache」のダウンロードページを開きます。
64ビット版のWindowsをお使いの場合は、「vc_redist_x64」と、「httpd〜win64〜.zip」をクリックして、それぞれのファイルを保存します。
32ビット版のWindowsをお使いの場合は、「vc_redist_x86」と、「httpd〜win32〜.zip」をクリックして、それぞれのファイルを保存します。
ページに広告があるので間違えないようにご注意ください。
PCの場合は、Ctrlキーを押しながら「F」キーを押して、ブラウザの検索機能を使って「x64」「win64」「x86」「win32」等を検索すると見付けやすいかと思います。
お使いのWindowsが32ビット版か64ビット版か分からない場合は、キーボードのWindowsロゴのキーを押しながら、「Pause/Break」キーを押すと確認出来ます。
それでも分からない場合は、「vc_redist_x64」がインストール出来るか試してみてください。インストール出来れば64ビット版のWindowsです。
Visual Studio C++ ランタイム のインストール
ダウンロードした「vc_redist〜」 (.exe)ファイルを、ダブルクリックして実行します。
何か警告が出た場合は、「はい」や、「了解してインストール」や、「詳細情報」→「実行」等をクリックして続行します。
ライセンスの確認画面が出たら、同意出来る場合は、「ライセンス条項および使用条件に同意する」にチェックを入れ、「インストール」をクリックします。(同意しないとインストールは出来ません。)
インストール作業を進め、インストールを完了させます。
再起動を求められた場合は、PCを再起動します。
Apacheのインストール
保存した圧縮ファイル「httpd〜」(.zip)ファイルを、右クリック等から展開 (解凍)します。
( 展開方法が分からない場合 )
展開して出来たフォルダを開き、
「Apache〜」フォルダを右クリックし、
「コピー」(又はボタン)をクリックします。
Cドライブを開き、何もアイコンが無い余白部分を右クリックし、「貼り付け」(又はボタン)をクリックします。
( Cドライブの開き方が分からない場合 )
すると、「Apache〜」フォルダが、Cドライブ直下にコピーされます。
(これには管理者権限が必要です。)
これがApacheのインストール先フォルダとなります。
Apacheの設定
Apacheのインストール先フォルダを開き、
「conf」フォルダを開き、
「httpd.conf」ファイルをメモ帳等のテキストエディタで開きます。
( メモ帳での開き方が分からない場合 )
ファイルを開いたら、上部に改行を入れてスペースを作り、
そこへ以下の文章をコピー&ペーストします。
( コピー&ペースト方法が分からない場合 )
ServerName localhost:80
#http://localhost:50001/
Listen 50001
<VirtualHost localhost:50001>
DocumentRoot "C:/Apache●●/htdocs/aaa"
</VirtualHost>
#http://localhost:50002/
Listen 50002
<VirtualHost localhost:50002>
DocumentRoot "C:/Apache●●/htdocs/bbb"
</VirtualHost>
「ServerName localhost:80」は、Apacheサーバ自身のホスト名を示すものです。
「#http://localhost:〜/」はアクセス用のコメントですので、不要なら削除してください。
「50001」「50002」は、ポート番号を表しています。これは、お好きな番号に変更してください。「49152〜65535」の範囲が望ましいです。
「DocumentRoot "C:/Apache●●/htdocs/〜"」は、そのポートで表示されるサイトのルート(最上位)となるフォルダを表しています。このパス(場所)はご自身の環境に合わせて書き換えてください。そのままでは動作しません。「\」区切りのパス(場所)で記述しても表示されますが、「/」区切りで記述するのが通例です。「Apache●●」に入れる数値は半角にしてください。
各サイト用のフォルダは、「C:\Apache〜\htdocs」配下に置くようにしてください。それ以外だと動作しない場合があります。
サイト用のフォルダの準備
Apacheのインストール先フォルダを開き、
「htdocs」フォルダを開き、
そこにポート別に表示したいサイトのフォルダを置きます。
以下の例では「aaa」「bbb」フォルダです。それぞれ別のサイトです。
それらのフォルダ内には、動作確認が出来るように、「index.html」等のファイルを作成して置いてください。既にご自身が作成したファイルがある場合はそれで結構です。
Apacheのテスト起動
Apacheのインストール先フォルダを開き、
「bin」フォルダを開き、
「httpd」(.exe)ファイルをダブルクリックして実行します。
警告が出た場合は、「はい」や、「了解してインストール」や、「詳細情報」→「実行」等をクリックして続行します。
ファイアウォールの画面が出た場合は、そのPCでサイトの表示をテストするだけなら、外部からのアクセスを許可する必要はありませんので、「キャンセル」をクリックしてください。
黒いウィンドウが表示されて、何もエラーメッセージが表示されず、そのままウィンドウが閉じなければ成功です。
この起動方法の場合は、ウィンドウが表示されている間のみApacheが有効となります。閉じれば終了です。
Apacheの動作確認
WEBブラウザ上部にあるアドレスバー等から、「http://localhost:ポート番号/」にアクセスし、サイトがきちんと表示されるか確認します。
今回の例で言うと、
「http://localhost:50001/」や
「http://localhost:50002/」等です。
サービスへの登録
ApacheをWindowsのサービスに登録しておくと、Windows起動時に自動実行されます。方法は以下の通りです。
以下の枠内の文章は、ブラウザ上で編集可能ですので、
「C:\Apache●●\bin」部分を正しいフォルダのパス(場所)に書き換え、
枠内の全文をコピーし、
コマンドプロンプトを管理者権限で起動し、
コマンドプロンプトの画面内を右クリックして貼り付けます。
( コマンドプロンプトを管理者権限で起動する方法が分からない場合 )
すると、この文章がコマンドプロンプト上で実行されます。
「rem 完了」と表示されれば完了です。コマンドプロンプトを閉じます。
上記の意味は、以下の通りです。
pushd "C:\Apache●●\bin" (作業フォルダを「bin」フォルダに変更)
httpd -k stop (Apacheの停止)
taskkill /im "httpd.exe" /f (起動中の「httpd.exe」を強制終了)
httpd -k uninstall (以前のApacheのアンインストール)
httpd -k install (Apacheサービスの登録)
httpd -k start (Apacheの開始)
rem 完了 (完了のコメント)
「httpd -k uninstall」は、既にApacheがサービスに登録されている場合用なので、それ以外ではエラーとなりますが、それは問題ありません。
サービス登録後、PCを再起動すると、Windows起動時にApacheがサービスとして実行されます。
バックグラウンド(裏)で動作しますので、Apacheのウィンドウは見えません。
サービスからの削除
以下の文章の「C:\Apache●●\bin」部分を正しいフォルダのパス(場所)に書き換え、
枠内の全文をコピーし、
コマンドプロンプトを管理者権限で起動し、
コマンドプロンプトの画面内を右クリックして貼り付けます。
すると、この文章がコマンドプロンプト上で実行されます。
「rem 完了」と表示されれば完了です。コマンドプロンプトを閉じます。
上記の意味は、以下の通りです。
pushd "C:\Apache●●\bin" (作業フォルダを「bin」フォルダに変更)
httpd -k stop (Apacheの停止)
httpd -k uninstall (Apacheサービスの削除)
rem 完了 (完了のコメント)
「httpd -k stop」は、Apacheを停止しない場合は省略しても構いません。
Apacheのフォルダ名を変更したい場合
まず、Apacheをサービスに登録してある場合は、サービスへの登録を削除してください。
次に、Apacheのフォルダ名を変更し、
そのフォルダを開き、
「conf」フォルダを開き、
「httpd.conf」をメモ帳等でファイルを開き、
「Define SRVROOT "c:/Apache〜"」の、
「Apache〜」部分も、変更後のフォルダ名に変更してください。
サービスに登録してあった場合は、Apacheのテスト起動を行い、問題無ければ、サービスに登録し直してください。