Apache サイトを Caddy に移行する方法
ServBay では、Caddy、Nginx、Apache の 3 種類の Web サーバーが利用可能であり、プロジェクトの要件に応じて選択できます。主要な PHP フレームワークや CMS については、ServBay が Caddy と Nginx 用の URL Rewrite ルール をあらかじめ設定しているため、通常は追加設定の必要はありません。
本記事では、元々 Apache で設定されていた Web サイトを、ServBay のローカル開発環境で Caddy サーバー上で動作させるための手順を解説します。代表例として、一般的な Laravel および WordPress プロジェクトを例に挙げて説明します。
ServBay における Apache サポートについて
ServBay は Web サーバーとして Apache も完全対応しています。もし ServBay のデフォルト Web サーバーを Apache に切り替えたい場合や、Apache サイトの設定について知りたい場合は、デフォルト Web サーバーを Apache に切り替える方法をご参照ください。本記事は既存の Apache 設定サイトを ServBay の Caddy 環境へ移行する方法に特化しています。
概要
Web サイトを別の Web サーバーへ移行する場合、設定やファイルの適応が必要です。ServBay では、Caddy を Web サーバーとして利用できるだけでなく、多くの PHP フレームワークや CMS システム向けに「すぐに使える」環境を提供しています。つまり、Rewrite ルールなどの必要な設定は ServBay が自動対応してくれるため、Apache サイトの Caddy への移行も非常に簡単です。主な手順は、ServBay 上で正しく「サイトの追加」を行うだけです。
移行前の準備
移行作業を始める前に、以下の準備を必ず行ってください。
- ファイルのバックアップ: Web サイトの全ファイル(コード、画像、アップロードファイルなど)を完全にバックアップしてください。
- データベースのバックアップ: 利用中のデータベースをエクスポートして保存します。ServBay は MySQL, PostgreSQL, MongoDB など複数対応しているため、適切なツールでバックアップしましょう。
- ServBay のインストール確認: macOS 上で ServBay をインストールし正常に起動していることを確認してください。
- Caddy パッケージの有効化: ServBay アプリ内で Caddy パッケージが有効になっているか確認しましょう。
Laravel サイトを Caddy へ移行する
ここでは Laravel サイトを例に、Apache 設定からの移行手順を説明します。
典型的な Apache 設定例(ServBay 以外)
下記は、ServBay 以外の環境で Laravel サイトを Apache VirtualHost で運用する場合のサンプルです。DocumentRoot
は public
ディレクトリを指し、.htaccess
に記述した Rewrite ルールのため AllowOverride All
を有効化しています。
<VirtualHost *:80>
ServerName laravel.demo
DocumentRoot /path/to/your/laravel/public
<Directory /path/to/your/laravel/public>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 通常、PHP の処理方法も設定します(FPM や mod_php など)
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ServBay でこの Laravel サイトを Caddy で動作させる
ServBay では、上記 Apache 設定を Caddy 用に手動で記述・変換する必要はありません。ServBay の設計思想は、ローカル開発の設定をできる限りシンプルにすることです。Laravel のような人気フレームワークの場合、サイト追加時に public
ディレクトリの指定や Rewrite ルールの対応も含め、正しい Caddy 設定が自動生成されます。
実際の操作手順:
- Laravel プロジェクトの全ファイルを ServBay サイトルート配下のサブディレクトリ(例:
/Applications/ServBay/www/your-laravel-project
)にコピーします。必ずpublic
フォルダも含めてください。 - ServBay アプリケーションを開きます。
- ServBay の「Web サイト(Websites)」管理画面に移動します。
- 「サイト追加」ボタンをクリック。
- 表示される設定ウィンドウで以下を設定:
- ドメイン (Domain): 例:
laravel.servbay.demo
。ServBay が自動で hosts ファイルに反映します。 - サイトルート (Document Root): 「参照」ボタンで
public
ディレクトリ(例:/Applications/ServBay/www/your-laravel-project/public
)を選択。 - Web サーバー (Web Server):
Caddy
を選択。 - PHP バージョン (PHP Version): プロジェクトで必要な PHP バージョンを選択。
- アプリケーションタイプ (Application Type): 必ず
Laravel
を選択。これが自動設定のポイントです。
- ドメイン (Domain): 例:
- 「保存」または「追加」ボタンをクリック。
これで laravel.servbay.demo
用の Caddy 設定が自動生成され、public
ディレクトリへのルーティングや URL Rewrite、PHP リクエスト転送も全て自動対応されます。以降、ブラウザで http://laravel.servbay.demo
を開くだけで Laravel サイトが動作します。
理論的な Caddy 設定例(ServBay により自動生成:参照用)
どのような Caddyfile が自動生成されているかイメージしやすいよう、Laravel 用の理論的サンプルを下記に示します。このファイルを手動で作成・編集する必要はありません。
laravel.servbay.demo {
# サイトルートを public ディレクトリに設定
root * /Applications/ServBay/www/your-laravel-project/public
# PHP FastCGI の設定
# 使用 PHP バージョンに応じて ServBay が自動でソケットパスを指定
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# 静的ファイルの配信
file_server
# Laravel の主な Rewrite ルール:実ファイルもディレクトリも該当しない場合は index.php へリライト
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
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 サイトを Caddy へ移行する
続いて、WordPress サイトの移行手順です。
典型的な Apache 設定例(ServBay 以外)
下記は、ServBay 以外の環境で WordPress を Apache VirtualHost で運用する際の例です。WordPress は .htaccess
の Rewrite ルールによるパーマリンク制御を多用します。
<VirtualHost *:80>
ServerName wordpress.demo
DocumentRoot /path/to/your/wordpress
<Directory /path/to/your/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 通常、PHP の処理方法も設定します
# FilesMatch \.php$>
# SetHandler "proxy:unix:/path/to/php-fpm.sock|fcgi://localhost"
# </FilesMatch>
</VirtualHost>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ServBay でこの WordPress サイトを Caddy で動作させる
Laravel と同様、ServBay で WordPress を Caddy サーバーで運用する場合も、Caddy 設定の手動入力は不要です。WordPress 用の Rewrite ルールも自動適用されます。
実際の操作手順:
- WordPress プロジェクト全体を ServBay サイトルート配下のサブディレクトリ(例:
/Applications/ServBay/www/your-wordpress-site
)にコピーします。index.php
やwp-admin
、wp-includes
などがきちんと含まれていることを確認してください。 - ServBay アプリケーションを開きます。
- サイト管理画面で「サイト追加」をクリック。
- 設定ウィンドウ内で次を入力:
- ドメイン (Domain): 例:
wordpress.servbay.demo
- サイトルート (Document Root): WordPress プロジェクトのルートディレクトリを指定。
- Web サーバー (Web Server):
Caddy
を選択。 - PHP バージョン (PHP Version): 必要なバージョンを選択。
- アプリケーションタイプ (Application Type):
WordPress
を選択。
- ドメイン (Domain): 例:
- 「保存」または「追加」ボタンをクリック。
これで wordpress.servbay.demo
用の Caddy 設定が自動生成され、サイトルート・URL リライト(パーマリンク対応)・PHP 転送などを ServBay が全て対応します。ブラウザで http://wordpress.servbay.demo
へアクセスし、WordPress サイトを動作確認しましょう。パーマリンク機能もそのまま利用できます。
理論的な Caddy 設定例(ServBay により自動生成:参照用)
下記は WordPress 用の理論的 Caddyfile 例です。手動作成の必要はありません。
wordpress.servbay.demo {
# サイトルートを設定
root * /Applications/ServBay/www/your-wordpress-site
# PHP FastCGI の設定
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# 静的ファイルの配信
file_server
# WordPress の主な Rewrite ルール(パーマリンク対応)
# 実ファイル・ディレクトリでない場合 index.php へリライト
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
rewrite @notStatic /index.php
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
まとめ
Apache 向けに設定していた Laravel や WordPress サイトも、ServBay の Caddy サーバー環境への移行は非常に簡単です。主要アプリタイプへ対応する ServBay の自動設定機能により、Apache の .htaccess
や VirtualHost 設定を Caddyfile へ手動で変換する必要はありません。ServBay アプリケーションの「Web サイト」管理画面で、ドメイン指定・ドキュメントルート指定・Web サーバーに Caddy 選択、そしてアプリケーションタイプ(Laravel/WordPress など)を選ぶだけで、複雑な Rewrite ルールを含む Caddy 設定が自動生成されます。
この自動化機能により、移行作業やローカル開発環境の構築が大幅にシンプルになり、サーバー設定に煩わされることなく、開発そのものに集中できるようになります。