PHP

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/

になってた。ダサい。

.htaccessindex.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 にリダイレクトされてた。
RouteServiceProviderHOME 定数が無かったため、どこかで route('dashboard') が直書きされてる模様。

→ これは今後リファクタリング予定。


✅ 今日の学び(まとめ)

  • Laravelは本番環境と開発環境の差異に注意(PHP / Vite)
  • @vite はVPSやNode.jsが使える環境で活きる。Xサーバーでは要ビルド済みCSS。
  • デプロイ時は .htaccessindex.php の扱いが超重要。
  • デプロイ先でも Artisan コマンドやマイグレーションが使えると超快適。

🧭 感想

ついにLaravelアプリを「公開」できた。
Docker開発 → Xサーバー反映まで、ゴリ押しでも通せたのは自信になる。

Viteと相性悪い部分はあったが、静的ビルドでなんとかなったのも経験。
エラーに出会った数だけ、俺は強くなる。