🚒

Ports are not available: listen tcp 0.0.0.0:80のエラーを解消

2021/06/29に公開

やりたかったこと

https://qiita.com/rei67/items/e4a9a020c4fc91ffb1a2
こちらの記事を参考にLaradockでLaravel+Docker環境構築をしたかったが、

Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
WARNING: Image for service nginx was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating laradock_mysql_1            ... done
Creating laradock_docker-in-docker_1 ... done
Creating laradock_workspace_1        ... done
Creating laradock_php-fpm_1          ... done
Creating laradock_nginx_1            ... error

なぜかnginxがエラーになっている。

また、

ERROR: for laradock_nginx_1  Cannot start service nginx: Ports are not available: listen tcp 0.0.0.0:80: bind: address already in use

ERROR: for nginx  Cannot start service nginx: Ports are not available: listen tcp 0.0.0.0:80: bind: address already in use
ERROR: Encountered errors while bringing up the project.

と表示がされているので、エラー内容でググってみると

https://qiita.com/miriwo/items/6eca88bea7d02e2a07c6
こちらの記事がヒットした。こちらを参考に、

$ sudo lsof -i -P | grep ":80"

と入力すると、

httpd      573           _www    4u  IPv6 0x39e98200b8c873b7      0t0    TCP *:80 (LISTEN)

確かに80番ポートをalready in use している。

$ sudo service httpd stop

sudo: service: command not found

serviceコマンドが使えないとの事。

他に方法がないか探していると、
https://meow-memow.hatenablog.com/entry/2020/09/12/153016
こちらの記事を発見。

.envを編集し、ポート番号を変えている。その手があった。

.envを編集後、

$ docker-compose up -d nginx

laradock_docker-in-docker_1 is up-to-date
laradock_workspace_1 is up-to-date
laradock_php-fpm_1 is up-to-date
Recreating laradock_nginx_1 ... done

無事成功しました。

参照資料
https://qiita.com/rei67/items/e4a9a020c4fc91ffb1a2
https://meow-memow.hatenablog.com/entry/2020/09/12/153016

追記(2022/7/13)

以前こちらの記事を書いた際にはまだApacheの知識がなかったため上記のような解決をしましたが、単純にデーモンを停止させればよかったので、

sudo apachectl stop

こちらのコマンドで停止出来るかと思います。
macOSであればデフォルトでApache httpdがインストールされていて、apachectlコマンドについても使用できる状態です。

Discussion