Macでローカルサーバを立ち上げる方法


# 0. 環境
私の開発環境は下記です。

- Mac OS バージョン10.10.2
- PHPが入っている
  - `php -v`　→　`PHP 5.5.14 (cli) (built: Sep  9 2014 19:09:25)`
- Apacheが入っている
  - `httpd -v`　→　`Server version: Apache/2.4.9 (Unix)`

最近の新しいMacは最初からPHPやApacheが入っているので便利です。

# 1. Apacheの起動（httpdの起動）と確認
## 1-1. 起動、停止、再起動
Apacheを起動するには

```sh
sudo apachectl start
```

を叩けばよい。停止したければ、

```sh
sudo apachectl stop
```

再起動したければ、

```sh
sudo apachectl restart
```

を叩けばよい。

【参考サイト】
▼apacheを使ってローカルサーバーを構築する方法
http://motw.mods.jp/Mac/local_server.html

## 1-2. 確認
CLI上で確認する方法と、ブラウザで確認する方法があります。
CLI上でプロセスが立ち上がっていることを確認するには、

```console
$ ps aux | grep httpd
```

を叩いてみて、

```
hoge          19457   0.0  0.0  2460420    712 s006  S+    6:53PM   0:00.00 grep httpd
_www            18765   0.0  0.0  2470452    852   ??  S     6:43PM   0:00.00 /usr/sbin/httpd -D FOREGROUND
_www            18761   0.0  0.0  2478644   2740   ??  S     6:43PM   0:00.01 /usr/sbin/httpd -D FOREGROUND
root            18760   0.0  0.1  2470452  10100   ??  Ss    6:43PM   0:00.27 /usr/sbin/httpd -D FOREGROUND
```

のように、グレップコマンドそのもの（`hoge          19457   0.0  0.0  2460420    712 s006  S+    6:53PM   0:00.00 grep httpd`）以外にプロセスが立ち上がっていればOK。

ブラウザで確認するには、`http://localhost`をWeb検索してみて、
![web_server.png](https://qiita-image-store.s3.amazonaws.com/0/41481/a36fcdbd-eabd-2310-fa8e-3cc1afc805ea.png "web_server.png")
のように表示されれば成功。

# 2. Apacheの設定ファイル修正
## 2-1. PHPを使う
WebサーバでPHPを使うためには、Apacheの設定ファイルを変えなくてはなりません。

設定ファイルの場所は、`/etc/apache2/httpd.conf`なので、

```sh
vim /etc/apache2/httpd.conf
```

を叩き、ファイル中の

```apache:/etc/apache2/httpd.conf
#LoadModule php5_module libexec/apache2/libphp5.so
```

の行頭の`#`（コメントアウト記号）を消して

```apache:/etc/apache2/httpd.conf
LoadModule php5_module libexec/apache2/libphp5.so
```

とすればWebサーバ上でPHPが使えるようになる。

※設定ファイルの更新内容を反映させるためにはApacheの再起動が必要なので注意！

【参考サイト】
▼Mac OS X MavericksにApacheとPHPをインストールしてWebアプリの開発環境を作ってみる
http://blog.hyec.jp/2014/02/mac-os-x-mavericksapachephpweb.html

## 2-2. ユーザディレクトリの有効化
Webサーバでドキュメントルート直下とは別のディレクトリを閲覧したい場合、下記の修正が必要。

```sh
sudo vim /etc/apache2/httpd.conf
```

を叩き、ファイル中の

```apache:/etc/apache2/httpd.conf
LoadModule userdir_module libexec/apache2/mod_userdir.so
```

と

```apache:/etc/apache2/httpd.conf
Include /private/etc/apache2/extra/httpd-userdir.conf
```

を有効化（行頭の`#`を消し、コメントアウトを消す）すれば、ユーザーディレクトリにブラウザからアクセスできるようになる。

【参考サイト】
▼OS X 10.10 YosemiteでApache(ウェブ共有/サイト)を使う方法
http://nantekottai.com/2014/10/26/os-x-10-10-sites/

### 補足説明
`http://localhost`にてブラウザからアクセスした場合、画面に表示されているのは、

```
/Library/WebServer/Documents/index.html.en
```

の中身である。
ここで、ディレクトリ階層を1つもぐって、

```
/Library/WebServer/Documents/hoge/index.html
```

というファイルを作成した場合、`http://localhost/hoge/`にアクセスすると、

```
Forbidden

You don't have permission to access /hoge/ on this server.
```

と表示される。`Forbidden`されないために、上述のようなApacheの設定ファイル修正が必要である。

# 3. その他メモ（自分用チートシート）
## 3-1. Apacheの起動・停止・再起動
▼Mac

```sh
sudo apachectl start
sudo apachectl stop
sudo apachectl restart
```

▼CentOS

```sh
sudo /etc/rc.d/init.d/httpd start
sudo /etc/rc.d/init.d/httpd stop
sudo /etc/rc.d/init.d/httpd restart
```

## 3-2. 設定ファイルのパス
▼Mac

```
/etc/apache2/httpd.conf
```

▼CentOS

```
/etc/httpd/conf/httpd.conf
```

## 3-3. ドキュメントルート
▼Mac

```
/Library/WebServer/Documents
```

▼CentOS

```
/var/www/html
```

## 3-4. httpd自動起動設定
▼Mac

```sh
sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
```

▼CentOS

```sh
chkconfig --list | grep httpd #設定の確認
sudo chkconfig httpd on #自動起動設定
```