Laravel × Docker でローカル開発していたアプリを、本番環境(Xserver)にデプロイ!

■ その1:Laravelが動かない!原因はPHPのバージョン
composer install
したら大量のエラー。
理由はXサーバーのPHPが「8.0」、俺のLaravelアプリが「8.2以上」指定だったから。
→ .htaccess
に追記してPHP8.2へ切り替え。
AddHandler application/x-httpd-php82 .php
勝利の一手。
■ その2:マイグレーション失敗、犯人は「user_idの重複」
php artisan migrate
→ 最後のマイグレーションで user_id
が重複してエラー。
同じカラムを2度追加しようとしてた。
→ 問題のマイグレーションファイルを削除して migrate:fresh
でやり直し。
php artisan migrate:fresh
再起動完了。テーブルは無事に作成された。
■ その3:URLがダサい /public
問題
初期状態では
https://lazygenius.dev/laravel-taskapp/public/
になってた。ダサい。
→ .htaccess
と index.php
を調整して、/public
をルートとして動かす構成に変更。
デプロイらしくなってきた。
■ その4:Tailwind CSS が適用されない!
@vite(['resources/css/app.css'])
が効かず、画面が寂しい。
→ 原因はXサーバーがViteの開発サーバー(http://[::1]:5173/)にアクセスできないため。
→ 解決策:
<link rel="stylesheet" href="{{ asset('public/build/assets/app-xxxx.css') }}">
手動でビルド済みCSSを読み込んで対応。
おしゃれ復活。
■ その5:ユーザー登録後、/dashboard
に飛ぶ仕様
気づいたら登録後は dashboard
にリダイレクトされてた。RouteServiceProvider
の HOME
定数が無かったため、どこかで route('dashboard')
が直書きされてる模様。
→ これは今後リファクタリング予定。
✅ 今日の学び(まとめ)
- Laravelは本番環境と開発環境の差異に注意(PHP / Vite)
@vite
はVPSやNode.jsが使える環境で活きる。Xサーバーでは要ビルド済みCSS。- デプロイ時は
.htaccess
やindex.php
の扱いが超重要。 - デプロイ先でも Artisan コマンドやマイグレーションが使えると超快適。
🧭 感想
ついにLaravelアプリを「公開」できた。
Docker開発 → Xサーバー反映まで、ゴリ押しでも通せたのは自信になる。
Viteと相性悪い部分はあったが、静的ビルドでなんとかなったのも経験。
エラーに出会った数だけ、俺は強くなる。