0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel11とFilamentでサブディレクトリにインストールした時に撃破された話

Last updated at Posted at 2025-04-13

ロリポップサーバーにWEBアプリを作成する案件をGETした♪
当初は、管理画面の指示が無かったので管理画面無しで開発は進めていた。
たぶん必要だろうな・・・と思いつつも進めていたところ、
納品チェックでやはりデータの編集・削除できるようにしてほしいと言われたw
やっぱりねw

こんな事もあろうかと、Laravelで作成してたので管理画面は1時間もあれば出来るだろうと思い承諾。

※詳しいLaravelのインストールとFilamentのインストールは、私より詳しく書いている人がいるのでそれを参考にしてください。

Filamentを導入してみる

早速、composerでFilamentをインストールしてpaneladminに設定してユーザーを作成。
ログイン画面も無事表示された。

メールアドレスとパスワードを入力して・・・と
ん? 何かおかしい。
パスワードが通常はマスクされて表示されるところが、なぜかマスクされずに平文で表示されている!?

まさかね・・・と思いつつログインボタンを押してみると、
「The POST method is not supported for route admin/login. Supported methods: GET, HEAD.」
というエラーが発生!

AIにエラーコードをそのままぶち込んで聞いてみたら、web.phpにrouteを書けと出てくるが、
それを入れても全然違うエラーが勃発して絶望。

別環境で検証してみた

とりあえず、CohonaでLaravel環境を立ち上げて別環境で検証してみると……
あれ? 普通に動くしw

まさかと思い、検証環境でサブディレクトリにコピーして動作させてみると、
見事、同じ現象が再現!

原因が判明!

そう、ロリポップサーバーにインストールした場所は、
https://デフォルトドメイン/app/public だったのです。

今回は先方からドメインの提供が無く、デフォルトドメインで構築することになっていました。
※ここまでで、他の案件も同時進行だったこともあり、なんと5日を要した……

解決方法

ここからは解決が早かったです。

.env に以下を追加:

APP_SUBDIR=app/public

そして、web.php に以下を追加:

// サブディレクトリにインストールした場合
// ルートの場合は消す
Livewire::setScriptRoute(function($handle) {
    return Route::get(env('APP_SUBDIR') . '/livewire/livewire.js', $handle);
});

Livewire::setUpdateRoute(function($handle) {
    return Route::get(env('APP_SUBDIR') . '/livewire/update', $handle);
});

上記を追加することで、サブディレクトリでもFilamentがエラーを起こさずに使えるようになります!

反省点

最近、AIに聞くことがデフォルトになっており、自分で調べることを怠っていた
実は、「The POST method is not supported for route admin/login. Supported methods: GET, HEAD.」で
ググったら、一番下の方にちゃんと解決策が載っていたw

そして、ログインでパスワードがマスクされない時点でDeveloper Toolでエラーを確認していれば、
example.com/livewire/livewire.js と表示されており、PATHがおかしいことに気づけたはず……。

最後に

Filament自体は素晴らしいライブラリで、慣れれば爆速で管理画面が作れます。
ただ、ローカルと本番環境の差異には要注意。特にサブディレクトリ環境は罠が多いです。

同じような環境でハマっている方の助けになれば幸いです!

参考サイト

https://note.com/yamashita3910/n/n6cbf41a1fada
https://github.com/filamentphp/filament/discussions/11481

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?