【Laravel-admin】Laravel-adminインストールしてみた
概要
「【Laravel】MacにLaravelインストールしてみた(Virtalbox + Vagrant + homestead) 」で構築した仮想環境内にを新しいLaravelプロジェクトを作成し、Laravel-adminをインストールしていきます。
今回は、Composerを利用してインストールしていきたいと思います。
参考
https://laravel-admin.org/
https://getcomposer.org/
環境
MacBook Air (Retina, 13-inch, 2020)
メモリ: 16 GB
macOS: Big Sur バージョン 11.6.1
仮想環境
VirtualBox 6.1.28
Vagrant 2.2.19
Laravel/Homestead 11.5.0 ( Ubuntu 20.04.3 LTS, PHP 8.0.11 )
mysql Ver 8.0.26-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
*前回確認が漏れていました。
MySQLもインストールされていますので、以下のコマンドでバージョンを確認しておいてください。
mysql --version
Laravelのインストール(Composer編)
まず、仮想サーバを起動し、sshで仮想サーバへログインしてください。
インストールディレクトリへ移動します。
ComposerでLarabelを最新バージョンをインストールします。
cd ~/code
composer create-project "laravel/laravel" laravel-admin
「Application key set successfully.」と表示されたらインストール完了です。
インストールされたバージョンを確認する。
プロジェクトへルートへ移動して、バージョン確認します。
cd laravel-admin/
php artisan -V
今回の環境では、「Laravel Framework 8.70.2」が表示されました。
バージョン指定してインストールしたい場合は、以下のようにします。
composer create-project "laravel/laravel=5.6.*" laravel-version
追記11/17
本番環境など公開サーバの場合は、–no-devのオプションをつけて、開発ツール系を削除することをおすすめします。
composer update --no-dev
続けて、Laravel-adminをインストールします。
Laravel-adminインストール
laravelプロジェクトに移動して、Laravel-adminインストールする。
cd ~/code/laravel-admin/
composer require encore/laravel-admin
Database生成及び設定
Database生成
mysqlに接続してDatabaseを作成し、接続ユーザを作成していきます。
細かいことは、ググってね。w
DB Name: laraadmindb
文字セット: utf8mb4
照合順序: utf8mb4_bin
mysql
CREATE DATABASE laraadmindb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
作成できたか確認する。
show databases;
+--------------------+
| Database |
+--------------------+
| homestead |
| information_schema |
| laraadmindb |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.01 sec)
アクセスするユーザを作成
ユーザ名: adminuser
パスワード: adminpw
*みなさんは、ちゃんとしたしたパスワードにしましょうねw
CREATE USER 'adminuser'@'localhost' IDENTIFIED BY 'adminpw';
Query OK, 0 rows affected (0.02 sec)
次は、権限をつけていきます。フルアクセスにします。w
GRANT ALL PRIVILEGES ON *.* TO 'adminuser'@'localhost' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
「quit;」を実行し、mysqlから抜けてください。
laravelのデータベース設定
データベース設定ファイルを開きます。
.envに書くとセキュリティ問題があるのでちゃんdatabase.phpに書きます。
.envでdebug=trueとかデバッグモードにするとコードがエラー吐くと.envの中身がモロ見えてしまうので注意.
vi config/database.php
database, username, passwordを変更し保存します。
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DATABASE_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'laraadmindb'),
'username' => env('DB_USERNAME', 'adminuser'),
'password' => env('DB_PASSWORD', 'adminpw'),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
laravel-adminのファイルをプロジェクトに追加する。
php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider"
環境設定ファイル「.env」を修正
vi .env
デフォルトでは、色々記載がありますが、ごっそり消して以下の分だけ残します。
「APP_DEBUG=false」は、必要な時だけtrueにするようにしましょう。
「APP_URL」は、「http://laravel-admin.test」でアクセスしたいので修正しておいてください。(後ほどhosts修正します。)
先ほどdatabase.phpは、mysqlを修正しましたので、「DB_CONNECTION=mysql」になっていることを確認します。配列に以下のように設定することで、環境毎に切り替えることもできます。
開発環境=develop
検証環境=staging
本番環境=production
APP_NAME=Laravel
APP_ENV=local
APP_KEY=base64:Qt1g2Pu1xEfsO4ceKcPE1SEmBU2/3d8GQ1ZKymQdaG0=
APP_DEBUG=false
APP_URL=http://laravel-admin.test
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
DB_CONNECTION=mysql
laravel-Adminの標準テーブルを生成
php artisan admin:install
Laravel-Adminは、「app/Admin」ディレクトリ内に構築していきます。
デフォルトの機能
ダッシュボード: app/Admin/Controllers/HomeController.php
認証機能: app/Admin/Controllers/AuthController.php
画面コントローラサンプル: app/Admin/Controllers/ExampleController.php
共通設定: app/Admin/bootstrap.php
ルーティング: app/Admin/routes.php
hostsを修正
仮想環境構築時同様に以下のファイルを修正します。
仮想環境とMac側も同じく修正します。
$ sudo vi /etc/hosts
以下の1行を追加します。
【仮想サーバIP】 laravel-sample.test
仮想環境設定を修正
仮想環境からexitで抜けてください。
「Homestead.yaml」ファイルを開き、今回追加したプロジェクトの設定を追加します。
*{Server_Dir}については、仮想環境構築時の内容を確認してください。
foldersにローカルと仮想サーバの関連を追加
sitesにnginxの設定を追加
databaseに追加したデータベースを追加
folders:
- map: {Server_Dir}/laravel-sample
to: /home/vagrant/code/laravel-sample
- map: {Server_Dir}/laravel-admin
to: /home/vagrant/code/laravel-admin
sites:
- map: laravel-sample.test
to: /home/vagrant/code/laravel-sample/public
- map: laravel-admin.test
to: /home/vagrant/code/laravel-admin/public
databases:
- homestead
- laraadmindb
仮想サーバに反映させます。
Mac側のターミナルで、以下のコマンドを実行します。
vagrant reload --provision
サーバが起動したら以下のURLにアクセスしてLaravel-Adminを起動してみます。
http://laravel-admin.test/admin
Laravel-Adminにログイン
初期の管理者ログイン情報は、以下の通りです。
入力してログインしてみてください。
username: admin
password: admin
今回は、これで終わります。お疲れ様でした。