Help us understand the problem. What is going on with this article?

MacでApacheを立ち上げてみる

More than 1 year has passed since last update.

0. 経緯

MacでローカルのWebサーバが使いたかったので調べながらやってみたのですが、ちょっと悩んだので自分なりにまとめてみました。

1. 環境情報

・macOS Mojave 10.14.1

terminal
$ sw_vers 
ProductName:    Mac OS X
ProductVersion: 10.14.1

・Apache/2.4.34

terminal
$ httpd -v
Server version: Apache/2.4.34 (Unix)
Server built:   Aug 17 2018 16:29:43

MacにはApacheが標準インストールされているみたいです。

2. Apacheを起動してみる

とりあえず、Apachを起動してみましょう。

terminal
$ sudo apachectl start

ブラウザでhttp://localhost/にアクセスしてみて「It works!」と表示されれば起動成功です!
/Library/WebServer/Documents/index.html.enが表示されているらしいです。

ちなみに停止するなら$ sudo apachectl start
再起動するなら$ sudo apachectl restartです。

3. ユーザディレクトリの有効化

/Library/WebServer/Documents/index.html.enを編集するにはroot権限が必要なので普段使いするにはあまり適していません。ログインした一般ユーザのホームディレクトリ配下のファイルにアクセスできるようにします。

まず、httpd.confを編集します。

terminal
$ sudo vi /etc/apache2/httpd.conf
/etc/apache2/httpd.conf(編集前)
#(前略)
#LoadModule userdir_module libexec/apache2/mod_userdir.so
#(中略)
# User home directories
#Include /private/etc/apache2/extra/httpd-userdir.conf
#(後略)

該当2行を有効化します。コメント#を消すと有効化できます。

/etc/apache2/httpd.conf(編集後)
#(前略)
LoadModule userdir_module libexec/apache2/mod_userdir.so
#(中略)
# User home directories
Include /private/etc/apache2/extra/httpd-userdir.conf
#(後略)

続いて、httpd-userdir.confを編集します。

terminal
$ sudo vi /etc/apache2/extra/httpd-userdir.conf
/etc/apache2/extra/httpd-userdir.conf(編集前)
#(前略)
#Include /private/etc/apache2/users/*.conf
#(後略)

該当1行を有効化します。コメント#を消すと有効化できます。

/etc/apache2/extra/httpd-userdir.conf(編集後)
#(前略)
Include /private/etc/apache2/users/*.conf
#(後略)

それから、[ユーザ名].confを編集(作成)します。[ユーザ名]はログインユーザ名に置き換えてください。

terminal
$ sudo vi /etc/apache2/users/[ユーザ名].conf
/etc/apache2/users/[ユーザ名].conf
<Directory "/Users/[ユーザ名]/Sites/">
AllowOverride All
Options Indexes MultiViews
Options +FollowSymLinks
Require all granted
</Directory>

4. htmlファイルを作成してブラウザからアクセスしてみる

index.htmlを作成しましょう。その前にディレクトリを作ります。

terminal
$ mkdir ~/Sites
$ vi ~/Sites/index.html
~/Sites/index.html
<html><body><h1>Hello World!</h1></body></html>

Apachを再起動しましょう。

terminal
$ sudo apachectl restart

ブラウザでhttp://localhost/~[ユーザ名]/にアクセスしてみて「Hello World!」と表示されれば成功です!

【補足メモ】

/etc/private/etcのシンボリックリンクでした。

terminal
$ ls -l /etc
(中略) /etc -> private/etc

また、viコマンドはvimコマンドのシンボリックリンクになっていました。

terminal
$ ls -l $(which vi)
(中略) /usr/bin/vi -> vim

【参考サイト】

▼Macでローカルサーバー構築あれこれ
https://qiita.com/YuukiWatanabe/items/f89fe047ace61d2d2b45

▼Macでローカルサーバを立ち上げる方法
http://qiita.com/shuntaro_tamura/items/bdabcb77926dc92617b1

▼MacでのApache起動について
https://qiita.com/macoto/items/08159691170c64f05f7a

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away