LoginSignup
7
5

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-05-03

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は点滅してない)
スクリーンショット 2020-04-27 3.23.22.png

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

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

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

【自分メモ】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を再インストールするのが良いと思う。

7
5
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5