Laravelのartisanでサーバを立ち上げた時にプライベートIPでアクセスできない問題と、その対処法
以前ハマったことを備忘を兼ねてメモです。
LaravelでPHPのビルトインサーバを立ち上げる
サーバサイドでLaravelを使っている場合、ローカルでWebサーバの設定をしなくても以下のコマンドでPHPのビルトインサーバを立ち上げてページを確認することができます。
$ php artisan serve
デフォルトだとlocalhost:8000
でサーバが起動しますが、オプションを付けるとポートを変更することもできます。
以下のコマンドで起動すればポート8080を使用できます。
$ php artisan serve --port 8080
プライベートIPでのアクセスができない問題
基本はlocalhost:8000
へのアクセスで一切問題ないのですが、自分のローカル環境の状態を他のデバイスから見たくなったりすることもあります。
例えば同じ現場での複数人の作業時や、スマホでの表示確認の場合などです。
そんな時はプライベートIP(例えば192.168.0.3:8000
)へアクセスしたいのですが、デフォルトの設定で起動するとホスト名がlocalhost
で固定されてしまうのでプライベートIPでアクセスすることができません。
プライベートIPでアクセスする方法
PHPのビルトインウェブサーバーのドキュメントに以下の記述があります。
ウェブサーバーを、任意のインターフェイスからポート 8000 でアクセスできるようにするには、このようにします。
$ php -S 0.0.0.0:8000
これにならって、artisanコマンドのオプションでホスト名を以下のように0.0.0.0
にしてあげると、プライベートIPでアクセスが可能な状態でサーバが起動します。
$ php artisan serve --host 0.0.0.0
この方法だと任意のインターフェイスからアクセス可能にしてくれるので、プライベートIPはもちろん、localhost:8000
からでもアクセスすることができます。
これで無事解決できました。