laravel12.laravel_003
R e i - D r e a m
for Laravel
TOP > Laravel Ver.12 > Laravel 環境構築 ③
Guest
login

最終投稿日:2026年2月9日

[.env]ファイル
はじめに
俗に言うアプリの設定ファイルとなります。
設定する内容は様々で、以下の様なものがあります。
● DB設定
● ログ出力設定
● メール設定
● セッション管理
● 独自設定などなど...
環境の切り替え
アプリの設定ファイルという事は【本番】【開発】環境ごとに内容を変更する必要があります。
丁度デフォルトの状態で設定ファイルが「.env」「.env.example」の2つが用意されているので、
「.env.example」を参照する様にしてみましょう。
設定方法は環境変数を以下の様に設定します。
KEY:APP_ENV
値    :example
この設定でシステムは《.env.example》ファイルを参照します。
ターミナルから『echo %APP_ENV%』を叩いたら『example』と表示されるハズです。
 ※表示されない場合は再起動
ポイント

以前のlaravelのバージョンでは、[bootstrap/app.php]から『$app->loadEnvironmentFrom()』で操作できた様ですが、本『Ver.12』では環境変数を使用します。

それではまずは前準備として「.env.example」の内容を「.env」の内容で上書きして、
 両ファイルを同じ内容にしましょう。
その後、両ファイルそれぞれの1行目に以下の内容を追記します。
.env

HOGE_NAME=HOGE

.env.example

HOGE_NAME=example

次に「~\config\app.php」の連想配列内に以下を追記します。
~\config\app.php

