ServBayでLaravelプロジェクトを作成・実行する方法
概要
ServBayは、macOSおよびWindowsで利用可能な強力なローカルWeb開発環境です。PHP、Node.js、Python、Go、Java、さまざまなデータベース(MySQL、PostgreSQL、MongoDB)、キャッシュサービス(Redis、Memcached)、Webサーバー(Caddy、Nginx、Apache)など、人気の高いソフトウェアパッケージを統合しています。
このドキュメントでは、ServBay環境でLaravelプロジェクトを迅速に作成・設定・実行する手順を解説します。ServBay内蔵のPHP環境、Composerパッケージマネージャ、および便利なサイト(旧称「ホスト」)管理機能を活用して、セットアップをシンプルに行う方法を説明します。
Laravelとは?
Laravelは、Taylor Otwellによって作成された人気のオープンソースPHP Webアプリケーションフレームワークです。MVC(モデル・ビュー・コントローラー)アーキテクチャに従い、ユーザー認証、ルーティング、セッション管理、キャッシュ、データベース操作など、Web開発の一般的な作業を簡素化する多数の機能を提供します。Laravelはそのエレガントな構文、豊富な機能と強力なコミュニティのサポートで高く評価されており、モダンでメンテナブルなWebアプリ開発に最適です。
Laravelの主な特徴とメリット
- エレガントな構文: コードが簡潔かつ表現力豊かで、生産性と可読性が向上します。
- Eloquent ORM: 強力なActiveRecord実装により、データベース操作が直感的で容易になります。
- Artisanコンソール: データベースマイグレーション、コード生成、テスト実行などに役立つコマンドラインツールが充実。
- Bladeテンプレートエンジン: シンプルなテンプレート構文で動的ビューの作成を容易にします。
- 充実したエコシステム: 公式・サードパーティー製パッケージが多数あり、Composer経由で簡単に統合可能。
- 活発なコミュニティサポート: 豊富なリソースやチュートリアル、問題解決の情報が揃っています。
ServBayを使ったLaravel開発のメリット
ServBayはLaravel開発者に大きな利便性を提供します。
- 統合環境: 複数のPHPバージョン、Composer、主要なデータベースやキャッシュサービスがあらかじめインストールされているため、個別にインストール・設定する手間が不要です。
- 管理が簡単: ServBayのグラフィカルな管理画面で、PHPバージョンの切り替え、サイト設定管理、サービスの起動・停止が直感的に行えます。
- 事前設定済みWebサーバー: ServBayはCaddyをデフォルトに採用し、Laravelをはじめとする主要PHPフレームワーク向けに最適な設定がなされています。
- HTTPSサポート:
.local
ドメイン用にServBay User CAが自動でSSL証明書を発行し、HTTPSが標準で有効化されるため、本番に近い安全なローカル開発が可能です。
Laravelプロジェクトの作成
ServBayでは、ウェブサイトプロジェクトを下記のディレクトリに統一して格納することを推奨しています。これにより、ファイル構成を整理しやすく、管理も効率化できます。
- macOS:
/Applications/ServBay/www
- Windows:
C:\ServBay\www
Composerのインストール確認
ServBayにはComposerが標準で含まれているため、別途インストールする必要はありません。ターミナルでComposerが利用可能か確認しましょう。
bashcomposer --version
1バージョン情報が表示されればComposerの準備は完了です。
新しいLaravelプロジェクトの作成
ターミナルを開き、推奨ディレクトリに移動してComposerで新規Laravelプロジェクトを作成します。ここではプロジェクトディレクトリ名を
servbay-laravel-app
とします。macOS:
bashcd /Applications/ServBay/www # プロジェクトディレクトリ作成 mkdir servbay-laravel-app # ディレクトリに移動 cd servbay-laravel-app # ComposerでLaravelプロジェクトを現在のディレクトリに作成 composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7Windows:
cmdcd C:\ServBay\www # プロジェクトディレクトリ作成 mkdir servbay-laravel-app # ディレクトリに移動 cd servbay-laravel-app # ComposerでLaravelプロジェクトを現在のディレクトリに作成 composer create-project --prefer-dist laravel/laravel .
1
2
3
4
5
6
7これでLaravelおよびその依存パッケージがダウンロード・インストールされます。
プロジェクトディレクトリへ移動
ターミナルの現在地が新規作成したLaravelプロジェクトのルートディレクトリか確認してください。
macOS:
bashcd /Applications/ServBay/www/servbay-laravel-app
1Windows:
cmdcd C:\ServBay\www\servbay-laravel-app
1
初期設定
アプリケーションキーの生成
Laravelはアプリケーションキーを利用して、セッションや暗号化データを安全に管理しています。プロジェクトルートでArtisanコマンドを実行してキーを生成してください。
プロジェクトルートパス:
- macOS:
/Applications/ServBay/www/servbay-laravel-app
- Windows:
C:\ServBay\www\servbay-laravel-app
bashphp artisan key:generate
1このコマンドにより
.env
ファイルのAPP_KEY
に値が設定されます。- macOS:
環境変数の設定(.envファイル)
Laravelは
.env
ファイルでデータベース接続、アプリURLなど、環境ごとの設定を管理します。プロジェクトルートの.env
ファイルを開き、下記を参考に必要な設定をしてください。dotenvAPP_NAME=ServBay Laravel Demo APP_ENV=local APP_KEY=base64:... # この値はphp artisan key:generateで生成済み APP_DEBUG=true APP_URL=https://servbay-laravel-test.local LOG_CHANNEL=stack # データベース設定例(MySQLの場合) DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=servbay_laravel_app # 使用するDB名 DB_USERNAME=root # ServBayのデフォルトDBユーザー DB_PASSWORD=password # ServBayのデフォルトDBパスワード # キャッシュ/キュー設定例(Redis) CACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBayのデフォルトRedisはパスワード不要 REDIS_PORT=6379 # キャッシュ/キュー設定例(Memcached) # CACHE_STORE=memcached # MEMCACHED_HOST=127.0.0.1 # MEMCACHED_PORT=11211
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26注意: 使用するデータベースやサービスによって
DB_*
やREDIS_*
,MEMCACHED_*
設定を調整してください。ServBayのデフォルトユーザーやパスワードはServBayコントロールパネルで確認できます。
Webサーバーの設定(ServBayでサイト追加)
ServBayのサイト管理機能を使い、Laravelプロジェクトの public
ディレクトリにドメインを割り当ててWebサーバーを構成します。
ServBayコントロールパネルを開く
ServBayアプリを起動し、コントロールパネルを開きます。
新しいサイトを追加
コントロールパネル内の「サイト」セクションに移動し、追加ボタン(
+
などのアイコン)をクリックして新しいサイトを登録します。サイト情報の入力
下記を参考にサイト情報を設定します。
名前:
My First Laravel Dev Site
(管理しやすい名称)ドメイン:
servbay-laravel-test.local
(ブラウザでアクセスするドメイン名)サイトタイプ:
PHP
PHPバージョン: Laravelバージョンに適したPHP(例:
8.3
)サイトルート:
- macOS:
/Applications/ServBay/www/servbay-laravel-app/public
- Windows:
C:\ServBay\www\servbay-laravel-app\public
(重要: Laravelプロジェクトルートの
public
サブディレクトリを指定してください)- macOS:
より詳しい手順やオプションはServBay公式ドキュメント内 最初のサイト追加 を参照してください(英語版リンク推奨)。
設定保存 & 反映
サイト情報を保存すると、ServBayがWebサーバー(デフォルトはCaddy)の設定を自動更新します。必要に応じてWebサーバー再起動指示に従ってください。
サイトのアクセス確認
これで設定したドメイン経由でLaravelプロジェクトがアクセスできるようになっています。
ブラウザを開く
ブラウザで設定したドメイン(例:
https://servbay-laravel-test.local
)にアクセスします。結果の確認
正しく設定されていればLaravelのウェルカムページが表示されます。
簡単なサンプルコード追加
より分かりやすく動作確認するため、routes/web.php
ファイルに「Hello ServBay!」を返すシンプルなルートを追加しましょう。
プロジェクトの routes/web.php
を開き、以下の内容を追加または編集します。
php
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| ここでアプリケーション用のwebルートを登録します。
| これらのルートは RouteServiceProvider によって "web" ミドルウェアグループ内で読み込まれます。
| さあ、何か素晴らしいものを作りましょう!
|
*/
Route::get('/', function () {
return 'Hello ServBay!'; // この行を追加または編集してください
});
// ... 他のルート
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
保存後、https://servbay-laravel-test.local
に再度アクセスすると「Hello ServBay!」が表示されるはずです。
データベース連携サンプル
Laravelは強力なORM(Eloquent)と抽象層により、さまざまなデータベースと簡単に連携できます。ServBayはMySQL、PostgreSQL、MongoDB、Redis、Memcachedなどを標準搭載しており、ローカル開発・テストが手軽に行えます。
NoSQLデータベースサンプル
ServBayにはRedisとMemcachedが統合されており、PHP拡張もあらかじめインストール済みです。
Memcachedサンプル
.env設定
.env
ファイルでMemcachedの接続情報を設定します(未設定の場合)dotenvCACHE_STORE=memcached MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211 # ServBayのデフォルトMemcachedポート
1
2
3Memcachedの利用
ルートもしくはコントローラでLaravelのキャッシュファサードを利用してMemcachedにアクセス可能です。
routes/web.php
にテスト用ルート例を追加します。phpuse Illuminate\Support\Facades\Cache; Route::get('/memcached-test', function () { // キャッシュにデータを10分(600秒)保存 Cache::put('servbay_memcached_key', 'Hello from Memcached on ServBay!', 600); // キャッシュからデータ取得 $value = Cache::get('servbay_memcached_key'); if ($value) { return "Memcachedデータ: " . $value; } else { return "Memcachedデータが存在しないか期限切れです。"; } });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15ブラウザで
https://servbay-laravel-test.local/memcached-test
にアクセスしてご確認ください。
Redisサンプル
.env設定
.env
ファイルでRedisの接続情報を設定します(未設定の場合)dotenvCACHE_STORE=redis REDIS_HOST=127.0.0.1 REDIS_PASSWORD=null # ServBayはデフォルトでパスワードなし REDIS_PORT=6379 # ServBayのデフォルトRedisポート
1
2
3
4注意: MemcachedとRedis両方設定した場合、
.env
のCACHE_STORE
は片方のみ有効にしてください(不要な方はコメントアウト)。Redisの利用
ルートやコントローラで、RedisファサードやCacheファサードを使ってRedisにアクセスします。
routes/web.php
にテスト用ルート例を追加します。phpuse Illuminate\Support\Facades\Redis; // または、CACHE_STORE=redisが設定されていればCache facadeも利用可能 // use Illuminate\Support\Facades\Cache; Route::get('/redis-test', function () { // Redisファサード使用例 Redis::set('servbay_redis_key', 'Hello from Redis on ServBay!'); $value_redis = Redis::get('servbay_redis_key'); // もしくはCacheファサード使用例(CACHE_STORE=redisが有効な場合) // Cache::put('servbay_redis_key', 'Hello from Redis on ServBay!', 600); // $value_cache = Cache::get('servbay_redis_key'); return "Redisデータ: " . $value_redis; });
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15ブラウザで
https://servbay-laravel-test.local/redis-test
にアクセスしてご確認ください。
RDB(MySQL & PostgreSQL)サンプル
ServBayにはMySQL・PostgreSQLのデータベースサーバーが搭載されています。LaravelのEloquent ORMを使えば簡単に接続できます。
まず、プロジェクト用のデータベースを作成します。ServBay制御パネルからphpMyAdmin、Adminer、pgAdminなどのDB管理ツール、またはコマンドラインクライアントを使って servbay_laravel_app
データベースを作成してください。
次に、Laravelのマイグレーション機能でテーブル構造を作成します。
マイグレーションファイルの作成
プロジェクトルートでArtisanコマンドを実行し、新しいマイグレーションファイルを作成します。
bashphp artisan make:migration create_accounts_table --create=accounts
1database/migrations
ディレクトリにマイグレーションファイルが生成されます。マイグレーションファイルの編集
作成されたマイグレーションファイル(ファイル名例:
YYYY_MM_DD_HHMMSS_create_accounts_table.php
)を開き、up
メソッドでaccounts
テーブルの構造を定義します。php<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * マイグレーション実行処理 */ public function up(): void { Schema::create('accounts', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamps(); // created_at と updated_at カラムを追加 }); } /** * マイグレーションの巻き戻し処理 */ public function down(): void { Schema::dropIfExists('accounts'); } };
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29ファイルを保存します。
マイグレーションの実行
プロジェクトルートでArtisanコマンドを実行して
accounts
テーブルを作成します。bashphp artisan migrate
1DB設定が正しく、
servbay_laravel_app
データベースが存在すれば、このコマンドでaccounts
テーブルおよびusers
,password_reset_tokens
,failed_jobs
,cache
,cache_locks
,jobs
,job_batches
などLaravel標準テーブルが作成されます。
MySQLサンプル
MySQL用の .env設定
.env
ファイルでMySQL用のDB設定を確認してください。dotenvDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 # ServBayのデフォルトMySQLポート DB_DATABASE=servbay_laravel_app DB_USERNAME=root DB_PASSWORD=password # ServBayのMySQLデフォルトパスワード
1
2
3
4
5
6サンプルデータの書き込み
routes/web.php
にaccounts
テーブルへデータ追加用ルートを記述します。phpuse Illuminate\Support\Facades\DB; Route::get('/mysql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay Demo User', 'email' => 'demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'MySQLにアカウントを追加しました!'; });
1
2
3
4
5
6
7
8
9
10
11ブラウザで
https://servbay-laravel-test.local/mysql-add-account
にアクセスするとデータが追加されます。サンプルデータの読み込み
routes/web.php
にaccounts
テーブルからデータ取得用ルートを記述します。phpuse App\Models\Account; // Accountモデルを作成済みの場合 // またはDBファサードを直接利用 Route::get('/mysql-accounts', function () { // DBファサード利用 $accounts = DB::table('accounts')->get(); // Accountモデル利用(モデル作成済みの場合) // $accounts = Account::all(); return $accounts; });
1
2
3
4
5
6
7
8
9
10
11
12ブラウザで
https://servbay-laravel-test.local/mysql-accounts
にアクセスしてデータ表示を確認できます。
PostgreSQLサンプル
PostgreSQL用の .env設定
PostgreSQLを利用する場合は
.env
の設定を変更してください。dotenvDB_CONNECTION=pgsql DB_HOST=127.0.0.1 DB_PORT=5432 # ServBayのデフォルトPostgreSQLポート DB_DATABASE=servbay_laravel_app DB_USERNAME=root # ServBayのPostgreSQLデフォルトユーザー DB_PASSWORD=password # ServBayのPostgreSQLデフォルトパスワード
1
2
3
4
5
6注意: 接続先DBを切り替えた場合は、
php artisan migrate:refresh
やphp artisan migrate
を再度実行し、PostgreSQLでテーブルを作成してください。サンプルデータの書き込み(PostgreSQL)
routes/web.php
にaccounts
テーブルへデータ追加用ルートを記述します。phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-add-account', function () { DB::table('accounts')->insert([ 'name' => 'ServBay PG Demo User', 'email' => 'pg-demo-user@servbay.test', 'created_at' => now(), 'updated_at' => now(), ]); return 'PostgreSQLにアカウントを追加しました!'; });
1
2
3
4
5
6
7
8
9
10
11ブラウザで
https://servbay-laravel-test.local/pgsql-add-account
にアクセスするとデータが追加されます。サンプルデータの読み込み(PostgreSQL)
routes/web.php
にaccounts
テーブルからデータ取得用ルートを記述します。phpuse Illuminate\Support\Facades\DB; Route::get('/pgsql-accounts', function () { $accounts = DB::table('accounts')->get(); return $accounts; });
1
2
3
4
5
6ブラウザで
https://servbay-laravel-test.local/pgsql-accounts
にアクセスしてデータ表示を確認できます。
まとめ
ServBayを使うことで、簡単にローカル開発環境を構築し、Laravelプロジェクトの作成・実行ができます。ServBayはPHP、Composer、Caddy Webサーバー、および複数のDBやキャッシュサービスを統合提供するため、環境セットアップにかかる労力を大幅に削減できます。数ステップで新規Laravelプロジェクトが作成でき、Webサーバー構成・開発開始・DBやキャッシュ機能の統合テストがスムーズに行えます。ServBayは開発者に効率的で快適なローカル開発体験を提供します。
ご利用中に不明点や問題が発生した場合は、ServBay公式ドキュメントやコミュニティサポートをご参照ください。