2.

Laravel の開発サーバー起動|php artisan serve のポート指定と外部公開

編集
この記事の要点
  • 起動コマンドは php artisan serve。既定は http://127.0.0.1:8000
  • 停止は Ctrl + C。ポートを変えるなら --port=8001
  • 同じ LAN の別端末から見るには --host=0.0.0.0 が必要
  • 画面が古いまま/CSS が反映されないときは npm run dev も動かす(Vite)
  • 本番では使わない。PHP 内蔵サーバーは単一プロセスで、同時アクセスに耐えない

基本

cd /path/to/project
php artisan serve
INFO  Server running on [http://127.0.0.1:8000].

Press Ctrl+C to stop the server

ブラウザで http://127.0.0.1:8000 を開きます。プロジェクトのルート(artisan があるディレクトリ)で実行してください。別の場所だと Could not open input file: artisan になります。

よく使うオプション

オプション意味
--port=8001ポートを変える(既定 8000)
--host=0.0.0.0すべてのネットワークインターフェースで待ち受ける
--host=192.168.1.10特定の IP だけで待ち受ける
--tries=10ポートが埋まっていたら +1 して再試行する回数
--no-reload.env を変えても再起動しない
php artisan serve --port=8001
php artisan serve --host=0.0.0.0 --port=8000       # 別端末から見る
php artisan serve --host=0.0.0.0 --tries=5

別の端末・スマホから開く

# 1. サーバーを全インターフェースで起動する
php artisan serve --host=0.0.0.0

# 2. 自分の IP アドレスを調べる
ipconfig            # Windows
ip addr show        # Linux
ifconfig            # macOS

スマホのブラウザで http://192.168.1.10:8000 のように開きます。つながらない場合は次を確認してください。

  • ファイアウォールがポート 8000 をふさいでいないか(Windows Defender は初回に確認を出します)
  • 同じ Wi-Fi / LAN につながっているか
  • .envAPP_URL を実際の URL に合わせる(リンクやアセットの URL 生成に使われる)
APP_URL=http://192.168.1.10:8000

ポートが使われているとき

Failed to listen on 127.0.0.1:8000 (reason: Address already in use)
# 使っているプロセスを調べる(Windows)
netstat -ano | findstr :8000
taskkill /PID 12345 /F

# Linux / macOS
lsof -i :8000
kill -9 12345

# 別のポートで起動する
php artisan serve --port=8001

前回 Ctrl + C で止め損ねたプロセスが残っているのが典型的な原因です。

フロントエンドのビルドも動かす

# ターミナル 1
php artisan serve

# ターミナル 2
npm run dev

Laravel 9 以降は Vite を使います。npm run dev を動かしていないと、@vite ディレクティブが次のエラーを出します。

Vite manifest not found at: /path/public/build/manifest.json

本番と同じ状態を確認したいときは npm run build で成果物を作ります。Laravel 11 以降なら composer run dev の 1 コマンドで、サーバー・キュー・ログ・Vite をまとめて起動できます。

他の起動方法

方法特徴
php artisan servePHP 内蔵サーバー。追加インストール不要で最も手軽
Laravel Sail./vendor/bin/sail upDocker。MySQL / Redis もまとめて動く
Laravel HerdMac / Windows 向け。.test ドメインで自動公開
Valet(macOS)ディレクトリを置くだけで公開される
Nginx + PHP-FPM本番はこれ

本番で使ってはいけない理由

php artisan serve が使う PHP 内蔵 Web サーバーは、公式ドキュメントでも開発用と明記されています。

  • 単一プロセスで動くため、1 つのリクエストが遅いと他が待たされる
  • 静的ファイルの配信が遅く、キャッシュ制御も持たない
  • HTTPS に対応していない
  • 異常終了しても自動で再起動しない

本番は Nginx / Apache + PHP-FPM で公開し、ドキュメントルートを public/ ディレクトリに向けます。手順は 本番サーバーへのデプロイ方法 を参照してください。

うまく動かないとき

症状対処
Could not open input file: artisanプロジェクトのルートに cd する
Address already in use残ったプロセスを止めるか --port を変える
500 エラー・白画面storage/logs/laravel.log を見る
No application encryption keyphp artisan key:generate
設定を変えたのに反映されないphp artisan config:clear(本番は config:cache を忘れずに)
ルートが 404 になるphp artisan route:list で登録を確認する
storage の書き込みエラーstorage/bootstrap/cache/ の権限を確認する

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. 新規プロジェクトの作成
  2. サーバーの起動
  3. マイグレーションファイルの作成
  4. マイグレーションの実行(migrate)
  5. モデルの作成
  6. 全ルートを確認
  7. Laravelのバージョンの確認方法

最近更新/作成されたページ