return [
    'conf_hoge' => env('HOGE_NAME', 'default'),

ポイント

基本的に環境設定ファイルは直接参照しない事が推奨されています。
「config」内にある「app.php」ファイルに書き込んだ内容を参照する様にします。

● KEY:参照する際の名前
● 値   :関数「env」を使い、環境設定ファイルで命名したKEY名を指定します。
    ※ 第2引数はデフォルト値です
また、「app.php」でなくても「hoge.php」等の独自ファイルでも問題ありません。

これで準備が整いました。
先ほど作成したビュー「index.blade.php」に以下を追記してください。
{{config('app.conf_hoge')}}
その後、同ファイルにアクセスすると。。
【example】と表示されてますよね!?
つまり、設定ファイル「.env.example」が参照されています。
ポイント

[config]はビュー内で利用できるグローバル関数です。 引数の内容はドット区切りで以下の意味があります。

● [app]・・・・・・「~\config\app.php」を参照する
● [conf_hoge]・・・上記ファイル内のKEY「conf_hoge」に対応する設定ファイルの値を参照する

データベース設定
○ データベース作成
まずは設定するデータベースを作成します。
「xampp」経由で話を進めるため、使用するのは「MySQL」となります。
特にポチポチ「XAMPP」をインストールした場合は、以下コマンドでログインできると思います。
mysql -u root -p
次にユーザー「hoge_ser」をパスワード「hoge9999」で作成します。
CREATE USER 'hoge_user'@'localhost' IDENTIFIED BY 'hoge9999';
次に以下を叩きデータベース名「hoge_db」を作成します
CREATE DATABASE hoge_db;
次に作成したユーザー「hoge_user」に、データベース「hoge_db」への全ての権限を付与します。
GRANT ALL PRIVILEGES ON hoge_db.* TO 'hoge_user'@'localhost';
ここまでできたら、一度「exit」コマンドで「MySQL」を抜け、新しいユーザーで再ログインします。
mysql -u hoge_user -phoge9999
以下コマンドでデータベースへ移動し、中身を見てみましょう。
show databases;
use hoge_db;
show tables;
 ※ データベースには移動できますが、中身(show tables)は当然空です
○ Laravelにデータベースを設定する
作成したデータベースを「Laravel」の設定ファイルに登録します。 設定は「.env」ファイルで、以下の様に設定します。
.env

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=hoge_db
DB_USERNAME=hoge_user
DB_PASSWORD=hoge9999

SESSION_DRIVER=file

※ 直接DB設定には関係ありませんが『SESSION_DRIVER』は、[database]から[file]へ修正します
※ [database]のままだと、セッション管理をDBで行います
○ マイグレーション
データベースのみ作成してテーブルが存在しない場合、まずは空のマイグレーションをします。
「Laravel」ルートディレクトリ([artisan]ファイルがある場所)から以下を叩きます。
php artisan migrate
C:\~\laravel_12

C:\~\laravel_12>php artisan migrate
    INFO  Preparing database.
   Creating migration table ...................... 170.00ms DONE
    INFO  Running migrations.

    0001_01_01_000000_create_users_table .......... 500.00ms DONE
    0001_01_01_000001_create_cache_table ........... 80.00ms DONE
    0001_01_01_000002_create_jobs_table ........... 430.00ms DONE

C:\~\laravel_12>

上記コマンドを叩く事で、以下のテーブルが自動的に作成されます。
・cache
・cache_locks
・failed_jobs
・job_batches
・jobs
・migrations
・password_reset_tokens
・sessions
・users
上記は「Laravel」の基本テーブルとなりますので、基本的に「users」以外は忘れて良いかもです。
また「~\database\migrations」に以下の様な『マイグレーションファイル』が作成されます。
・0001_01_01_000000_create_users_table.php
・0001_01_01_000001_create_cache_table.php
・0001_01_01_000002_create_jobs_table.php
ポイント

マイグレーションファイルは、テーブルの作成や変更等の全てのDB操作が記述された履歴ファイルです。
[artisan]コマンドを使い特定の履歴まで戻したり、また新たにDB環境を作成した場合に同じ内容のテーブルを作成したりできます。
ただし覚える知識の量に対して、簡単にエラーになったりするので、普通に「DDL」等は別管理にした法が良いと思います。

ログ設定
ログは『storage\logs\laravel.log』へ出力されます。
まずは、ログファイルを日単位に出力する様に設定してみます。
環境設定ファイルを開き、KEY名「LOG_CHANNEL」の内容を[stack]から[daily]へ変更します。
次にログ出力内容の詳細設定である「~\config\logging.php」を開きます。
以下の内容に修正して下さい。
logging.php

'channels' => [
    ~ 省略 ~
    'daily' => [
        'driver' => 'daily',
        'path' => storage_path('logs/laravel.log'),
        level' => env('LOG_LEVEL', 'debug'),
        days' => env('LOG_DAILY_DAYS', 14),
        replace_placeholders' => true,
    ],

環境設定ファイルで「LOG_CHANNEL=daily」とした事で連想配列「channels」は、「daily」を参照します。
各連想配列のKEYは以下の設定となります。
[driver]・・・・・・・・・・・[daily]とする事で日単位となります
[path]・・・・・・・・・・・「~\storage\logs」内の[laravel{-2026-xx-xx}.log]として出力します
[level]・・・・・・・・・・・ 重要度が低い順に以下の種類があります
                                                                      [debug][info][notice][warning][error][critical][alert]
[days]・・・・・・・・・・・デフォルトは14日保存されます
[replace_placeholders]・・・ログ出力内容のプレースホルダーの扱いですが「true」としておきましょう
○ ログを実際に出力してみます
利用頻度としては極めて低いと思われますが、ビューから出力する事が可能です。
任意のビューへ以下を追記して下さい。
{{logger()->debug( 'hoge...', [ 'hoge' => 'ほげ' ] );}}
ビューへアクセスすると以下の様なログが出力されているハズです。
[2026-02-07 01:13:15] example.DEBUG: hoge... {"hoge":"ほげ"}
○ ロジック側に設定する方法
基本的な使い方はこちらが圧倒的に多いと思います。
先ほどのビューを呼び出したコントローラへ設定してみます。
まずロジック側から使用する場合は、必ず『Log』クラスを使う事を宣言して下さい。
use Illuminate\Support\Facades\Log;
その後、目的のメソッド内にログ出力処理を記述します。
Log::debug( 'hoge...', [ 'foo' => 'ろじっく' ] );
ビューへアクセスすると以下の様なログが出力されているハズです。
[2026-02-07 09:37:18] example.DEBUG: hoge... {"foo":"ろじっく"}
ポイント

バッチ処理等で専用のログファイルを作成したい場合もあると思います。
そんな時は「~\config\logging.php」に新しいログ定義を追加する事で対応できます。
先ほどまでは「channels」配列内に更に「daily」配列を作成する形でログ定義をしました。
同様に例えば「channels」配列内に「hoge_log」配列を作成し、以下の様な定義をします。
 -----------------------------------------------------
    channels' => [
        ~ 省略 ~
        'hoge_log' => [
            'driver' => 'daily',
            'path' => storage_path('logs/hoge.log'),
            'level' => env('LOG_LEVEL', 'debug'),
            days' => env('LOG_DAILY_DAYS', 14),
            'replace_placeholders' => true,
        ],
 ----------------------------------------------------
上記設定をロジック内で使用するには以下の様にします。
  $hoge_log = Log::channel('hoge_log');
  $hoge_log->debug( 'hoge...', [ 'foo' => 'ほげ' ] );

ログインしてコメントを残そう!!


レンズモード 【新規購入限定用】
きっぷる