Mac El CapitanのApacheを呼ぶ

## MacのApacheで昼食前に朝食を食べながら…

エル キャピタンって読むそうですね。知りませんでした。
ヨセミテ国立公園にあるそうです、エル・キャピタン。
知っている単語かなと頭を色々捻っていたのがバカみたい。
て言うか、ヨセミテもYOMIKATAわかんなかったじゃん。
もう疲れちゃった。

バージョン確認

```apache
ekaneko:backup$ httpd -v
Server version: Apache/2.4.18 (Unix)
Server built:   Feb 20 2016 20:03:19
ekaneko:backup$
```

前の記録[Mac YosemiteのApacheを呼ぶ - Qiita](http://qiita.com/TanukiTam/items/81a8722d3ae084c5466b)を見ると
Yosemiteは2.4系、Mavericksだと2.2系みたいだから同じで良いんじゃないかな。
今入っているのをそのまま使うつもり。

もっとバージョン確認（最初から動いてるやつ）
前回と大体同じ。

```shell-session
ekaneko:backup$ apachectl -V
Server version: Apache/2.4.18 (Unix)
Server built:   Feb 20 2016 20:03:19
Server's Module Magic Number: 20120211:52
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"
ekaneko:backup$
```

### /private/etc/apache2/httpd.conf:

変更内容だけ抜粋
同じ内容があればコメントアウトすること

```apache:httpd.conf
# モジュール有効化
LoadModule log_config_module libexec/apache2/mod_log_config.so
LoadModule log_debug_module libexec/apache2/mod_log_debug.so
LoadModule log_forensic_module libexec/apache2/mod_log_forensic.so
LoadModule logio_module libexec/apache2/mod_logio.so
LoadModule ssl_module libexec/apache2/mod_ssl.so
LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so
LoadModule php5_module libexec/apache2/libphp5.so

<Directory />
    Options All
    MultiviewsMatch Any
    AllowOverride All
</Directory>

DocumentRoot "/var/www"
<Directory "/var/www">
    Options All
    MultiviewsMatch Any
    AllowOverride All
    Require all granted
</Directory>

    DirectoryIndex index.html index.php

Include /private/etc/apache2/extra/httpd-vhosts.conf


Redirect 404 /favicon.ico
<Location /favicon.ico>
  ErrorDocument 404 "No favicon"
</Location>
```



### /private/etc/apache2/extra/httpd-vhosts.conf:

vhostsの設定

```apache:httpd-vhosts.conf
NameVirtualHost *:80


<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/var/www"
    ErrorLog "/private/var/log/apache2/localhost-error_log"
    CustomLog "/private/var/log/apache2/localhost-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerName appolo.test.loal
    DocumentRoot "/var/www/appolo"
    ErrorLog "/private/var/log/apache2/appolo.test.loal-error_log"
    CustomLog "/private/var/log/apache2/appolo.test.loal-access_log" common
</VirtualHost>
```

### /private/etc/apache2/extra/httpd-mpm.conf

```apache:httpd-mpm.conf
## #
## # The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
## #
## <IfModule !mpm_winnt_module>
## <IfModule !mpm_netware_module>
## LockFile "/private/var/log/apache2/accept.lock"
## </IfModule>
## </IfModule>
##
## #
## # Only one of the below sections will be relevant on your
## # installed httpd.  Use "apachectl -l" to find out the
## # active mpm.
## #
```

### /private/etc/hosts:

```shell-session:hosts
127.0.0.1	localhost appolo.test.loal
255.255.255.255	broadcasthost
::1             localhost
```

### /var/www:

ディレクトリは作ります
ログディレクトリも作ります
テスト用なので全部777です
すっとrootで作業してますが、1行目にrootになるおまじないを書いておきますｗ
要求されるパスワードは起動した時に入れる自分のパスワードです
あとは適当にやってください

```shell-session
MacMini:~ ekaneko$ sudo su -
MacMini:~ root# mkdir -p /var/www/appolo
MacMini:~ root# chmod -R 777 /var/www
```

適当にダミーファイル作ります

```shell-session:html
MacMini:~ root# echo aaa > /var/www/aaa.html
MacMini:~ root# echo '<?php phpinfo();' > /var/www/appolo/phpinfo.php
MacMini:~ root# chmod -R 777 /var/www
```

### テストと起動

```shell-session
# テストは通ったけど次のリリースからなんちゃらって言ってる
root# apachectl configtest
AH00548: NameVirtualHost has no effect and will be removed in the next release /private/etc/apache2/extra/httpd-vhosts.conf:19
Syntax OK
# 再起動
root# apachectl restart
# 確認（時間を確認かな）
root# ps aucx | grep httpd
_www             8726   0.0  0.0  2491364   1004   ??  S    11:40AM   0:00.00 httpd
root             8714   0.0  0.1  2493412  11576   ??  Ss   11:40AM   0:00.22 httpd
root#

```

これでつながった
[http://localhost/](http://localhost/)
[http://appolo.test.loal/](http://appolo.test.loal/)