MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Laravel - 設定のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Laravel - 設定
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == 主要な設定ファイルはconfigディレクトリに格納されており、中心となるのは.envファイルである。<br> .envファイルには、環境固有の設定 (データベース接続情報やAPIキー等) を記述する。<br> <br> 設定の基本的な構造として、configディレクトリ内の各ファイルは特定の機能や要素に対応している。<br> * app.php *: アプリケーションの基本設定を管理する。 *: タイムゾーン、ロケール、プロバイダの設定等が含まれる。 * database.php *: データベース関連の設定を行う。 *: 接続情報やマイグレーション設定等を管理できる。 *: <u>特に、実際の接続情報は.envファイルから読み込まれる。</u> * cache.php *: キャッシュの設定を管理する。 *: Redisやmemcached等、複数のキャッシュドライバを切り替えることが可能である。 * session.php *: セッション管理を行う。 *: ドライバの選択やセッションのライフタイム等を設定する。 <br> 設定値へのアクセス方法としては、configヘルパー関数を使用する。<br> <syntaxhighlight lang="php"> // タイムゾーンを取得する場合 $value = config('app.timezone'); </syntaxhighlight> <br> 環境別の設定管理について、重要な点がある。<br> 本番環境と開発環境で異なる設定を使用する場合、.envファイルを環境ごとに用意することで柔軟に対応することができる。<br> 例えば、セキュリティの観点から、機密情報 (APIキーやデータベースパスワード等) は必ず.envファイルで管理して、バージョン管理システムにコミットしないようにすることが推奨される。<br> <br> 設定のキャッシュ機能も活用すべき重要な機能である。<br> 本番環境においては、以下に示すコマンドで設定をキャッシュすることにより、パフォーマンスを向上させることができる。<br> php artisan config:cache <br><br> == ディレクトリ構造 == 詳細は、[[Laravel - Laravelの構造|Laravel - Laravelの構造]]のページを参照すること。<br> <br> * app *: アプリケーションのコアコードを配置する。 ** Http/Controllers **: コントローラクラス ** Models **: Eloquentモデル ** Providers **: サービスプロバイダ * config *: 設定ファイルを格納する。 ** app.php **: アプリケーションの基本設定 ** database.php **: データベース接続設定 ** auth.php **: 認証設定 * database ** migrations **: データベースマイグレーションファイル ** seeders **: データベースシーダ ** factories **: モデルファクトリ * routes ** web.php **: Web用ルート定義 ** api.php **: API用ルート定義 * resources ** views **: Bladeテンプレート ** css **: CSSファイル ** js **: JavaScriptファイル * public *: 公開ディレクトリ ** index.php **: エントリーポイント ** アセットファイル **: 画像、CSS、JS等 * storage ** app **: アプリケーションが生成するファイル ** logs **: ログファイル ** framework **: フレームワークが生成する一時ファイル <br><br> == .env == ==== .envファイルの配置 ==== Laravelのプロジェクトディレクトリ直下にenvディレクトリを作成する。 cd <Laravelのプロジェクトディレクトリ> mkdir env <br> 次に、以下に示すような本番向け、開発向け等に名前を分けてディレクトリを作成する。 cd env mkdir dev \ # 開発向け staging \ # 評価・試験向け prod # 本番向け <br> <u>この時、プロジェクトディレクトリ直下に存在する.envファイルを、各ディレクトリにコピーする。</u><br> <u>また、プロジェクトディレクトリ直下にある既存の.envファイルは削除すること。</u><br> <br> ==== .envファイルの切り替え ==== .envファイルの読み込みは、Laravelのプロジェクトディレクトリ直下にあるbootstrap/app.phpファイルで指定する。<br> <br> サーバ情報からホスト名を取得して切り替える。<br> <syntaxhighlight lang="php"> // bootstrap/app.phpファイル // 追記 switch ($_SERVER['HTTP_HOST'] ?? 'localhost') { case 'localhost': // 開発向け $app->loadEnvironmentFrom('env/dev'); break; case 'staging.maydomain.com': // 評価・試験向け $app->loadEnvironmentFrom('env/staging'); break; case 'prod.maydomain.com': // 本番向け $app->loadEnvironmentFrom('env/prod'); break; } </syntaxhighlight> <br> ==== キャッシュの更新 ==== キャッシュを更新 (configのキャッシュ再生成) して、各環境で正常に画面が表示されることを確認する。<br> php artisan config:cache <br> ==== .envファイルの設定 ==== APP_NAME=<アプリケーション名> APP_ENV=local APP_KEY=<自動生成される> APP_DEBUG=<true または false 開発向けはdebugを指定する> APP_URL=<WebサイトのURL 例: http://localhost> DB_CONNECTION=<データベース 例: mysql> DB_HOST=<データベースのホスト名 127.0.0.1> DB_PORT=<データベースに接続するポート番号 例: 3306> DB_DATABASE=<データベース名> DB_USERNAME=<データベースのユーザ名> DB_PASSWORD=<データベースのパスワード> <br><br> == アプリケーションキーの生成 == Laravelアプリケーションの暗号化キーを生成する。<br> php artisan key:generate <br> .envファイル内のAPP_KEYの値を設定する。<br> これは、32文字のランダムな文字列が生成される。<br> <br> アプリケーションキーは以下に示す用途で使用される。<br> * セッションデータの暗号化 * クッキーデータの暗号化 * その他の機密データの暗号化 <br> <u>※重要性</u><br> * アプリケーションのセキュリティに不可欠である。 * アプリケーションを初めて設定する際に必ず実行する必要がある。 * キーが設定されていない場合、アプリケーションは安全に動作しない。 <br><br> == データベースのマイグレーション == データベースの構造を作成・更新する。 php artisan migrate <br> database/migrationsディレクトリ内のマイグレーションファイルを実行する。<br> テーブルの作成、修正、削除等のデータベース構造の変更を行う。<br> <br> また、マイグレーションの実行履歴をデータベースのmigrationsテーブルで管理する。<br> <br> 特徴<br> * データベース構造をバージョン管理できる。 * チーム開発時にデータベース構造を共有できる。 * ロールバック可能 *: <code>php artisan migrate:rollback</code> * 開発環境と本番環境で同じ構造を保証できる。 <br><br> == ストレージディレクトリのシンボリックリンク作成 == パブリックからアクセス可能なストレージへのシンボリックリンクを作成する。 php artisan storage:link <br> public/storageからstorage/app/publicへのシンボリックリンクを作成する。<br> アップロードされたファイルへのパブリックアクセスを可能にする。<br> <br> <u>使用例と重要性</u><br> * ユーザーがアップロードした画像を表示する。 * パブリックにアクセス可能なファイルを管理する。 * セキュアなストレージ構造を維持しながら、必要なファイルへのアクセスを提供する。 <br> <u>実行するタイミング</u><br> * アプリケーションの初期セットアップ時 * ファイルアップロード機能を実装する際 * 本番環境へのデプロイ時 <br><br> == アセットコンパイル == ==== Laravel 9 / 10 (Viteの使用) ==== * Viteを使用して、より高速なビルドを行うことが可能である。 * HMR (Hot Module Replacement) に対応している。 * vite.config.jsファイルで設定する。 * ブレードテンプレートでの読み込み方が変更できる。 <br> また、Laravel 9 / 10でもLaravel Mixを使用することは可能である。<br> <br> # package.jsonの依存関係インストール npm install # 開発サーバ起動 npm run dev # 本番環境向けビルド npm run build <br> <syntaxhighlight lang="js"> /* 設定ファイル: vite.config.js の例 */ import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: ['resources/css/app.css', 'resources/js/app.js'], refresh: true, }), ], }); </syntaxhighlight> <br> ==== Laravel 8 (Laravel Mixの使用) ==== * Laravel Mix (Webpackのラッパ) を使用する。 * webpack.mix.jsファイルで設定する。 * <code>npm run watch</code>コマンドでファイル変更監視が可能である。 <br> # package.jsonの依存関係インストール npm install # 開発環境向けコンパイル npm run dev # 本番環境向けコンパイル (ミニファイ化) npm run prod # ファイル変更の監視 npm run watch <br> <syntaxhighlight lang="js"> /* 設定ファイル : webpack.mix.js の例 */ const mix = require('laravel-mix'); mix.js('resources/js/app.js', 'public/js') .sass('resources/sass/app.scss', 'public/css') .version(); // キャッシュバスティング </syntaxhighlight> <br> ==== ブレードテンプレートでの読み込み方の違い ==== * Laravel 9 / 10 (Viteの使用) <syntaxhighlight lang="html"> <!-- CSS & JavaScript --> @vite(['resources/css/app.css', 'resources/js/app.js']) <!-- または個別に --> @vite('resources/css/app.css') @vite('resources/js/app.js') </syntaxhighlight> <br> * Laravel 8 (Laravel Mixの使用) <syntaxhighlight lang="html"> <!-- CSS --> <link href="{{ mix('css/app.css') }}" rel="stylesheet"> <!-- JavaScript --> <script src="{{ mix('js/app.js') }}"></script> </syntaxhighlight> <br> Viteへの移行は比較的簡単で、公式ドキュメントにガイドがある。<br> Laravel 9 / 10では、開発時のビルド速度が大幅に改善されており、Laravel 10では、Viteの設定がより柔軟になっている。<br> <br><br> == デバッグ == ==== Laravel Debugbar / Xdebug ==== Laravel DebugbarとXdebugは異なる用途で使われており、両方とも有用なツールである。<br> <br> * Laravel Debugbarの特徴 *: ブラウザ上でリアルタイムに情報を表示する。 *: クエリの実行時間、メモリ使用量、リクエスト情報等を可視化する。 *: ルート情報、セッション変数の確認が容易になる。 *: 導入が簡単 (composerコマンドでインストール可能) *: 本番環境では自動的に無効化される。 <br> * Xdebugの特徴 *: コードのステップ実行が可能。 *: 変数の中身を詳細に確認できる。 *: ブレークポイントを設定して特定の箇所で処理を止められる。 *: PHPStorm等のIDEと連携して使用できる。 *: より深いレベルのデバッグが可能。 <br> 推奨される使用方法を以下に示す。<br> * 日常的な開発時の監視 : Laravel Debugbar * 複雑なバグの追跡や詳細な解析時 : Xdebug <br> Laravel DebugbarとXdebugの両方を導入することを推奨する。<br> # Laravel Debugbarのインストール composer require barryvdh/laravel-debugbar --dev # Xdebugのインストール (PHPの拡張機能として) [[インストール - Xdebug]]のページを参照すること <br> Laravel Debugbarは開発の効率を上げる便利なツールで、Xdebugは複雑な問題を解決するための強力なツールである。<br> 用途に応じて使い分けることにより、より効果的なデバッグが可能になる。<br> <br> ==== Laravel Debugbarの設定 ==== Laravel Debugbarは基本的に最小限の設定で動作するが、いくつかの推奨される設定手順がある。<br> <br> Laravel Debugbarをインストールした後、開発環境では自動的に有効になる。<br> .envファイルの<code>APP_DEBUG</code>の値が<code>true</code>の場合のみ、Debugbarが表示される。<br> <br> 以下に示すコマンドを実行することにより、config/debugbar.phpファイルが作成して、設定をカスタマイズすることができる。<br> php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider" * Debugbarの有効 / 無効の切り替え * 表示する情報の選択 * キャプチャするクエリの数 * 特定のURLでの無効化 <br> 推奨される基本設定を以下に示す。<br> # .envファイル # 開発環境 APP_DEBUG=true DEBUGBAR_ENABLED=true # 本番環境 APP_DEBUG=false DEBUGBAR_ENABLED=false <br> <u>※注意</u><br> <u>センシティブな情報が表示される可能性があるため、本番環境では必ず無効にする。</u><br> <br> .envファイルを設定した後、キャッシュを削除することが推奨される。<br> これは、Laravelは設定をキャッシュすることがあるため、.envファイルの変更が即時に反映されない場合がある。<br> そのため、config:clearコマンドを実行することにより、設定のキャッシュを削除して新しい設定が確実に反映されるようにする。<br> # キャッシュを削除する場合 php artisan config:clear # キャッシュを完全に削除する場合 php artisan cache:clear <br> その後、Webブラウザをリロードすることにより、画面下部にDebugbarが表示される。<br> <br><br> == 推奨される設定 == ==== キャッシュの設定 ==== php artisan config:cache php artisan route:cache php artisan view:cache <br> ==== コンポーザの最適化 ==== composer dump-autoload -o <br> ==== 開発環境でのデバッグツールのインストール ==== composer require barryvdh/laravel-debugbar --dev <br><br> == セキュリティ設定 == 以下に示す設定が完了した後、開発サーバを再起動する。<br> php artisan serve <br> ==== CSRFトークンの有効化 (デフォルトで有効) ==== ==== .envファイルのアクセス制限 ==== ==== セッション設定の確認 (config/session.php) ==== ==== ファイルパーミッションの適切な設定 ==== chmod -R 755 storage bootstrap/cache <br><br> == 追加パッケージの導入 == 必要に応じて、以下に示すような追加パッケージを導入することを検討する。<br> <br> * Laravel Breeze/Jetstream (認証) * Laravel Sanctum (API認証) * Laravel Socialite (ソーシャルログイン) * Spatie/Laravel-permission (権限管理) <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:Web]]
Laravel - 設定
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse