# Laravel Address already in use の原因
Laravel で開発やっています。いつも php artisan serve で 8000 ポートのhttp://127.0.0.1:8000開発環境立ち上げていますが、突然Failed to listen on 127.0.0.1:8000で Address already in use が出ました。
$ php artisan serve
Laravel development server started: http://127.0.0.1:8000
[Mon Sep 6 14:45:22 2021] Failed to listen on 127.0.0.1:8000 (reason: Address already in use)
windows 環境使う時は問題なかったが、Mac 環境が原因?
とりあえず 万能な再起動しても問題解消しませんので、lsof コマンドでポート利用状況確認
lsof コマンド
lsof は LiSt Open Files の略で開いているファイル群のプロセスを列挙するという意味
$ lsof -i:8000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Code\x20H 1198 user_xxx 32u IPv4 0xxxxxxxxxxxxxxxxx 0t0 TCP localhost:irdmi (LISTEN)
プロセス ID が 1198 で Code\x20H がそのポートをつかっているようですね。
Code\x20H ってなに?
プロセス ID で利用しているアプリを調べると、Code\x20H は Skype に使われていることがわかりました。
$ ps d | grep 1198
745 ?? S 0:00.02 /Applications/Skype.app/Contents/Frameworks/Electron Framework.framework/Helpers/chrome_crashpad_handler --no-rate-limit --monitor-self-annotation=ptype=crashpad-handler --database=/Users/user_xxx/Library/Application Support/Microsoft/Skype for Desktop/Crashpad --metrics-dir=/Users/user_xxx/Library/Application Support/Microsoft/Skype for Desktop --url=appcenter://generic?aid=590a6ee7-ae5b-4061-8f24-655aa36fc84f&iid=1cefaace-bd33-4c34-20a2-78b91198e1fc&uid=1cefaace-bd33-4c34-20a2-78b91198e1fc --annotation=_companyName=Skype --annotation=_productName=skype-preview --annotation=_version=8.75.0.140 --annotation=prod=Electron --annotation=ver=12.0.15 --handshake-fd=28
1963 s000 S+ 0:00.00 grep 1198
なるほど、skype が 8000 番ポート先に使っているため、Laravel が後から使おうとして Failed to listen on で Address already in use エラーってことですね
解決法
該当プロセスを kill します。skype 起動したままだとこれで聞かないですが、skype 閉じる必要があります。
$ kill -9 1198
php artisan serve 実行したら、問題解決!
# 参考に Skype 以外に可能性
8000 番ポートを調べましたが、VS Code が 9000 ポート、27741 ポートや 9229 ポートを占拠する記事もありました。