laravel9 とAdminLTEの初期設定までを行います。
Nginx / php8.1 / MySQL 8.0 の設定は、↓この記事をご参考に
仮想ユーザの追加
# /usr/sbin/adduser larauser # chomod 755 /home/larauser # su - larauser $
↑仮想ユーザを追加して、そのユーザになります。
composer インストール
$ mkdir bin $ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" $ php composer-setup.php --install-dir=bin --filename=composer All settings correct for using Composer Downloading... Composer (version 2.7.2) successfully installed to: /home/larauser/bin/composer Use it: php bin/composer
↑ 追加したユーザの下に「bin」ディレクトリを作成します。(bin でなくてもいいです)
その bin 以下に、composerを入れます。
$ ./bin/composer -v ______ / ____/___ ____ ___ ____ ____ ________ _____ / / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/ / /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ / \____/\____/_/ /_/ /_/ .___/\____/____/\___/_/ /_/ Composer version 2.7.2 XXXX-XX-XX XX:XX:XX
↑ composer の、2.7.2 が入りました。
$ php -r "unlink('composer-setup.php');"
↑ セットアップファイルを削除します。
laravel9 のインストール
$ bin/composer create-project "laravel/laravel=9.*" larasite01 Creating a "laravel/laravel=9.*" project at "./larasite01" Installing laravel/laravel (v9.5.2) - Downloading laravel/laravel (v9.5.2) - Installing laravel/laravel (v9.5.2): Extracting archive Created project in /home/larauser/larasite01 > @php -r "file_exists('.env') || copy('.env.example', '.env');" Loading composer repositories with package information Updating dependencies (略) > @php artisan package:discover --ansi INFO Discovering packages. laravel/sail .................................................... DONE laravel/sanctum ................................................. DONE laravel/tinker .................................................. DONE nesbot/carbon ................................................... DONE nunomaduro/collision ............................................ DONE nunomaduro/termwind ............................................. DONE spatie/laravel-ignition ......................................... DONE 86 packages you are using are looking for funding. Use the `composer fund` command to find out more! > @php artisan vendor:publish --tag=laravel-assets --ansi --force INFO No publishable resources for tag [laravel-assets]. No security vulnerability advisories found. > @php artisan key:generate --ansi INFO Application key set successfully.
$ cd larasite01/ $ php artisan --version Laravel Framework 9.52.16
↑「larasite01」というディレクトリに、laravel 9.52.16 が入りました。
laravel用DB設定
# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.36 Source distribution Copyright (c) 2000, 2024, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.01 sec) mysql> create database lara01 character set utf8mb4; Query OK, 1 row affected (0.01 sec) mysql> create user 'lara01'@'localhost' identified by '(パスワード)'; Query OK, 0 rows affected (0.02 sec) mysql> grant all privileges on lara01.* to 'lara01'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
↑「lara01」というユーザ名、「lara01」というデータベースを作成しました。
$ pwd /home/larauser/larasite01 $ vi .env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=lara01 DB_USERNAME=lara01 DB_PASSWORD=(パスワード)
↑「larasite01」というディレクトリの「.env」というファイルに、設定したDB情報を記述します(変更します)。
$ php artisan migrate Error Class "PDO" not found
↑DBを設定しようとすると、エラーになりました。
# yum install php-pdo (略) Installed: php-pdo-8.1.27-1.module+el9.3.0+16050+d5cd6ed5.x86_64 Complete!
↑「php-pdo」を入れます。
$ php artisan migrate Illuminate\Database\QueryException could not find driver (SQL: select * from information_schema.tables where table_schema = lara01 and table_name = migrations and table_type = 'BASE TABLE')
↑再度、エラーになってしまいました。
#dnf install php-mysqlnd (略) Installed: php-mysqlnd-8.1.27-1.module+el9.3.0+16050+d5cd6ed5.x86_64 Complete!
↑「php-mysqlnd」を入れます。
$ php artisan migrate INFO Preparing database. Creating migration table .................................. 21ms DONE INFO Running migrations. 2014_10_12_000000_create_users_table ...................... 29ms DONE 2014_10_12_100000_create_password_resets_table ............ 35ms DONE 2019_08_19_000000_create_failed_jobs_table ................ 26ms DONE 2019_12_14_000001_create_personal_access_tokens_table ..... 39ms DONE
↑うまく、DBが設定されました。
AdminLTE 設定
$ bin/composer require jeroennoten/laravel-adminlte Composer could not detect the root package (laravel/laravel) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version ./composer.json has been updated Composer could not detect the root package (laravel/laravel) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version Running composer update jeroennoten/laravel-adminlte Loading composer repositories with package information Updating dependencies (略) 86 packages you are using are looking for funding. Use the `composer fund` command to find out more! > @php artisan vendor:publish --tag=laravel-assets --ansi --force INFO No publishable resources for tag [laravel-assets]. No security vulnerability advisories found. Using version ^3.11 for jeroennoten/laravel-adminlte
$ php artisan adminlte:install Basic assets installed successfully. Configuration file installed successfully. Translation files installed successfully. The installation is complete.
↑「AdminLTE」がインストールされました。
$ php artisan adminlte:status Checking the resources installation ... 7/7 [■■■■■■■■■■■■] 100% All resources checked succesfully! +------------------+------------------------------------------+---------------+----------+ | Package Resource | Description | Status | Required | +------------------+------------------------------------------+---------------+----------+ | assets | The AdminLTE required assets | Installed | true | | config | The default package configuration file | Installed | true | | translations | The default package translations files | Installed | true | | main_views | The default package main views | Not Installed | false | | auth_views | The default package authentication views | Not Installed | false | | basic_views | The default package basic views | Not Installed | false | | basic_routes | The package routes | Not Installed | false | +------------------+------------------------------------------+---------------+----------+
↑「AdminLTE」のインストール状態を確認します。
laravel 調整
# cd larasite01/ # chmod -R 777 ./storage/ # chmod -R 777 ./bootstrap/cache/
↑パーミッションを調整します。
$ vi config/app.php 'timezone' => 'UTC', ↓ 'timezone' => 'Asia/Tokyo', 'locale' => 'en', ↓ 'locale' => 'ja', 'fallback_locale' => 'en', ↓ 'fallback_locale' => 'ja', 'faker_locale' => 'en_US', ↓ 'faker_locale' => 'ja_JP',
↑環境を日本語にします。
WEB設定
/home/larauser/larasite01/public
を、rootにwebを設定します。
↑のような画面が出てきます。
現状のWEBページ
$ vi routes/web.php Route::get('/', function () { return view('welcome'); });
と、書かれています。
https://(FQDN)/にアクセスすると、「welcome」のviewにアクセスがなされます。
「welcomeのview」とは
resources/views/welcome.blade.php
のファイルになります。
上記のphpファイルを変更すれば、
https://(FQDN)/
の内容が変更されます。
トップをAdminLTEに変更
$ vi resources/views/top.blade.php @extends('adminlte::page') @section('title', 'Dashboard') @section('content_header') <h1>ダッシュボード</h1> @stop @section('content') <p>ここがコンテンツ部分です</p> @stop @section('css') {{-- ページごとCSSの指定 <link rel="stylesheet" href="/css/xxx.css"> --}} @stop @section('js') <script> console.log('ページごとJSの記述'); </script> @stop
↑「top.blade.php」の内容を上記にします。
$ vi routes/web.php Route::get('/', function () { return view('welcome'); }); ↓ Route::get('/', function () { return view('top'); });
↑「web.php」、「welcome」を「top」に変更します。
↑上記のように、https://(FQDN)/ が、AdminLTEのデザイン画面になります