Laravel10でLiteSpeed Cache for Laravel(LSCache)を使う方法


- 1. LaravelとLiteSpeed Cache
- 1.1. LiteSpeed Cacheとは
- 2. 事前準備
- 2.1. Laravelプロジェクトの作成
- 2.2. LiteSpeed Cacheのインストール
- 2.3. 設定ファイルのpublish
- 2.4. CacheLookupの有効化
- 3. キャッシュの使い方
- 3.1. ルートごとのキャッシュ制御(web.phpを編集)
- 3.2. キャッシュクリアコマンドを作成する
- 3.2.1. コマンドの作成
- 3.2.2. コマンドの中身
- 3.2.3. 実行結果
- 3.2.4. lscache:clearコマンドの説明
- 3.3. LiteSpeed Cache for Laravelのmiddlewareのオプション
- 3.3.1. Public
- 3.3.2. Private
- 3.3.3. Max-Age
- 3.3.4. ESI (Edge Side Includes)
- 3.3.5. Purge
- 3.4. まとめ
1. LaravelとLiteSpeed Cache
Laravelは、多くの開発者に支持されているPHPフレームワークです。その高いパフォーマンスと柔軟性を活かすためには、キャッシュ機能の活用が欠かせません。今回は、LiteSpeed CacheをLaravelで利用する方法について説明します。
1.1. LiteSpeed Cacheとは
LiteSpeed Cacheは、高速なページキャッシュやオブジェクトキャッシュを提供するツールです。LiteSpeedベースのウェブサーバーであるLiteSpeedと連携することで、そのパフォーマンスを最大限に引き出すことができます。


2. 事前準備
2.1. Laravelプロジェクトの作成
既存のLaravelプロジェクトがない場合は、新規にプロジェクトを作成します。
composer create-project laravel/laravel myproject
2.2. LiteSpeed Cacheのインストール
LaravelでLiteSpeed Cacheを利用するには、まずパッケージをインストールします。
composer require litespeed/lscache-laravel
2.3. 設定ファイルのpublish
インストールが完了したら、設定ファイルを公開します。
php artisan vendor:publish --provider="Litespeed\LSCache\LSCacheServiceProvider"
これにより、config/lscache.php
が生成されます。このファイルでLiteSpeed Cacheの設定を行います。
2.4. CacheLookupの有効化
CacheLookupを有効にするために、.htaccessなどで次のようにコードを書いてください。
<IfModule LiteSpeed>
CacheLookup on
</IfModule>
3. キャッシュの使い方
3.1. ルートごとのキャッシュ制御(web.phpを編集)
ルートごとにキャッシュを制御することができます。例えば、特定のルートをmiddlewareでキャッシュする場合は以下のようにします。(web.phpを編集)
Route::get('/', function () {
return view('welcome');
})->middleware('lscache:max-age=300;public');;
また、キャッシュを無効にする場合は以下のように設定します。
Route::get('/no-cache', function () {
return view('nocache');
})->middleware('lscache:no-cache');
viewでnocacheを指定しているため、nocache.blade.phpを作る必要があります。一応、適当に作ったファイルを用意しておきます。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>No Cache</title>
</head>
<body>
3.2. キャッシュクリアコマンドを作成する
キャッシュをパージ(削除)するために、次のコマンドを作成します。
php artisan lscache:clear
3.2.1. コマンドの作成
コマンドを作成するために次のコマンドを実行してください。
php artisan make:command lscacheClear
3.2.2. コマンドの中身
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use LSCache;
class lscacheClear extends Command
{
protected $signature = 'lscache:clear';
protected $description = 'lscache purge';
public function handle()
{
LSCache::purge('*');
$this->info($this->description." success");
}
}

3.2.3. 実行結果
3.2.4. lscache:clearコマンドの説明
こちらのコードは、Laravelフレームワークにおけるカスタムコンソールコマンドの定義です。具体的な部分を箇条書きで説明します:
- 名前空間の定義
namespace App\Console\Commands;
App\Console\Commands
名前空間に属するクラスであることを示しています。
- クラスの定義
use Illuminate\Console\Command; use LSCache; class lscacheClear extends Command
lscacheClear
クラスはIlluminate\Console\Command
を継承しています。これにより、Laravelのコンソールコマンドとして機能します。
- コマンドシグネチャの定義
protected $signature = 'lscache:clear';
- このコマンドが
php artisan lscache:clear
として実行されることを指定しています。
- このコマンドが
- コマンドの説明
protected $description = 'lscache purge';
- このコマンドの簡単な説明を提供します。
php artisan list
コマンドで表示されます。
- このコマンドの簡単な説明を提供します。
- ハンドルメソッドの定義
public function handle() { LSCache::purge('*'); $this->info($this->description." success"); }
handle
メソッド内で実際のコマンド処理を行います。LSCache::purge('*');
により、LSCacheのキャッシュを全て削除します。- キャッシュ削除が成功した旨をコンソールに出力します(
$this->info($this->description." success");
)。
3.3. LiteSpeed Cache for Laravelのmiddlewareのオプション
3.3.1. Public
public
は、キャッシュされたコンテンツをすべてのユーザーに提供できる設定です。ユーザー固有のデータに基づかないコンテンツに適しています。
3.3.2. Private
private
は、キャッシュをユーザー固有のデータとして設定し、そのユーザーにのみ提供します。ユーザーごとの異なるレスポンスが必要な場合に適しています。
3.3.3. Max-Age
max-age
は、レスポンスが新鮮とみなされる時間を秒単位で定義します。例えば、max-age=300
はレスポンスを5分間キャッシュすることを意味します。

3.3.4. ESI (Edge Side Includes)
ESIは、キャッシュされたページ内に動的コンテンツを埋め込む機能です。esi=on
を設定することで、<esi:include>
タグを使って静的ページ内に動的な部分を含めることができます。

3.3.5. Purge
Purge機能は、キャッシュされたコンテンツの無効化を行います。特定のURL、タグ、または全キャッシュをLSCache::purge
メソッドを使ってパージできます。

3.4. まとめ
これで、LaravelプロジェクトでLiteSpeed Cacheを利用するための基本的な設定は完了です。LiteSpeed Cacheを活用することで、アプリケーションのパフォーマンスを大幅に向上させることができます。
LiteSpeed Cacheを使いこなして、さらに高速で効率的なLaravelアプリケーションを構築しましょう。