MAMPとは
Macintosh, Apache, MySQL, PHPの略らしい。
簡単にウェブサーバー構築できるアプリケーションだという理解。まあ確かに自分でやるとApacheとかPHPとかそれぞれ調べてインストールして設定して面倒だしなあ…。
別々にインストールするよりもまとめてやった方がバージョンの違いとかで齟齬がないような気がしたので使ってみた。簡単だと思ったら意外につまづいたのでほぼ自分用備忘録です。あしからず。
環境
Mac OS Mojave 10.14.1
MAMP Version 5.3 (367)
インストールする
公式サイトからダウンロードしよう。
https://www.mamp.info/en/
インストーラがダウンロードできたら指示に従ってぽちぽちやったらインストール完了する。
大したことはないのであんまり詳しくは書かない。
設定する
これもいろんな人がわかりやすく書いてるからそんな説明しない。
このへんが参考になる。
https://qiita.com/kuro-wassan/items/1cb32995acc07a4b4cc6
筆者は複数サーバーを構築したかったのでこれも。
https://qiita.com/tsukishimaao/items/cab4caa065d901608856
ポート番号について
ポート番号はデフォルトで、Apache:8888 Nginx:8888 MySQL:8889
Set Web & ~のボタンを押すと、Apache:80 Nginx:80 MySQL:3336
多くのサイトではこちらの設定を適用することを推奨されている。
作ったサイトを表示するときのURLが上なら http://localhost:8888 、下なら http://localhost になるというくらいの違いしか今の所認識していない。
とりあえず指示に従って80の方にしてたらあとあとうまくいかなかったので後述します。
先に言うと、最終的にうまくいったのは、Apache:80 Nginx:7888 MySQL:3336でした。
apache起動しない問題
上記参照記事にしたがって設定してたら最初はうまくいったけどなぜか途中からApacheのみが起動しなくなった。(MySQLとCloudは起動する)
Start Serversボタンで起動しようとしたら、Apache couldn't be started. Please check your MAMP installation and configuration. というエラーを吐いてそれ以上の情報をくださらないので参った。
のでとりあえずエラー文をコピペしてググる。
段階 1
原因として考えられるのはMAMP内のapacheではなくMac標準のapacheとポート番号が競合しているという可能性。80番ポートを使用しているものが他にあるか確認するコマンドが以下。
netstat -an | grep *.80
なにかプロセスがあれば
kill <プロセス番号>
でキル。もしくはアクティビティモニタを起動してhttpdで検索、該当プロセスをキル。
で、動くはずなんだけどなぜか動かなかったのでさらにいろいろやってたら8888番ポートに戻せば起動できた。
段階 2
8888番ポートに戻したら戻しっぱなしではなくいろいろ設定を変更しなきゃならんらしい。
apache自体の設定は/Applications/MAMP/conf/apache/httpd.confにある。が、これはMAMPの設定(Preferences)をいじったら勝手にポート番号も変更してくれるのでいじらなくて大丈夫。(便利!)
問題はバーチャルホストの設定ファイル/Applications/MAMP/conf/apache/extra/httpd-vhosts.confである。こちらは手作業で変更しなきゃなのでポート番号変更したら忘れずにこっちも変更。
NameVirtualHost *:80
を
NameVirtualHost *:8888
に変更。さらに、
<VirtualHost *:80>
を
<VirtualHost *:8888>
に変更。
これでうまくいくはず!がうまくいかなかった…。
段階 3
いろいろ調べていたらApacheとNginxのポート番号は違う方がいいとのことだった。ちなみにMAMPでは同時に起動することはできないらしい。いろいろなサイトでなぜかNginxのポート番号を7888にするといいと書いてあったので7888にしてみた。紆余曲折あって一瞬このポート番号でうまくいったのですが結局起動できなくなったので段階4に続く。
最終的に7888じゃなくても起動するような気はするけどこれでうまくいっているのでそのままにしている。
段階 4
結論から言うと凡ミスでした。のでここは読まなくていいです。
httpd.confの設定をいじるときに、コメントアウトしてはいけない所までコメントアウトしていたらしい。しょーもない。
なので段階1だけで解決する人は解決すると思います。わざわざ8888番ポートに変えなくてもいいけどMac標準のApacheもそれはそれで使いたいひととかは変えてもいいんじゃないかなと思いました。
終わりに
しょうもない凡ミスが原因ではあったけど回り道して得たものもあるし結果オーライだったと思う。我々を悩ますエラーの多くはなんてことないタイプミスとかそんなんだと思います。タイピングは丁寧にやりましょう。
ここまででやっとウェブサーバー構築できたのでこれからいろいろ試してみたい。また発見があったら記事にできたらいいなあ。
Qiita初投稿なので至らない点があっても温かい目で見守ってもらえると幸いです。
(2019/10/10追記)
タイプミスがどうこうとか言っておきながらめちゃくちゃ誤字あったのので訂正しました。恥ずかし…。