MAMPでApacheが起動しない時のメモ

何が起きたのか、設定中に突然MAMPのApacheが起動しなくなった。
解決までの作業記録。

目標はローカル開発環境の構築で、実際まだ構築成功してないんだけど、とりあえずApacheが起動したところまででそれはもう大苦戦だったのでメモしておく。(いつもWindowsでXAMPP構築してるから楽勝なはずだったのに…. MACでMAMP構築したら色々ハマってしまってとりあえず大変だった)

構文エラーの解決

色々設定するために、Apacheのファイルを色々いじってしまったので、まずは構文チェックから。
下記コマンドでhttpd.confの確認。

そしたらこんな答えが。

どうやら、hostsに関するエラーらしく
557 ⇨ 127.0.0.1 localhost が設定されてないよ
558 ⇨ 127.0.0.1 PCname(自分のPCの設定名)が設定されてないよ
って意味らしい。

はー?なんだそれ。と思ってhostsを開いたら、確かに何故かdefaultのhosts設定が全部消えていた(泣)なんでだかは未だに原因不明だけどhostsの中身が全部消えるとか何事だったんだろう…..

仕方ないので自分で書き換え。
Macだと、まず「情報を見る」ダイアログからロックを解除して自分に権限付与しないといけないみたいね。しかもテキストエディットでの編集だとエラーになっちゃうらしい。別のエディタをつかわないといけないらしい。

そんなこんなでとりあえずhostsを直したらエラーは治った。
エラーが治ると下記コマンドがかえってくる。

やった!これで起動できるかな!!!
と、喜んだのもつかの間、やっぱり起動しない。

ターミナルからのApache起動・停止

MAMPのGUIからは起動しないので、ターミナルからApacheの起動を試みる
起動コマンドは下記

何のエラーが出ることもなく起動できてしまった!
でもMAMP側の画面をみるとやっぱり起動してない。。
試しに停止をしてみる

そしたらここでエラーが。

停止したいとかいってるけどそんなサービスねーよ、っていう意味らしい。
えーーー起動してなかったの!?ってびっくりだけど起動してなかったらしい。

 

ポートの衝突確認

ポートが原因だと気づくまでに、hostsを切り替えたり、httpd-vhosts.configの中身をいじったり、それはもう色々と数時間にわたる試行錯誤があったわけだけれども、なんとかポートが原因だということに気づく。

ポート表示させたくなかったから、Apacheポートには80番を指定してたのね。だからこれを8001とか8888とかに変えれば解決するだろうと思いきや、ポートを変えようとすると、これまたMAMP側のエラーで「変えられないよ!」って言われるorz
もう逃げ場がなくなって、多分埋まってるであろうポートを開放するべく確認にゆく。

まずは「control + スペースキー」でSpotlightから「ネットワークユーティリティ」を検索。Portscanの項目から、127.0.0.1をスキャン。

Apacheは起動してないんだから、80番ポートは開放されてるはずなのに、80番ポートの起動チェックにひっかかってしまった。これだーーー

ポート開放にいく

ぐぐって出てくるのは、ネットワーク共有をONにしてると、MacデフォルトのApacheが起動しちゃって80ポートが使えないよ、って記事ばかりなんだけど、私のパソコンは、ネットワーク共有は全部OFFになってるのね。

でも、原因はネットワーク共有だって言ってる記事しかみあたらなくて、もう完全にお手上げ状態。

 

そこでおかしいことに気づいた。
まったく同じ設定にしているはずの、もう一台のMacは、普通にMAMPからApache起動に成功してる。一体どういうことだと思って差異チェックをしてみると…..

Apacheが起動しない方のPCには、なんとかOSのバージョンアップデートが….!
OS変えたらApache動くとかないよなーと思いつつも、やれることは全部やったし、もう他にどうする手段もなかったので、とりあえずOSをアップデートしてみるとこに。

アップデート&再起動してみると

なんと!!!!!MAMPから普通にApacheが起動した!!!!!!

結果、原因はよくわからないものの、OSアップデートがあると80番ポートが使えなくなるんじゃないかという仮説。起動しなくなってから、ここまで6時間近くハマってたのに。。。こんなことが原因だったなんて泣

なんかおかしいとハマったら、やっぱり再起動してみるのは重要なのね。

 


2017.1.12 追記

ドキュメントルート変更時の落とし穴

また別のPCでMAMPの設定をしていたら、またApacheが起動しなくなった。
上に書いてある箇所は全部試してみたのにどうも起動しない。

apacheclt configtestも、エラーが出たり出なかったり不安定なんだけど、とりあえずMAMP起動中はSyntaxOKになるからおそらくどこもおかしくない。

そこで見つけた。
httpd.confのドキュメントルートのパスの、ディレクトリ名の中にスペースが入っている!!

確かに、はじめは指定ディレクトリの名前はスペース入りだったから、あとからスペースを削除して設定しなおしたんだけど、どうやら、一度スペースが入ってしまうと上書き設定されないらしい?

パスの問題だからかcomfigtestでもエラーはでないし、設定しなおした箇所だったからまさか上書きされてないとも思わないし、まさかの落とし穴でした。
ただファイルが開けないだけならパスを疑うものの、パスのスペースミスでApacheまで起動しなくなるのね。。。見つかってよかったよかった。