Apache httpd を macOS に Homebrew でインストールする手順

投稿者 : OSCA

[PR] "東野・岡村の旅猿"で登場したロケ地を紹介するファンサイト「あの場所へ行こう!」はこちら。

概要

 macOS には標準で Apache httpd がインストールされており、macOS 上で HTTP サーバーを起動したければそれを利用できます。 しかし開発などで macOS に標準で入っている Apache httpd よりも新しいバージョンのものを利用したい場合や、macOS の初期状態を汚したくない場合などがあります。 そのような場合には Homebrew を利用して希望のバージョンの Apache httpd をインストールするのが便利です。 本稿では、Apache httpd を macOS に Homebrew を利用してインストールする手順について解説します。

標準インストールされた Apache httpd の自動起動を解除

 Homebrew で新たに Apache httpd をインストールする前に、もしかしたら標準でインストールされた Apache httpd が起動していたり、コンピュータの起動とともに立ち上がるようになっている場合がありますので、標準の Apache httpd を停止・自動起動を解除します。

 Apache httpd が起動されているかどうかは http://localhost にアクセスしてWEBサイトが表示されるか否かでわかります。 もし Apache httpd が起動されていたら、次のコマンドで停止させます。

$ sudo launchctl stop /System/Library/LaunchDaemons/org.apache.httpd.plist

 そして Apache httpd の自動起動の解除は次のコマンドで設定できます。

$ sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist

 なお、これらの詳細については、別稿「macOS に標準インストールされている Apache httpd の自動起動を解除する方法」で解説していますので、そちらも参考にしてください。

Homebrew の準備

 ここからは Homebrew を利用して Apache httpd のインストールを行なっていきます。 Homebrew がインストールされていることが前提になりますので、まだインストールが済んでいない場合は、別稿「Mac の開発を便利にするパッケージ管理ソフト Homebrew のインストール手順」などを参考にインストールを済ませてください。

Apache httpd のインストール

 それでは Homebrew を利用して Apache httpd をインストールしましょう。 まずは Apache httpd を検索してみます。 次のように brew search コマンドにキーワードとして httpd を指定して実行してみます。 すると次のように httpd を見つけることができます。

$ brew search httpd
==> Searching local taps...
darkhttpd     httpd     httpdiff     libmicrohttpd     lighttpd     mighttpd2

 httpd を利用できそうだということが分かったので、次に brew info コマンドで httpd の詳細情報を確認します。 すると次のように、2018年01月現在、2.4.29 が利用できることがわかりました。

$ brew info httpd
httpd: stable 2.4.29 (bottled)
Apache HTTP server
https://httpd.apache.org/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/httpd.rb
==> Dependencies
Required: apr ✘, apr-util ✘, nghttp2 ✘, openssl ✘, pcre ✘
==> Caveats
DocumentRoot is /usr/local/var/www.

The default ports have been set in /usr/local/etc/httpd/httpd.conf to 8080 and in
/usr/local/etc/httpd/extra/httpd-ssl.conf to 8443 so that httpd can run without sudo.

To have launchd start httpd now and restart at login:
  brew services start httpd
Or, if you don't want/need a background service you can just run:
  apachectl start

 Apache httpd の詳細情報が確認できたら、インストールしましょう。 次のように brew install コマンドでインストールを行います。

$ brew install httpd
==> Installing dependencies for httpd: apr, openssl, apr-util, c-ares, libev, libevent, jansson, boost, jemalloc, nghttp2, pcre
(中略)
==> Installing httpd
==> Downloading https://homebrew.bintray.com/bottles/httpd-2.4.29_1.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring httpd-2.4.29_1.high_sierra.bottle.tar.gz
==> Caveats
DocumentRoot is /usr/local/var/www.

The default ports have been set in /usr/local/etc/httpd/httpd.conf to 8080 and in
/usr/local/etc/httpd/extra/httpd-ssl.conf to 8443 so that httpd can run without sudo.

To have launchd start httpd now and restart at login:
  brew services start httpd
Or, if you don't want/need a background service you can just run:
  apachectl start
==> Summary
🍺 /usr/local/Cellar/httpd/2.4.29_1: 1,625 files, 26MB

各種フォルダ・ファイルのパス

 インストールが完了したら、インストールされたフォルダ・ファイルを確認しましょう。 重要なファイルを列挙すると次のようになります。

パス説明
/usr/local/var/wwwドキュメントルート、Apache httpd の公開ディレクトリ
/usr/local/etc/httpd/httpd.conf設定ファイル
/usr/local/bin/apachectlApache httpd の起動・停止などの制御を担うプログラム (実体へのシンボリックリンク)
/usr/local/Cellar/httpd/インストールした Apache httpd の実体ファイルが保存されているディレクトリ

ポート番号の変更

 Homebrew でインストールした httpd は、HTTP は 8080, HTTPS は 8443 のポートで起動するような設定になっています。 これで困らない人は変更する必要がありませんが、一般的なポートにしたい場合は次のように設定を変更してください。

/usr/local/etc/httpd/httpd.conf

Listen 80

/usr/local/etc/httpd/extra/httpd-ssl.conf

Listen 443

起動と停止

 それでは Apache httpd を起動・停止してみましょう。 起動するには次のようにコマンドを実行します。 なお次のコマンドを実行することにより、次回以降のコンピュータ起動時には、自動的に Apache httpd が起動されます。

$ sudo brew services start httpd
==> Successfully started `httpd` (label: homebrew.mxcl.httpd)

 Apache httpd を起動したら http://localhost にアクセスしてみてください。 It work! と書かれたページが表示されたでしょうか。

 Apache httpd を停止する場合には次のコマンドです。

$ sudo brew services stop httpd
==> Successfully stopped `httpd` (label: homebrew.mxcl.httpd)
Stopping `httpd`... (might take a while)

おわりに

 本稿では Apache httpd を macOS に Homebrew でインストールする手順について解説しました。

Apache httpd 入門へ戻る

Apacheのトップへ戻る

著者 : OSCA

OSCA

Java, PHP 系のWEBエンジニア。 WEBエンジニア向けコミュニティ「WEBエンジニア勉強会」を主催。 個人として何か一つでも世の中の多くの人に使ってもらえるものを作ろうと日々奮闘中。
@engineer_osca