概要
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/apachectl | Apache 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 でインストールする手順について解説しました。