🚒
Ports are not available: listen tcp 0.0.0.0:80のエラーを解消
やりたかったこと
こちらの記事を参考に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.
と表示がされているので、エラー内容でググってみると
こちらの記事がヒットした。こちらを参考に、
$ 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コマンドが使えないとの事。
他に方法がないか探していると、
こちらの記事を発見。.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
無事成功しました。
参照資料
追記(2022/7/13)
以前こちらの記事を書いた際にはまだApacheの知識がなかったため上記のような解決をしましたが、単純にデーモンを停止させればよかったので、
sudo apachectl stop
こちらのコマンドで停止出来るかと思います。
macOSであればデフォルトでApache httpdがインストールされていて、apachectlコマンドについても使用できる状態です。
Discussion