【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

Laravel Admin セットアップ方法

こんにちは!

システム開発部の松木です。

今回の記事では Laravel Admin のセットアップについてお話します!

Laravel Admin とは?

Laravel Admin は、Laravelフレームワークを使用して開発された管理者向けのツールです。

アプリケーションの管理ダッシュボードやコントロールパネルを簡単に作成することが可能で、

Laravel Admin を使用し、様々なデータやリソースを管理することができます。

環境

Docker: 23.0.1

Laravel: 10.37.1

PHP: 8.2

MySQL: 8.0

Nginx: 1.23.3

セットアップ手順

ログイン画面表示

下記コマンドを実行し、Laravel Admin をインストールします。


composer require encore/laravel-admin

次に下記コマンドで、インストールを行った Laravel Admin のファイルを、Laravel のプロジェクトに追加します。


php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"

次に下記コマンドで、Laravel Admin の標準テーブルの作成を行います。


php artisan admin:install

上記のコマンドが正常に実行されると下記のように表示され、標準テーブルの作成が完了です。


root@d816ac03c504:/var/www/html# php artisan admin:install

INFO Preparing database.

Creating migration table .............................................................................................................. 126ms DONE

INFO Running migrations.

2014_10_12_000000_create_users_table .................................................................................................. 133ms DONE
2014_10_12_100000_create_password_reset_tokens_table .................................................................................. 190ms DONE
2016_01_04_173148_create_admin_tables ................................................................................................. 976ms DONE
2019_08_19_000000_create_failed_jobs_table ............................................................................................ 101ms DONE
2019_12_14_000001_create_personal_access_tokens_table ................................................................................. 147ms DONE

INFO Seeding database.

Admin directory was created: /app/Admin
HomeController file was created: /app/Admin/Controllers/HomeController.php
AuthController file was created: /app/Admin/Controllers/AuthController.php
ExampleController file was created: /app/Admin/Controllers/ExampleController.php
Bootstrap file was created: /app/Admin/bootstrap.php
Routes file was created: /app/Admin/routes.php

ここまで行うと、一度 Laravel-Admin のログイン画面にアクセスしてみましょう。

正常にアクセスできると下記のような画面が表示されます。

管理者ユーザー作成

ログイン画面の表示まで完了しましたが、肝心のログインユーザーの作成を行えていません。

次に行うのはログインを行う管理者ユーザーの作成です。

まずは適当な seeder の作成を行います。

今回では、UserSeeder という名前で作成を行う為、下記コマンドを実行します。


php artisan make:seeder UserSeeder

次に作成した seeder の中に記載する処理を、vender配下の seeder を利用するため、

/vendor/encore/laravel-admin/src/Auth/Database/AdminTablesSeeder.phpファイルを開きpublic function run(){}の中身をコピーしてください。

コピーした内容を UserSeeder の public function run(){}の中に置き換えてください

置き換えた内容が下記になります。

<?php

namespace Database\Seeders;

use Encore\Admin\Auth\Database\Administrator;
use Encore\Admin\Auth\Database\Menu;
use Encore\Admin\Auth\Database\Permission;
use Encore\Admin\Auth\Database\Role;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;

class UserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run()
    {
        // create a user.
        Administrator::truncate();
        Administrator::create([
            'username' => 'admin',
            'password' => Hash::make('admin'),
            'name'     => 'Administrator',
        ]);

        // create a role.
        Role::truncate();
        Role::create([
            'name' => 'Administrator',
            'slug' => 'administrator',
        ]);

        // add role to user.
        Administrator::first()->roles()->save(Role::first());

        //create a permission
        Permission::truncate();
        Permission::insert([
            [
                'name'        => 'All permission',
                'slug'        => '*',
                'http_method' => '',
                'http_path'   => '*',
            ],
            [
                'name'        => 'Dashboard',
                'slug'        => 'dashboard',
                'http_method' => 'GET',
                'http_path'   => '/',
            ],
            [
                'name'        => 'Login',
                'slug'        => 'auth.login',
                'http_method' => '',
                'http_path'   => "/auth/login\r\n/auth/logout",
            ],
            [
                'name'        => 'User setting',
                'slug'        => 'auth.setting',
                'http_method' => 'GET,PUT',
                'http_path'   => '/auth/setting',
            ],
            [
                'name'        => 'Auth management',
                'slug'        => 'auth.management',
                'http_method' => '',
                'http_path'   => "/auth/roles\r\n/auth/permissions\r\n/auth/menu\r\n/auth/logs",
            ],
        ]);

        Role::first()->permissions()->save(Permission::first());

        // add default menus.
        Menu::truncate();
        Menu::insert([
            [
                'parent_id' => 0,
                'order'     => 1,
                'title'     => 'Dashboard',
                'icon'      => 'fa-bar-chart',
                'uri'       => '/',
            ],
            [
                'parent_id' => 0,
                'order'     => 2,
                'title'     => 'Admin',
                'icon'      => 'fa-tasks',
                'uri'       => '',
            ],
            [
                'parent_id' => 2,
                'order'     => 3,
                'title'     => 'Users',
                'icon'      => 'fa-users',
                'uri'       => 'auth/users',
            ],
            [
                'parent_id' => 2,
                'order'     => 4,
                'title'     => 'Roles',
                'icon'      => 'fa-user',
                'uri'       => 'auth/roles',
            ],
            [
                'parent_id' => 2,
                'order'     => 5,
                'title'     => 'Permission',
                'icon'      => 'fa-ban',
                'uri'       => 'auth/permissions',
            ],
            [
                'parent_id' => 2,
                'order'     => 6,
                'title'     => 'Menu',
                'icon'      => 'fa-bars',
                'uri'       => 'auth/menu',
            ],
            [
                'parent_id' => 2,
                'order'     => 7,
                'title'     => 'Operation log',
                'icon'      => 'fa-history',
                'uri'       => 'auth/logs',
            ],
        ]);

        // add role to menu.
        Menu::find(2)->roles()->save(Role::first());
    }
}

次に作成した UserSeeder を DatabaseSeeder の中に記載してください。

<?php

namespace Database\Seeders;

// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        $this->call([
            UserSeeder::class,
        ]);
    }
}

ここまで完了すれば、あとは seeder を回すだけです。


php artisan db:seed

seeder が回り切れば再度ログイン画面に行き、seeder で設定を行った Username と Password を入力します。

今回は Username と Password 共に admin という文字で登録しているので、実際に利用するときは変更をお願いします。

どちらも admin を入力し、ログインを行うと下記のような画面に遷移します。

正常にログインも行うことが可能となりました。

これで Laravel Admin のセットアップは完了となります。

まとめ

いかがでしたでしょうか。

Laravel Admin はセットアップが非常に簡単で、管理者パネルを迅速に構築できますし、

また、Laravel Admin でテーブルを作成すれば、テーブルを GUI で操作することも可能となりますので、

是非使用してみてください。

最後に

私が所属するシステム開発部のサービスサイト「SEKARAKU Lab(セカラク ラボ)」を開設しました。
ビヨンドは、サーバーの設計・構築から運用までをワンストップでお任せいただけますので、サーバーサイド開発でお困りの方はお気軽にお問い合わせください。

● SEKARAKU Lab:https://sekarakulab.beyondjapan.com

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
2
読み込み中...
2 票, 平均: 1.00 / 12
464
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author

松木

ポーカーとラグビーが好きです。
MARVELは「ハルク」が好き

座右の銘は集中力×時間+運