ServBayディレクトリ構造の詳細解説
概要
ServBayはmacOSとWindowsに対応したローカルWeb開発環境で、ディレクトリ設計はシンプルかつ整理されています。Linux/Unixに馴染みのある方であれば、ServBayのファイル組織は標準的なファイルシステムに似ていることに気づくでしょう。これにより、開発者は必要なファイルを迅速かつ的確に管理することができます。
ServBayのインストール場所
ServBayのデフォルトインストール先は以下です:
- macOS:
/Applications/ServBay - Windows:
C:\ServBay
ディレクトリ構造の理解は、ローカル開発の効率化・環境設定・トラブルシューティング・データバックアップの観点からも非常に重要です。本記事ではServBayの主要ディレクトリとその役割を詳しく解説します。
一般的なServBayのインストール構造は次の通りです。
ServBay
|____backup # バックアップファイルのディレクトリ
| |____config # 設定ファイルのバックアップ
| |____databases # データベースのバックアップ
| |____ssl # SSL証明書のバックアップ
| |____websites # ウェブサイトファイルのバックアップ
|____bin # ユーザー実行可能ファイル(package/binへのシンボリックリンク)
|____data # ServBay内部データ
| |____servbay # ServBayコア設定・データ
|____db # データベースファイル格納ディレクトリ
| |____mariadb # MariaDBデータ
| |____mongodb # MongoDBデータ
| |____mysql # MySQLデータ
| |____postgresql # PostgreSQLデータ
| |____redis # Redisデータ
|____etc # 設定ファイル(package/etcへのシンボリックリンク)
|____logs # ログファイル(package/var/logへのシンボリックリンク)
|____package # ソフトウェアパッケージ格納ディレクトリ
| |____bin # パッケージの実行ファイル
| |____common # 共通ライブラリ・開発ライブラリ
| | |____imap-uw
| | |____include # ヘッダーファイル(ServBay開発ライブラリ)
| | |____lib # 共有ライブラリ・静的ライブラリ(ServBay開発ライブラリ)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # パッケージ設定ファイル
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____...(他パッケージの設定例:Python, Go, Java, Ruby, Rustなど)
| |____<package_name> # 各パッケージのメインディレクトリ
| | |____<major_version> # メジャーバージョン
| | | |____<full_version> # フルバージョン(パッケージ本体)
| | | |____current # 最新バージョンへのシンボリックリンク
| | |____...
| |____sbin # パッケージのシステム実行ファイル
| |____var # パッケージ可変データ(例:ログの実体)
| | |____log # 実ログファイル格納場所
| | |____run # ランタイムファイル(.pidなど)
|____sbin # システム実行ファイル(package/sbinへのシンボリックリンク)
|____script # ServBay管理用スクリプト
|____ssl # SSL証明書ディレクトリ
| |____acme # ACMEプロトコルによる証明書
| |____caddy # Caddy自動生成証明書
| |____import # インポートされた外部証明書
| |____private # ServBayユーザーCA
| |____public # ServBayパブリックCA
|____tmp # 一時ファイル・ソケット
|____www # ウェブサイトルート
| |____servbay # サンプルサイト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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
以下で、各ディレクトリの役割を詳しく説明します。
ServBayメインディレクトリ
ServBayのメインディレクトリはデフォルトで /Applications/ServBay に設置されます。ServBay関連のパッケージ、設定、データ、ログなどがすべてここに集約されています。
ローカル開発環境の保全やデータの安全のため、定期的なメインディレクトリのバックアップをおすすめします。Time Machineや他のバックアップツールを使い、 /Applications/ServBay ディレクトリを丸ごとバックアップしましょう。
ウェブサイトルートディレクトリ (www)
ウェブサイトの主要ファイルは /Applications/ServBay/www に格納されます。ここがローカルWebプロジェクトの保管場所です。
構造の明確化と管理性向上のため、プロジェクトや仮想サイトごとにサブディレクトリを分けて管理することを強く推奨します。
例:web.servbay.demo、api.servbay.demo、new.servbay.local など各サイトは以下のように配置します。
/Applications/ServBay/www
|____servbay.demo # *.servbay.demo ドメインのサイト格納
| |____web # web.servbay.demo用ファイル
| |____api # api.servbay.demo用ファイル
|____servbay.local # *.servbay.local ドメインのサイト格納
| |____new # new.servbay.local用ファイル
|____myproject # 独立プロジェクト(例:myproject.local)1
2
3
4
5
6
7
2
3
4
5
6
7
この構成で、プロジェクトやドメインごとに区別しやすく、管理が楽になります。
設定ファイルディレクトリ (etc)
設定ファイルディレクトリ /Applications/ServBay/etc は、実際には /Applications/ServBay/package/etc へのシンボリックリンクです。ここはServBayでインストールされた全パッケージ(PHP、MariaDB、Nginx、Caddyなど)の主要設定ファイルが格納されています。
日常的な運用では、 /Applications/ServBay/etc 経由で設定ファイルの参照・編集が可能です。ほとんどの場合、設定変更後は該当サービスの再起動が必要です。
主なパッケージの設定ファイル保存例を紹介します。
PHP (etc/php)
PHP設定ファイルは、メジャーバージョンごとにディレクトリで分かれています。etc/php 配下には 5.6、7.4、8.3 などのディレクトリがあり、それぞれがPHPの主要バージョンに対応しています。
php
|____5.6 # PHP 5.6設定
| |____conf.d # 拡張設定ディレクトリ
| |____php.ini # メイン設定ファイル
|____7.4 # PHP 7.4設定
| |____conf.d # 拡張設定ディレクトリ
| |____php-fpm.d # PHP-FPM Pool設定
| |____php-fpm.conf # PHP-FPM主要設定
| |____php.ini # メイン設定ファイル
|____8.3 # PHP 8.3設定
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____...(他PHPバージョン)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
各バージョンディレクトリには、php.ini(メイン設定)、php-fpm.conf(PHP-FPM設定)、pear.conf などが含まれています。これらを変更後は、ServBay管理パネルまたはservbayctlコマンドで該当のPHP-FPMサービスを再起動してください。
conf.dディレクトリはPHP拡張モジュールの設定ディレクトリです。xdebug.ini、opcache.ini、redis.ini などが格納され、ここを編集することで拡張機能を制御できます。変更後は同様にFPMサービス再起動が必要です。
注意:ServBayは同一メジャーバージョンのPHPに対して1つの設定ファイルを共有する設計です。例:8.3.3と8.3.5はどちらもetc/php/8.3の設定を使用します。
MariaDB / MySQL / PostgreSQL (etc/mariadb, etc/mysql, etc/postgresql)
データベースの設定ファイルもバージョンごとに分かれており、例えばetc/mariadb/11.2のように格納されます。my.cnf(MariaDB/MySQLのメイン設定)、postgresql.conf(PostgreSQL設定)などがあり、編集後はサービス再起動が必要です。各マイナーバージョンもメジャーバージョンで設定ファイルを共有します。
MariaDB・MySQL・PostgreSQLのrootパスワードリセットは、設定ファイル編集ではなくコマンドツールやServBayパネルから操作します。
Caddy (etc/caddy)
Caddyの設定ファイル(Caddyfile)はetc/caddyに格納されています。
重要:ServBayはコントロールパネルで設定されたウェブサイト情報をもとに自動でCaddyfileを生成します。直接編集しないでください。手動で変更しても次回の自動生成で上書きされます。カスタム設定が必要な場合はコントロールパネルのウェブサイト設定から行ってください。
Nginx (etc/nginx)
Nginxのメイン設定nginx.confはetc/nginxに配置されています。Caddy同様、各ウェブサイトの設定が自動生成・反映されます。主設定の手動編集は慎重に行い、可能な限りパネルで管理しましょう。
dnsmasq (etc/dnsmasq)
dnsmasq設定ディレクトリでは、dnsmasq.conf(初期設定)とdomains.conf(ローカルドメイン用)が運用されています。
重要:dnsmasq.conf・domains.confはServBay管理下で自動生成されます。手動で編集しないでください。編集するとローカルサイトがアクセス不可になることがあります。
そのほかのパッケージ設定
Node.js、Python、Go、Java、Ruby、RustなどServBayサポートの各種パッケージも、グローバルやサービス設定ファイルがあればetcディレクトリで同様のバージョン分け構造で管理されます。
ServBay内部データディレクトリ (data/servbay)
/Applications/ServBay/data/servbay1
このディレクトリにはServBayアプリ本体の正常動作に必要な重要な設定ファイル、状態管理情報、ユーザー個別の設定などが格納されています。コントロールパネルやパッケージ管理、ウェブサイト・データベース設定機能を支える要です。
重要:このディレクトリは必ずバックアップしてください。手動で削除や変更は行わないでください。正常起動や設定消失の原因となります。
実行ファイルとスクリプト (bin, sbin, script)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script1
2
3
2
3
ServBayの各種実行ファイルはbin・sbin(それぞれpackage/bin, package/sbinにリンク)に整理されています。ここにはツールや各言語のランタイムが含まれます。
ServBay起動時にPATH環境変数に追加されるため、ターミナルから各実行ファイルへ直接アクセスできます。例:
- 各種ツール:
curl、openssl、frpcなど - 言語ランタイム各バージョン:
php(デフォルト)、php-5.6、php-7.4、php-8.3、node(デフォルト)、node-16、node-18、python3、go、java、ruby、rustcなど。バージョン指定で切り替えできます。 - DBクライアント:
mysql、psql、mongosh、redis-cliなど。
scriptディレクトリ(/Applications/ServBay/script)にはServBayが内部で用いる各種管理用スクリプトが格納されています。サービス起動・停止、DB初期化、保守作業などのためのものです。直接実行も可能ですが、servbayctlコマンドを使う方が推奨されます。
例:PHP 7.4 FPMサービス起動
bash
servbayctl start php 7.41
servbayctlは /Applications/ServBay/bin にあります。
データベースファイル格納場所 (db)
/Applications/ServBay/db1
各種DBの実データファイルはこのディレクトリに格納されます。これもパッケージ/バージョンごとに分類されます。
/Applications/ServBay/db/mariadb/<major_version>:MariaDBデータ/Applications/ServBay/db/mysql/<major_version>:MySQLデータ/Applications/ServBay/db/postgresql/<major_version>:PostgreSQLデータ/Applications/ServBay/db/mongodb:MongoDBデータ/Applications/ServBay/db/redis:Redisデータ
各DBはメジャーバージョン単位でデータファイルを共有します。MariaDB 11.2.x系列は/Applications/ServBay/db/mariadb/11.2に格納されます。
重要:ここには全ローカルDBデータが含まれるため、アップグレードや移行の際は /Applications/ServBay/db を必ずバックアップしてください。ServBayの自動バックアップ機能もデータベースも含みます。
ログファイルディレクトリ (logs)
/Applications/ServBay/logs -> package/var/log1
ServBayは全てのサービスのログを /Applications/ServBay/logs (実体は/Applications/ServBay/package/var/log)に集約します。これにより各サービスの状態やエラー確認が容易です。
サービスごとにサブディレクトリ分けされます:
logs/caddy/、logs/nginx/:Caddy・Nginxのアクセス/エラーログ(ドメインごとにディレクトリ分け)logs/php/:PHP-FPMログ(php-fpm.log)、PHP実行エラーログ(errors.log)。errors.logにはフレームワーク・アプリで捕捉できない致命的エラーが記録されます。logs/mariadb/,logs/mysql/,logs/postgresql/,logs/mongodb/,logs/redis/:各データベースのエラー/スロークエリログ- その他サービス(Python, Go, Java, Ruby, Rustなど)のログも対応するサブディレクトリ内に格納
注意:ログファイル、特にアクセス・エラーログは開発が活発な場合に大量のディスク容量を消費します。定期的な不要ログの確認・削除を推奨します。
パッケージ格納ディレクトリ (package)
/Applications/ServBay/package1
ServBayでインストールされるソフトウェアパッケージはこのディレクトリで管理されます。各パッケージは名前/バージョン/フルバージョンと階層的に整理されます。例:PHP 8.3.7は /Applications/ServBay/package/php/8.3/8.3.7 にインストールされます。
ServBayパネルからパッケージのインストール・アンインストール・バージョン切替も容易です。
不要になった旧バージョンは、該当バージョンディレクトリ(例:/Applications/ServBay/package/php/8.2/8.2.10)を手動削除して容量を節約できます。
重要:各パッケージのメジャーバージョンディレクトリ(例:/Applications/ServBay/package/php/8.3)には、currentという最新バージョンへのシンボリックリンクがあります。このリンクは削除・編集しないでください。動作不良やサービス起動不可となる可能性があります。
SSL証明書ディレクトリ (ssl)
/Applications/ServBay/ssl1
SSL/TLS関連証明書ファイルの収納場所です。
- ServBayがACMEプロトコルで取得したローカルサイト向け証明書(
ssl/caddyまたはssl/acme等) - ローカルHTTPS開発用のServBay専用ルートCA・共通CA(
ssl/private・ssl/public)。これらをシステムの信頼できる証明書にインストールすることで、ローカルサイトのHTTPS警告回避が可能です。
バックアップディレクトリ (backup)
/Applications/ServBay/backup1
ServBayの自動バックアップ機能が重要設定やデータを保存する場所です。開発データや設定を簡単にバックアップできます。
backup/config: ServBayコア設定&パッケージ設定バックアップbackup/databases: MariaDB, MySQL, PostgreSQL, MongoDBなどのデータベースバックアップbackup/ssl: SSL証明書バックアップbackup/websites:/Applications/ServBay/www配下サイトプロジェクトのバックアップ
定期的なバックアップディレクトリの確認と外部ストレージへの移動を推奨します。より堅牢なデータ保全が可能です。
一時ファイルディレクトリ (tmp)
/Applications/ServBay/tmp1
各種サービス稼働時に発生する一時ファイルを格納します。主な用途は .pid ファイルとソケット通信ファイルです。
.pid:サービスプロセスID記録- ソケットファイル:
php-cgi.sock,mysql.sock,pgsql.sock等。Unixドメインソケットによりローカルプロセス間通信が可能です。TCPより高速かつ低レイテンシで、同一マシン上の通信に最適です。
共通コンポーネント&開発ライブラリ (package/common)
/Applications/ServBay/package/common1
ServBayに組み込まれる全パッケージの依存共通コンポーネントや共有ライブラリ(*.dylib)・開発ライブラリを格納します。
ServBay Development Library(オプション/開発用ライブラリ)を導入した場合、include(ヘッダーファイル)とlib(静的ライブラリ*.a/リンクライブラリ*.la)ディレクトリも生成されます。PHP拡張や各種コンポーネントのソースビルド時に便利です。
重要:package/common/libの*.dylibを手動削除しないでください。正常動作に必須の共有ライブラリです。消すと動作不良や依存不足による障害が発生します。
まとめ
ServBayのディレクトリ構造は、パッケージ・設定・データ・ログ・ウェブサイトファイルを明確に分割し、Unix準拠の設計を取り入れることで、開発者にとって直感的かつ効率良くローカル環境を管理できるよう配慮されています。各ディレクトリの役割を理解することで、ServBayによるWeb開発作業は格段に快適になり、特にdataとdbなど重要ディレクトリの定期バックアップは、開発環境を安全に守る上で不可欠です。
