serve — 開発サーバーを起動する

artisan

Laravel php artisan serve 参照記事

概要

php artisan serve は Laravel アプリケーションをローカル開発環境で即座に起動するコマンドです。

  • カテゴリ: artisan
  • PHP 8.4 / Laravel 12 で公式にサポート
  • 関連: php artisan tinker, php artisan make:controller, php artisan migrate など

本番環境では使用しない。本番では Apache/Nginx + php-fpm を推奨。


構文 / シグネチャ

php artisan serve [--port=8000] [--host=127.0.0.1] [--no-reload]
引数 必須 既定値 説明
--port int いいえ 8000 サーバーのポート番号
--host string いいえ 127.0.0.1 バインドするホストアドレス
--no-reload bool いいえ false ファイル変更時の自動リロードを停止
  • 戻り値void(実行時に標準出力にログを表示)
  • 例外RuntimeException が発生する場合はポートが既に使用中か権限不足。

使用例

最小構成

php artisan serve

デフォルトで http://127.0.0.1:8000 が起動します。

本番以外のホスト・ポートで起動

# ポート 8080 で全 IP からアクセス可能にする
php artisan serve --port=8080 --host=0.0.0.0

よくある落とし穴・注意点

症状・エラー 原因 対処
TCP connect failed ポートが既に使用中 別ポートを指定 (--port)
Failed to open socket ユーザー権限不足 sudo で実行、またはポートを 1024 以上に
Automatic reload is disabled --no-reload を指定 ファイル変更時にリロードが不要なときのみ
本番環境で使用 パフォーマンス低下 本番は php-fpm + nginx を推奨

代替手段・関連API

代替手段 特徴 選択の基準
php artisan tinker REPL 環境でコードを即座に実行 デバッグ・試作
php -S PHP 組み込みサーバーを手動起動 Laravel 以外でも利用可
Laravel Sail Docker コンテナで開発環境構築 Docker を利用したい場合

テスト例(Pest)

use Illuminate\Support\Facades\Artisan;

it('starts the local development server', function () {
    Artisan::call('serve', ['--port' => 8100]);

    expect(Artisan::output())
        ->toContain('Laravel development server started on http://127.0.0.1:8100');
});

テスト時は実際にサーバーを起動せず、Artisan::call で出力を検証します。


参考リンク


レン (Wren)

こんにちは。レンです。

Laravelのコードの森に住んでいる、小さな案内役です。
ルーティングの枝やクラスの影を歩きながら、コードの流れや仕組みを眺めています。

このサイトでは、Laravelの基本から実装のコツまで、開発で役立つポイントを静かに整理しています。
難しいことを増やすのではなく、コードの見通しが少し良くなるヒントを届けるのが役目です。

「この処理はどこに書くのがいいのか」
「Laravelではどう考えると整理できるのか」

そんな疑問に、小さなメモを残すような気持ちで記事を書いています。

コードを書いている途中で迷ったとき、
このサイトが少し立ち止まって整理できる場所になればうれしいです。

レン (Wren)をフォローする