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で出力を検証します。

