MAMPのApacheが接続されない問題


MAMPを使用していたら、突然おかしくなりました(MAMPの問題はちょくちょくある)。

今回、Apacheが接続されずにだいぶ苦労してたのですが、
試せる事は全部やったので、何を実際に行ったのかプロセスを書いていきます。

ググって全部試した事、インフラ系に詳しい方に教えていただいた事をまとめてるので、
どれかが皆さんの問題を解決する答えになっていたら幸いです。

環境

MAMP

Apache
PHP : 7.4.2
Mysql : 5.7.26

エラー内容


Apache couldn't be started because port 80 is in use by some other software.

※注意
私のPCで使用してるMAMPは
Apacheのポート番号を80にして
httpd.cofのListenを80にして繋げています。

最初はポート80を他でも使用してるよってエラーが出ました。
この時点で、既存のファイルを変更しても通常通り動く。
けど、新規でファイルを追加すると反映されない。

ローカルのURLである、http://localhost:10001/ が表示され、ファイル変更しても反映される。

"80のポートを他にも使ってるやつおるで、変えてくれ〜セキュリティ的に〜"みたいな感じで新規ファイルが反映されなくなっているのか(予想)

ちなみにこの時点では、

Apache Server
MySQL Server
Cloud

どれも点滅してました。(Stop Serverは点滅してない)

調べてみて、最初に出てきた記事から進めます。

ターミナルで同じポートで動いてるやつを消す

こちらの方の記事を参考に、同じようにターミナルからコマンドを叩いてみました。

【自分メモ】MAMPが起動しない時の対処方法
https://qiita.com/xiaoxiao/items/9e5686a4b02b34929c8b

このやり方は、自分のPCで同じポートを使用しているアプリやサイト?などがある場合、その接続を削除できる。

ポートがかぶってると、エラー起きるんだって。へぇ〜。

$ kill -9 XXXX 

ちなみに、killのコマンドとkill -9の違いはこんな感じらしい。
kill -9はあまり推奨されてないらしい。(補足)

参考
https://www.atmarkit.co.jp/ait/articles/1708/04/news015.html

ポート80を削除したので、

これで治るかな〜と思ったら、エラーが変わったwなんでやw

しかも、
Apache Server
MySQL Server
Cloud
のCloud以外は全部点滅しない。
ファイルを開いても、何も見れないので、Apacheの接続ができなくなった。
http://localhost:10001/ が表示されない

Apache couldn't be started. Please check your MAMP installation and configuration.

昔、mysql動かなくなった事があって、MAMPを再インストールしたので、またやり直しか、、、と焦りました。

まさにこの人と同じような挙動でした。
https://www.webdesignleaves.com/pr/plugins/mamp_error_apache.html
(この方は諦めて再インストールしてました)

色々調べて、試しました。
できなかったけど、試した事全部書きます。

envvarsファイルを編集

だめでした〜。

macのApacheを停止、再起動

Apacheを起動するには

sudo apachectl start

停止したければ、

sudo apachectl stop

再起動したければ、

sudo apachectl restart

参考リンク
https://qiita.com/shuntaro_tamura/items/bdabcb77926dc92617b1
https://stackoverflow.com/questions/27387922/mamp-apache-couldnt-be-started-because-port-is-in-use-and-can-t-connect-to

だめでした〜。。

Nginxはどうよ

ApacheがダメならNginxはどうよ。
問題があるのがどこの部分かを切り分けたい。

MAMPの設定をNginxに変えてみた。

動くやんけ。Nginxは普通に動きました。
ということは、問題はApacheの中。どこだ?

ポート変更

私のやり方での設定だと、ApacheとNginxのポート番号が80で同じ。
今更だけど、ここ変えてみる?
そもそもポート番号が同じなのはあまり良く無い。(らしい)

①トライ
Apache→80
Nginx→8888
にした。

変わらんやんけ。

②トライ
Apache→8888 conf→8888
Nginx→80
にした。

変わらんやんけ。

これでもダメで、これ以上方法が見当たらなかったので、エラーログを見ることに。

エラーログを見る

/Applications/MAMP/logs/apache_error.logの中のエラーログをみました。

エラーログの見方
https://www.sakura-vps.net/apache-error-log/

しかし、そもそも
client denied by server configuration
File does not exist
のエラーが、最初から(MAMPをインストールした時から)発生してて、ひどいときは数分単位でエラーログが吐き出されてた。なんも参考にならん。
最初から設定が良くなくて、今おかしくなったのか?と思い、さらに原因が不明に。

一旦apache_error.logの中を全部消してみた。
今はApacheが動いてないからか、apache_error.logに何も追加されない。

httpd.confファイルの中身を全部コメントアウトにしても、エラーログは更新されず。
もはや、一部でもダメ。
confファイルがそもそも死んでる問題?

conf ファイルにシンタックスエラーがないか確認

sudo /Applications/MAMP/Library/bin/apachectl configtest

https://qiita.com/bezeklik/items/990bed2e7e529584fa57
結果

Syntax OK

conf、動いてるねぇ。
(まぁこれもあんま信用できないけど)

httpd.confの中身変えてみたらどうよ
→全部コメントアウトしてみた

httpd: Could not reliably determine the server's fully qualified domain name, using mynameMacBook-Pro.local for ServerName

おっ、反映されてる。
一応、コメントアウト+<だけ

httpd: Syntax error on line 605 of /Applications/MAMP/conf/apache/httpd.conf: /Applications/MAMP/conf/apache/httpd.conf:605: <> was not closed.
myname@mynamenoMacBook-Pro ~ % sudo /Applications/MAMP/Library/bin/apachectl start

ほ〜〜〜(?)

httpd.confを変更して、apache_error.logをみたときはエラーログは出ないけど、
ちゃんと動いてる事がわかった(?)

次はコメントアウトを解除して元の設定に復元し、

sudo /Applications/MAMP/Library/bin/apachectl start 

(48)Address already in use: make_sock: could not bind to address [::]:80
(48)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

それは正しい挙動だし、設定ファイルは、間違いなく使われているわ。

confファイルの
Listen 80を8080に変更した上で、
MAMPの設定も8080で動かしてみて

lsof -i :80

これ打ったら、80のポートを使用してる奴が見えるんよ。

見えるけど、結局振り出し(最初と同じ)に戻ったので、一旦ここで諦め。

ちなみに、ポートを80じゃなくて他の数字にしたら動いた。
(当たり前かw)

翌日

上司にこれを送ってもらいました。
https://do-zan.com/mac-search-using-port/
https://minatokobe.com/wp/os-x/mac/post-54766.html
https://www.atmarkit.co.jp/ait/articles/0207/20/news003.html

lsof -i :80
sudo lsof -i:80

sudoすると、ポート80を使用してるアプリケーションが見つかった!!!まじで?!!
sudoすることをおすすめします。

確認した所、
loginwindowとtalagentのhttpdのポートとかぶっているようで。

loginwindowは消せないので、諦めました。

(結局w)

結果

私は原因が良くわからず、やれることはいろいろやりました。
ここまでやってもだめだったら、普通にMAMPを再インストールするのが良いと思う。