NGINX サイトを ServBay の Caddy サーバーへ移行する方法
ServBay は、Caddy・NGINX・Apache など多くの人気ウェブサーバーを統合した、強力なローカル Web 開発環境です。特に Caddy と NGINX 用には、よく使われる URL リライトルール が事前にセットアップされており、開発者の設定作業を大幅に簡素化しています。
この記事では、既存の NGINX サイトを ServBay に組み込まれた Caddy サーバーへシームレスに移行する方法を、詳しいガイドとしてご紹介します。人気の PHP フレームワークである Laravel や CMS の WordPress を例に、移行プロセス全体を解説します。
ServBay のウェブサーバー全面対応
ServBay は Caddy・NGINX・Apache を完全サポートしており、プロジェクトに応じてデフォルトの Web サーバーを柔軟に切り替えられます。詳細は デフォルト Web サーバーの切り替え方法 ドキュメントをご参照ください。
概要
ウェブサイトを別の Web サーバーへ移行する際は、設定ファイルやサイトファイルの移動が必要になります。ServBay での Caddy への移行は非常にシンプルに設計されています。Laravel・WordPress・Symfony・CodeIgniter・Drupal・Joomla など、ほとんどの PHP ベースのフレームワークや CMS で手動による Caddy 設定ファイルの編集は原則不要です。ServBay は GUI でサイト設定を行うだけで Caddyfile を自動生成します。
移行前の準備
移行作業を始める前に、以下の準備を必ず行ってください。
- サイトファイルのバックアップ: サイトのルートディレクトリ配下のすべてのファイル・フォルダを完全にバックアップしてください。
- データベースのバックアップ: サイトで使用しているデータベース(MySQL・PostgreSQL・MongoDB など)も必ずバックアップを取得します。ServBay には組み込みの DB 管理ツールがあり、手動バックアップも対応しています。
- ServBay のインストール: macOS 環境へ ServBay が正しくインストール・起動されていることを確認します。
- ファイル配置の確認: サイトのファイルを ServBay 既定のウェブルート
/Applications/ServBay/www
またはそのサブディレクトリに配置してください。たとえばプロジェクト名がmyproject
なら/Applications/ServBay/www/myproject
などに設置します。
ServBay における Caddy の動作について
ServBay が Caddy の設定をどのように管理しているか理解することは、移行時に非常に重要です。Caddyfile を手動で編集する場合とは異なり、ServBay では GUI からサイトを追加・設定します。サイトを追加し、Caddy をWebサーバーとして選択すると、指定したドメイン名・ウェブルート・PHP バージョン等に基づいて、Caddyfile の断片を自動生成および管理します。こうした断片は ServBay のメイン Caddyfile へインクルードされ、ウェブサイトが問題なく動作する仕組みです。
つまり、ServBay GUI でサイトを登録するだけで Caddy の設定も自動で完了し、.caddyfile
などのテキストファイルを手で編集する必要はありません。
移行手順
NGINX サイトを ServBay の Caddy サーバーへ移行する流れは非常にシンプルです。
- ServBay を起動: ServBay アプリケーションが起動していることを確認します。
- サイトファイルの配置: NGINX 用のサイトファイル(アプリコード・画像・CSS・JS などすべて)を ServBay のウェブルート
/Applications/ServBay/www/your-site-name
など新規フォルダにコピーまたは移動します。 - ServBay GUI でサイト追加:
- ServBay アプリを開きます。
- 「Websites」(ウェブサイト)セクションへ進みます。
- 「サイト追加」ボタンをクリックします。
- サイト情報を入力:
- ドメイン (Domain): ローカルアクセス用ドメインを入力(例:
your-site-name.servbay.demo
)。 - ウェブルート (Website Root): ステップ2で配置したフォルダ(例:
/Applications/ServBay/www/your-site-name
)を指定。 - Web サーバー (Web Server):
Caddy
を選択。 - PHP バージョン (PHP Version): サイトが必要とする PHP バージョンを指定。
- ドメイン (Domain): ローカルアクセス用ドメインを入力(例:
- 「保存」または「作成」ボタンを押します。
- サイト動作の確認: ServBay が自動的に新しいドメインをローカル hosts ファイルへ追加し、Caddy の設定を行います。ブラウザで該当のローカルドメイン(例
http://your-site-name.servbay.demo
)にアクセスし、サイトが正しく表示されるか確認します。 - データベース設定: サイトがデータベースを必要とする場合、ServBay で対応する DB サービス(MySQL・PostgreSQL など)を起動し、サイト設定ファイルにて接続情報(一般的に DB ホストは
127.0.0.1
かlocalhost
、ID/パスワード)を更新してください。
例:Laravel サイトの移行
一般的な NGINX 設定例(参考用)
下記は Laravel 用の代表的な NGINX 設定例です。ルートディレクトリやエントリーポイント(index.php
)、PHP FastCGI の記述例などを示します。
server {
listen 80;
server_name laravel.servbay.demo; # ServBay ブランドのサンプルドメイン
root /Applications/ServBay/www/laravel/public; # Laravel の public ディレクトリを指す
index index.php index.html index.htm;
location / {
# ファイルまたはディレクトリが存在しなければ index.php へリライト
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# PHP FastCGI の処理設定
include fastcgi_params;
# ServBay の PHP-CGI ソケットパス
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# 隠しファイルへのアクセスを拒否
deny all;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ServBay で自動生成される Caddy 設定(手動編集不要)
Caddyfile の手動設定は不要です
ServBay では、上記の内容を反映した Caddyfile を手作業で作成・修正する必要はありません。GUI でサイト追加するだけで、必要な Caddy 設定が自動生成されます。以下の Caddy 設定例は、内部的な変換や仕組みを理解するための参考用です。
実際には、ServBay が上記 Laravel サイトのために自動生成する Caddy 設定の一例(簡易版)は以下のようになります(ServBay 実装時はより高機能な内容になる場合があります)。
# この設定は ServBay が自動管理します
laravel.servbay.demo {
# サイトのルートディレクトリ設定
root * /Applications/ServBay/www/laravel/public
# PHP FastCGI 処理の設定・ServBay の PHP-CGI ソケットを指定
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# 静的ファイルの配信
file_server
# 静的ファイル以外を判定するマッチャー
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# 静的ファイルでなければ index.php へリライト
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Laravel を移行する具体的な手順:
- Laravel プロジェクトファイルを
/Applications/ServBay/www/laravel
へコピー。 laravel/public
ディレクトリがウェブルートとなるように配置。- ServBay GUI で新しいサイトを追加:ドメイン
laravel.servbay.demo
・ウェブルート/Applications/ServBay/www/laravel/public
・Web サーバーに Caddy を選択。 - Laravel の
.env
ファイルで正しい DB 接続情報を記述。 http://laravel.servbay.demo
へアクセスして動作確認。
例:WordPress サイトの移行
一般的な NGINX 設定例(参考用)
下記は WordPress サイト向けの標準的な NGINX 設定です。
server {
listen 80;
server_name wordpress.servbay.demo; # ServBay ブランドのサンプルドメイン
root /Applications/ServBay/www/wordpress; # WordPress インストールディレクトリ
index index.php index.html index.htm;
location / {
# WordPress のパーマリンク構造
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# PHP FastCGI 処理設定
include fastcgi_params;
# ServBay の PHP-CGI ソケットパス
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# 隠しファイルへのアクセスを拒否
deny all;
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ServBay で自動生成される Caddy 設定(手動編集不要)
Caddyfile の手動設定は不要です
WordPress も ServBay GUI で Caddy の設定は自動処理されます。以下の例は、内部的にどのようにパーマリンク等が実現されているかの理解用です。
実際に ServBay が上記 WordPress サイト用に自動生成する Caddy 設定の一例は以下の通りです。
# この設定は ServBay が自動管理します
wordpress.servbay.demo {
# サイトのルートディレクトリ設定
root * /Applications/ServBay/www/wordpress
# PHP FastCGI 処理設定
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# 静的ファイルの提供
file_server
# 静的ファイル以外を判定するマッチャー
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# 静的ファイル以外は index.php へリライト、パーマリンク対応
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
WordPress を移行する具体的な手順:
- WordPress ファイルを
/Applications/ServBay/www/wordpress
へコピー。 - ServBay GUI で新しいサイトを追加:ドメイン
wordpress.servbay.demo
・ウェブルート/Applications/ServBay/www/wordpress
・Web サーバーに Caddy を選択。 - WordPress の
wp-config.php
で正しい DB 接続情報を記述。 http://wordpress.servbay.demo
へアクセスして動作を確認。パーマリンクに問題がある場合も、ServBay 側でリライト対応が済んでいるため追加設定不要なケースがほとんどです。WordPress の管理画面「設定」→「パーマリンク」が正しいか念のためチェックしてください。
注意事項
- データベース接続: 移行後は必ずサイトの DB 接続情報を更新し、ServBay 上の DB サービスを参照するようにしてください。
- 環境変数: アプリが特定の環境変数を必要とする場合、ServBay 環境にて(PHP の
.env
や ServBay 設定経由などで)忘れずにセットしてください。 - 複雑な NGINX 設定: 本記事の例では Laravel・WordPress の標準構成を前提としています。NGINX 側で独自のカスタムルールや特殊モジュール、非標準の設定を使っている場合、ServBay の自動設定のみではカバーしきれない可能性があります。その場合は Caddy 公式ドキュメントや、ServBay の Caddy 設定拡張ポイント(もし提供されていれば)、または自動生成ロジックを理解した上で必要な調整を試みてください。標準的なアプリなら ServBay の自動設定だけでほぼ十分です。
- HTTPS/SSL: ServBay はローカルサイトの HTTPS 構成をサポートしています。ServBay User CA または ServBay Public CA を使ってローカル SSL 証明書の発行・信頼ができ、Caddy の TLS 記述を自分で設定する必要はありません。
まとめ
NGINX サイトを ServBay の Caddy サーバーへ移行する作業は、ServBay 独自の自動設定管理のおかげで非常にシンプルです。Laravel・WordPress など一般的なアプリケーションであれば、指定のディレクトリにファイルを配置し、GUI からサイトを追加するだけで移行できます。URL リライトや PHP FastCGI 連携などの複雑な設定も自動で反映され、すぐにローカルで Caddy を使ってサイトを稼働させることが可能です。