質問: ### 前提 当方、Apacheについてはコピペレベルでの操作しか行ったことがありません。 故に知識はまだまだ乏しいです。 ### 質問概要 MacOSのApacheで自宅サーバを運営したいのですが、その中に2つのサイトを運営したいと考えています。 現在は、NoIPのサービスを利用していますが、 例えば http://aaaaa.xxxx/ を Aのサイトフォルダ へ http://bbbbb.xxxx/ を Bのサイトフォルダ へ と振り分けることは可能なのでしょうか? ### 質問 **MacOSX(El Capitan)**のApacheでサーバを立てています。(外部公開目的です) そこで、複数のサイトを運営したいと考えているのですが、 以前「【Apache】MaxOSのApacheで複数のサイトを外部公開する方法」で質問させていただいたところ、 「**VirtualHost**」というものを設定すればできるとご回答頂きました。 しかしながら、このVirtualHostの設定方法がわからないため質問させていただきます。 --- まず、サーバとして使用しているMacの中身ですが、 当時設定方法がわからなかったため、 ユーザフォルダの中のサイトフォルダ(**~/Sites/**)をApacheのルートフォルダに設定しています。 (これは、NoIPのURIにアクセスすると「It Works!」のフォルダにしか移動できなかったためです。) --- 次に、現在どこまで設定を行ったかについてですが、頂いた情報から以下のページを見つけ、そこを参考に設定を行ってみました。 ●MacのApacheでヴァーチャルホストを使ってテスト環境の構築 1)まず、サンプル通り**~/work/**というフォルダを造りそこを2つ目のサイト用のフォルダとします。 2)次に、httpd.confの以下の行の「#」を外しました。 `Include /private/etc/apache2/extra/httpd-vhosts.conf` 3)`/private/etc/apache2/extra/httpd-vhosts.conf`に以下のデータを追加しました。 ※「ServerName」はこれでいいのでしょうか? ※「ServerNameはネット上に存在しないアドレスにするよう注意してください」と書いてありましたが...適当でいいのでしょうか...? ``` DocumentRoot "/Users/ユーザ名/Sites/" ServerName local.hogehoge1 ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log" CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common DocumentRoot "/Users/ユーザ名/works/" ServerName local.hogehoge2 ErrorLog "/private/var/log/apache2/local.howtohp.com-error_log" CustomLog "/private/var/log/apache2/local.howtohp.com-access_log" common ``` 4)`/etc/hosts`に以下のデータを追加しました。 ``` 127.0.0.1 local.hogehoge1 127.0.0.1 local.hogehoge2 ``` 5)エラーチェックの後、再起動 --- この後、NoIPのアドレスを割り当てたいのですが、どのようにして割り当てればよいのでしょうか。 ご存じの方がいらっしゃいましたら、ご教授の程よろしくお願い致します。
回答: Apache httpd バージョン 2.2 であれば、httpd.conf で `NameVirtualHost *:80` と設定する必要があります。 ローカルでの確認は /etc/hosts に ``` 127.0.0.1 ServerNameその1 ServerNameその2 ``` と記述して、ブラウザからアクセスしてみてください。 あるいは、curl コマンドが利用できるのであれば、 ``` curl -H "Host: ServerNameその1" http://127.0.0.1/ curl -H "Host: ServerNameその2" http://127.0.0.1/ ``` でも確認できると思います。