MAMPのインストール＆初期設定＋αをしてみる

Gitでサイト構築時の確認環境のため、初めてローカル環境を作ることになりました。
諸々調べたのですが、各所に情報が散らばっているのが面倒だったので、インストール時に必要そうなことをまとめておきます。

続きを書きました。（2020/04/10）
[MAMPのSSL対応 / PHPのバージョン変更方法](https://qiita.com/shiki_neki/items/1bb6762c0e54df606e51)


#インストール
[MAMP公式ページ](https://www.mamp.info/en/downloads/)からOSに合わせてダウンロード。
あとはインストローラーにしたがってインストールしてください。
![スクリーンショット 2019-06-25 13.00.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/f887e298-c9b2-6fcf-8f27-9fc9b2c7f037.png)

MAMPとMAMP PROが同時にダウンロードされてしまうので、
インストール後、不要な方をアンインストールしたほうが迷わなくていいと思います。

#初期設定
MAMPを起動します。
アプリケーション > MAMPのフォルダ内に入っているので、ちょっとわかりにくいですが、灰色のゾウさんです。

MAMPを立ち上げたら、上部のメニューバーより MAMP > Preferencesを選択して設定画面を開いてください。
![スクリーンショット 2019-06-25 13.08.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/263a0e5d-718c-2b15-fa52-39798c3280fa.png)


##起動・終了時の動作
![スクリーンショット 2019-06-25 13.09.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/4c5dd52c-bf5a-2c8d-b193-bafe30b01deb.png)

###各項目
**起動時**
- サーバーを起動する
- アップデートを確認する
- サーバーを立ち上げた際にWebStartページを開く

**終了時**
- サーバーを停止する

必要なものにチェックを入れて[OK]を押してください。

##ポートの設定
![スクリーンショット 2019-06-25 13.15.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/57c0be24-79c8-9b7a-6560-e9671dfc7f5f.png)
初期設定ではこのようになっているので、「Set Web & My SQL ports to 80 & 3306」をクリックして変更してください。

![スクリーンショット 2019-06-25 13.16.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/549eba45-26ba-bf14-01e3-217e963ae787.png)
これで、ブラウザでアクセスするURLが「[http://localhost:8888/](http://localhost:8888/)」 から「[http://localhost/](http://localhost/)」に変更されます。

##PHPの設定

![スクリーンショット 2019-06-25 13.27.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/47a6f37b-25dc-f91a-c364-968ac7c20236.png)
PHPのバージョンとキャッシュが設定できます。
ひとまずはこのままでいいと思います。

##Webサーバの設定
![スクリーンショット 2019-06-25 13.29.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/498076bc-4894-31e7-e649-bb31f09987aa.png)
サーバーの種類とドキュメントルートの設定ができます。
こちらも、何もなければこのままで大丈夫です。


#タイムゾーンの設定
次にphp.iniからタイムゾーンの設定を行います。
初期設定ではドイツのベルリンになっているので、日本時間に変更します。

Applications > MAMP > bin > php > php0.0.0 > conf　内の「php.ini」をいじります。
PHPのバージョンが複数あるので、先ほど設定したバージョンのものか確認してください。
![スクリーンショット 2019-06-25 13.39.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/b00e75dc-ef2d-5133-2024-9bb0c536dc44.png)

「php.ini」をコピペ、「php.ini.org」などとしてバックアップをとりましょう。
エディターで「php.ini」を開き、910行目あたりを

```
;date.timezone = "Europe/Berlin"
```

から

```
date.timezone = "Asia/Tokyo"
```

に変更、保存してください。
このとき、行頭のセミコロンを残すとコメントアウトになりますので、必ず削除しましょう。
※php.iniを編集した場合、必ずサーバーを再起動してください。

確認のため、以下のphpファイルを作成し、localhostに配置、確認してみましょう。

```index.php
<?php
echo date("Y-m-d H:i:s",strtotime("now"));
?>
```
日本時間が表示されれば成功です。

#バーチャルホストの設定
複数案件を同時進行する場合が多いと思うので、バーチャルホストの設定をしてマルチドメインのローカル環境を作ります。

##事前準備
先ほど設定したドキュメントルート内に２つのフォルダをつくり、それぞれに内容の違うindex.htmlを配置します。
![スクリーンショット 2019-06-26 11.38.25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/9a2a8343-9679-44bd-68a0-0628d68bd001.png)

##Apacheの設定ファイルの編集
Applications > MAMP > conf > apache 内の「httpd.conf」をエディターで開きます。
575行目あたりの

```
#Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
```

を

```
Include /Applications/MAMP/conf/apache/extra/httpd-vhosts.conf
```

と書き換えます。
行頭の＃はコメントアウトなので、これでextra内の「httpd-vhosts.conf」を読みにいく設定が有効になります。

次に該当の「httpd-vhosts.conf」ファイルを編集します。
Applications > MAMP > conf > apache > extra > httpd-vhosts.conf

27行目以降に「\<VirtualHost *:80\>〜\</VirtualHost\>」で囲まれた設定例が２つあるので、
行頭に#をつけて、これらをコメントアウトします。

```
#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host.example.com
#    DocumentRoot "/Applications/MAMP/Library/docs/dummy-host.example.com"
#    ServerName dummy-host.example.com
#    ServerAlias www.dummy-host.example.com
#    ErrorLog "logs/dummy-host.example.com-error_log"
#    CustomLog "logs/dummy-host.example.com-access_log" common
#</VirtualHost>

#<VirtualHost *:80>
#    ServerAdmin webmaster@dummy-host2.example.com
#    DocumentRoot "/Applications/MAMP/Library/docs/dummy-host2.example.com"
#    ServerName dummy-host2.example.com
#    ErrorLog "logs/dummy-host2.example.com-error_log"
#    CustomLog "logs/dummy-host2.example.com-access_log" common
#</VirtualHost>
```

その下に、自分の設定したいルートフォルダを追加します。

```
<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs"
    ServerName localhost
</VirtualHost>
 
<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/hoge"
    ServerName hoge
</VirtualHost>
 
<VirtualHost *:80>
    DocumentRoot "/Applications/MAMP/htdocs/fuga"
    ServerName fuga
</VirtualHost>
```

- DocumentRoot：先ほど準備したそれぞれのドキュメントルート
- ServerName：設定したいドメイン名

編集後、サーバーを再起動してください。

##hostsファイルの編集
次にOS内のhostsファイルを編集します。
通常は隠しファイルになっていて、管理者権限が必要なため、ターミナルでsudoを使うのが楽なようです。

```
$ sudo vi /private/etc/hosts
```

パスワードを聞かれるのでOSのユーザーパスワードを入力してください。
※ターミナルではパスワードが入力されても、画面上変化はありません。

「hosts」ファイルの内容が表示されるので、「a」キーを押してインサートモードにします。
「127.0.0.1 localhost」の下に下記を追加してください。

```
127.0.0.1       hoge
127.0.0.1       fuga
```

「esc」キーを押してインサートモードを終了
「:wq」と入力して「リターン」キーを押すと、変更を保存の上、ファイルを閉じます。

これで「[http://localhost/](http://localhost/)」「[http://hoge/](http://hoge/)」「[http://fuga/](http://fuga/)」にアクセスすると、先ほど設定したドキュメントルートにアクセスできるようになります。
それぞれ設定したindex.htmlが表示されるか確認してみてください。

###ターミナルを使いたくない場合
ターミナルに触りたくない場合、エディターでも編集できます。

まずは適当なフォルダで隠しファイルを表示させるように切り替えましょう。
「command + shift + .」で切り替えができます。

隠しファイルを表示させるようにしたら、
Macintosh HD > private > etc　内の「hosts」ファイルをエディターで開いてください。

編集しようとすると、ロックがかかっているためファイルが複製されますが、そのまま編集し、わかりやすい場所（デスクトップなど）に「hosts.txt」として保存します。
![スクリーンショット 2019-06-26 12.44.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/416523/ccf0d0f0-2383-eb26-494b-318ddf667a1c.png)

保存したファイルの名前を変更し、「hosts」とします。
それをFinder上で　Macintosh HD > private > etc　に配置すると、ポップアップが出てくるので、「認証」を押してください。
その後、パスワードを求められるので入力して完了です。

これで「[http://localhost/](http://localhost/)」「[http://hoge/](http://hoge/)」「[http://fuga/](http://fuga/)」にアクセスして、それぞれ設定したindex.htmlが表示されるか確認してみてください。

#.htaccessの有効化
ssiを使用する場合やWordpressなどで必要なので、最初から有効にしておきます。

Applications > MAMP > conf > apache 内の「httpd.conf」をエディターで開きます。
※さっきバーチャルホスト設定のときにいじったファイルです。

204行目あたりにある

```
<Directory />
    Options Indexes FollowSymLinks
    AllowOverride none
</Directory>
```

を

```
<Directory />
    Options Indexes FollowSymLinks
    AllowOverride All
</Directory>
```

に書き換えてください。
これで.htaccessが有効になります。

一部のディレクトリにのみ有効化したい場合は

```
<Directory "ディレクトリのパス">
    Options Indexes FollowSymLinks
    AllowOverride All
</Directory>
```

とすることで、一部のディレクトリのみ有効化もできます。

#引用・参考
MAMPの初期設定 - MAMPの使い方（[https://pc-karuma.net/mamp-settings-mac/](https://pc-karuma.net/mamp-settings-mac/)）
MAMPで複数ドメインを運用する（[http://do-wp.com/virtual-hosts-on-mamp/](http://do-wp.com/virtual-hosts-on-mamp/)）