以前触ったことがあるLaravelの管理画面構築パッケージはBootstrapが使用されていることもあり、ややフロントエンドエンジニア寄りという印象を受けておりました。また
- パッケージによってはメンテナンスがされていなかったりしている
- Laravelの環境で比較的新しいパッケージを使用した管理画面構築を行ってみたいと思っていた
ということもあり、新しいパッケージを探してみようと思った次第です。
ネットで調べていましたところ、結構簡単に環境構築ができるという評判だったので、今回ローカル環境で「Filament」を使用して管理画面の構築を行ってみたいと思います。環境については以下になります。
Webmin + Virtualmin
OS Ubuntu Linux 22.04
Framework Laravel Framework 11.10.0
PHP PHP 8.3
DB MariaDB 10.6.16
Composer version 2.7.7
結構こちらのブログ記事等で既出の内容ということもありますので、 Webmin + Virtualmin での仮想ホスト作成までについては割愛させて頂きます。
では実際に構築を行っていきたいと思います。Webmin + Virtualmin で作成した仮想ホスト環境では、PHPが8.1になっていましたので、PHP8.3へ上げたいと思います。以下のコマンドで上げました。
//root権限で実行
# apt install curl gpg gnupg2 software-properties-common ca-certificates apt-transport-https lsb-release -y
# add-apt-repository ppa:ondrej/php
# apt update
# apt -y install php8.3
# apt install php8.3-{cli,pdo,mysql,zip,gd,mbstring,curl,xml,bcmath,common,intl}
# update-alternatives --config php
// バージョン指定を行う(コンソールのPHP)
# 3
※1 PPA (Personal Package Archives)を使用しています。
※2 このあとfilamentのインストール時に必要なため、php-zipとphp-intlモジュールを事前に入れています。
※3 update-alternatives –config php でバージョン指定をしない場合、コンソールコマンドのPHPは8.1のままです。composerを使用するのでバージョン指定しておきます。
PHPのバージョンを上げた後、Virtualmin > ウェブ設定 > PHPオプション にあるPHPバージョンを8.3に変更することを忘れずに・・・。
次にcomposerをインストールします。手順はcomposer公式の通りです。

動作確認でコマンドを実行しました。

Laravelのインストール準備ができたので、プロジェクトを作成します。

Laravelプロジェクトの作成が完了しました。一応バージョンを確認してみます。

Laravel Framework 11.10.0になっていますね。Firamentインストール前に.envとconfig/database.phpにDBの接続情報(DB名、ユーザー名、パスワード)を設定します。(今回はMariaDB)
そうしましたら、いよいよFiramentのインストールを行います。今回はFilament V3になりますので以下の通りです。
$ composer require filament/filament:"^3.2" -W
$ php artisan filament:install --panels


インストールが完了したら、Filamentで使用するDBテーブルを作成します。
$ php artisan migrate

テーブル作成が終わったら、Filament用のユーザーをコマンドで登録します。
- Name
- Email address
- Password
上記を入力します。
$ php artisan make:filament-user

アカウント登録も完了しましたので、ログインページを表示してみます。
https://仮想ホストのドメイン/admin/login

先程登録したアカウントでログインしてみます。

ログインできました!
ただ、今時点では何も機能がない状態ですので、次回は
- Filamentの目玉の一つである、自動生成オプションによるリソース作成
- Breezeをインストール後にマルチログインの実装
をやっていきたいと思います。