0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Apache を homebrew でインストールして VirtualHost 立てたら混乱した件

Last updated at Posted at 2024-07-19

備忘録。

何が起きたのか

1. Homebrew で apache をインストール。

$ brew install httpd

ちなみに MacOS 標準搭載の apache 使わなかった理由はこちら
標準搭載の apache が走ってるかの確認と stop 方法はこちら

2. とりあえず httpd.conf の Port を 80 に変える。

# Listen 8080
Listen 80

localhost:80 でちゃんと It Works! が表示されたことを確認。

3. [問題発生] VirtualHost を設定

今回 1 つの Web サーバーで 2 つのサブドメインが異なるウェブサイト (sample1.example.com と sample2.example.com) をホストしたかったので、VirtualHost を立てることに。

VirtualHost の設定は主に 3 ステップ。

  1. 各ウェブサイトごとの DocumentRoot を新たに作成。
  2. 各 DocumentRoot の中に表示したい HTML ファイルを格納。
  3. VirtualHost の設定ファイルをいじいじ。

というわけでこちらの記事を参考に VirtualHost を設定することに。

VirtualHost の設定には、VirtualHost 設定用の .confファイルが必要らしく、/opt/homebrew/etc/httpd/conf.d というディレクトリ配下に格納するらしい。

のですが。。。

VirtualHost 設定に必要な conf.d のディレクトリが見つからない!!!!!!(泣)

というか消してもないんだけど。。。 brew install httpd しただけなのに。。。

$ cd /opt/homebrew/etc/httpd && ls
> extra		httpd.conf	magic		mime.types	original

こんな感じで、conf っぽいディレクトリはない。。。。

しかもグーグル先生に "conf.d 見当たらない" ググっても出てこない。。

しょうがないので Gemini 先生に聞くことに。

:raising_hand: 私: "In my /opt/homebrew/etc/httpd directory, I don't see conf.d directory. what is wrong?"
:robot: Gemini 先生: "It's unusual not to see a conf.d directory within your /opt/homebrew/etc/httpd directory, as this is the standard location for additional configuration files in Apache installations managed by Homebrew."

そんなあ!!!!

とりま私がなんかやらかしたのかなあとか思い Gemini 先生が提案してくれた通り brew reinstall httpd したけどだめ。

httpd.conf をチェックしてみる

Gemini 先生:
"Open your main Apache configuration file (/opt/homebrew/etc/httpd/httpd.conf) and search for a line like IncludeOptional conf.d/*.conf. This line instructs Apache to include configuration files from the conf.d directory. If this line is missing or commented out, uncomment it or add it if necessary. If the line points to a different directory, that's where your additional configuration files might be located."

と言われたので確認するも、そもそも cmd+F で "conf.d" とやってもヒットしない。なんで????

マニュアルで作ることも考えたけど、後でめんどくさい問題になりそうなのでなんとかデフォルトの設定で VirtualHost 作れないか模索した。

解決策

httpd.conf ファイルとにらめっこしたところ、こんな記載があった。

# Virtual hosts
# Include /opt/homebrew/etc/httpd/extra/httpd-vhosts.conf

ん!!!!なんかそれっぽい。

ぐぐってみたところ、どうやら通常 /httpd/conf.d に格納しているバーチャルホストの設定ファイルが、なぜか homebrew 版だとデフォルトで /extra/ パスに作成されてるっぽい。
(参考にした記事はこちら)

httpd-vhosts.conf を開くと、デフォルトでこんな感じで記載があった。

# <VirtualHost *:8080>
#     ServerAdmin webmaster@dummy-host.example.com
#     DocumentRoot "/opt/homebrew/opt/httpd/docs/dummy-host.example.com"
#     ServerName dummy-host.example.com
#     ServerAlias www.dummy-host.example.com
#     ErrorLog "/opt/homebrew/var/log/httpd/dummy-host.example.com-error_log"
#     CustomLog "/opt/homebrew/var/log/httpd/dummy-host.example.com-access_log" common
# </VirtualHost>

# <VirtualHost *:8080>
#     ServerAdmin webmaster@dummy-host2.example.com
#     DocumentRoot "/opt/homebrew/opt/httpd/docs/dummy-host2.example.com"
#     ServerName dummy-host2.example.com
#     ErrorLog "/opt/homebrew/var/log/httpd/dummy-host2.example.com-error_log"
#     CustomLog "/opt/homebrew/var/log/httpd/dummy-host2.example.com-access_log" common
# </VirtualHost>

ここいじったら行けそう!

結論

homebrew で apache をインストールした場合、VirtualHost の設定はhttpd-vhosts.confにて行い、
その設定ファイルを同期させるために Include /opt/homebrew/etc/httpd/extra/httpd-vhosts.conf の一文を httpd.conf にいれる必要があるということがわかりました!

実践

というわけで、早速 httpd.conf のこちらの行をコメントアウト。

# Virtual hosts
Include /opt/homebrew/etc/httpd/extra/httpd-vhosts.conf

んで、httpd-vhosts.conf の設定を変更。

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/opt/homebrew/var/www/sample_host"
    ServerName sample1.example.com
   </VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/opt/homebrew/var/www/sample_host2"
    ServerName sample2.example.com
   </VirtualHost>

そして忘れちゃいけない、localhost で試すので /private/etc/hosts を編集。

127.0.0.1 sample1.example.com
127.0.0.1 sample2.example.com

すると。。。

Screenshot 2024-07-19 at 15.12.27.png
Screenshot 2024-07-19 at 15.12.36.png

やったあ!!!!

めっちゃググっても出てこない情報だったので、どなたかの役に立てば。
ご指摘あればいつでもお待ちしております!!!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?