ServBayディレクトリ構造
ServBay のディレクトリ構造はシンプルで分かりやすいです。Linux/Unix システムに慣れている方にはとても似た感じがするでしょう。
典型的な ServBay のディレクトリ構造は以下の通りです:
ServBay
|____backup
| |____config
| |____hosts
|____bin
|____data
| |____servbay
|____db
| |____redis
|____etc
|____logs
|____package
| |____bin
| |____common
| | |____imap-uw
| | |____include
| | |____lib
| | |____libexec
| | |____openssl
| | |____share
| |____etc
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____openldap
| | |____php
| | |____redis
| | |____scws
| |____mariadb
| | |____x.x
| |____node
| | |____xx
| |____php
| | |____x.x
| |____sbin
| |____var
| | |____log
| | |____run
|____sbin
|____script
|____ssl
| |____caddy
|____tmp
|____www
| |____servbay
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
以下に各ディレクトリの用途を詳述します。
メインディレクトリ
ServBay のメインディレクトリは /Applications/ServBay
にあり、すべてのファイルがそこに格納されます。
バックアップが必要な場合(例えば Time Machine などを使用する時)、このディレクトリの完全バックアップを行ってください。
ウェブルートディレクトリ
ウェブのルートディレクトリは /Applications/ServBay/www
にあります。各ホストごとに個別のフォルダを作成してファイルを格納することをお勧めします。これにより、構造が明確で管理が容易になります。
例:
/Applications/ServBay/www
|____com
| |____servbay
| | |____web # web.servbay.com
| | |____support # support.servbay.com
| | |____api # api.servbay.com
|____local
| |____sam
| | |____www # www.sam.local
| |____servbay
| | |____new # new.servbay.local
2
3
4
5
6
7
8
9
10
11
設定ファイルディレクトリ
設定ファイルのディレクトリは /Applications/ServBay/etc
にあります。これはシンボリックリンクで、実際のファイルは /Applications/ServBay/package/etc
に保存されています。
通常は /Applications/ServBay/etc
を直接使用できます。
以下は一般的なソフトウェアパッケージの設定ファイル例です:
PHP
PHP 設定ファイルのディレクトリは二層構造になっています。etc/php
の下に各バージョンのディレクトリがあり、例えば 5.6
、7.4
、8.3
などがあります。典型的な構造は以下の通りです:
php
|____5.6
| |____conf.d
|____7.0
| |____conf.d
| |____php-fpm.d
|____7.4
| |____conf.d
| |____php-fpm.d
|____8.3
| |____conf.d
| |____php-fpm.d
|____8.4
| |____conf.d
| |____php-fpm.d
2
3
4
5
6
7
8
9
10
11
12
13
14
15
各バージョンのディレクトリには php.ini
、php-fpm.conf
、pear.conf
などのファイルがあります。これらのファイルを変更した後は、対応する PHP サービスを再起動して最新の設定を反映させる必要があります。
conf.d
ディレクトリは PHP 拡張設定ディレクトリで、xdebug.ini
、opcache.ini
、redis.ini
などのファイルを含んでいます。これらのファイルを編集することで、各 PHP 拡張機能を読み込んだり、アンインストールしたり、設定を変更したりすることができます。同様に、変更後は対応する PHP サービスを再起動してください。
注意:各小バージョンと大バージョンは同じ設定ファイルを共有します。例えば、8.3.3
と 8.3.5
は 8.3
の設定ファイルを共有します。
MariaDB
MariaDB の設定ファイルディレクトリも二層構造で、例えば etc/mariadb/11.2
などです。このフォルダには my.cnf
ファイルが1つだけあり、変更後は再起動が必要です。各小バージョンと大バージョンは同じ設定ファイルを共有します。
Caddy
注意:Caddyfile は ServBay によって自動生成されるため、変更しないでください。変更すると自動的に上書きされます。カスタム設定が必要な場合は、直接 ServBay の ホスト
で設定してください。
dnsmasq
このディレクトリには主に2つのファイルがあります:dnsmasq.conf
と domains.conf
。dnsmasq.conf
はデフォルトの設定ファイルで、domains.conf
は自動生成されるドメインファイルです。
注意:dnsmasq.conf
と domains.conf
ファイルは共に ServBay によって自動生成されるため、変更しないでください。変更すると自動的に上書きされます。
ServBay 設定ディレクトリ
/Applications/ServBay/data
このディレクトリには ServBay の正常運行に必要な設定ファイルや情報が保存されています。バックアップに注意し、ファイルを削除したり変更したりしないようにしてください。
実行ファイルおよびスクリプトディレクトリ
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
2
3
ServBay のすべての実行ファイルは bin
と sbin
ディレクトリにあります。各バージョンの PHP、Node などもあり、これらのディレクトリにシンボリックリンクが作成されています。
これらのディレクトリには curl
、openssl
、frpc
、各バージョンの PHP と Node など、多くの一般的なツールが含まれています。
例えば、特定のスクリプトを PHP 5.6 で動作させるためには php-5.6
を使用したり、LTSでない Node.js 15 のスクリプトを実行するためには node-15
を使用することができます。
特に説明が必要なのは script
ディレクトリです。このディレクトリには ServBay のシステムスクリプトが含まれており、サービスの起動や停止、データベースの初期化などの操作に使用されます。これらのスクリプトは直接実行できますが、変更や削除はしないでください。
これらのスクリプトは servbayctl
にパッケージされています。例えば:
servbayctl start php 7.0
データベースファイルディレクトリ
/Applications/ServBay/db
etc
ディレクトリと同様に、db
ディレクトリも多層構造になっており、各小バージョンと大バージョンが同じデータベースを共有します。日常の開発ではこのディレクトリのバックアップに注意してください。
ログディレクトリ
/Applications/ServBay/logs -> package/var/log
ServBay のすべてのログはこのディレクトリに保存されます。PHP と XDebug のログは多くのファイルを生成するため、二次ディレクトリに保存されますが、他のログは対応するサービスのサブディレクトリに保存されます。
ウェブアクセスログは caddy
ディレクトリに保存され、ドメインごとに管理されます。
PHP のログには php-fpm.log
(php-fpm のログ)と errors.log
(エラーログ)の2つがあります。errors.log
はコードの実行中にエラーが発生し、PHP フレームワークでキャッチされずログに保存されなかった場合にのみ生成されます。
例えば、Laravel
のエラーログは Laravel
フレームワークの storage/logs/laravel.log
に保存されますが、WordPress
や trongate
のエラーログは errors.log
に存在する可能性があります。
注意:ログファイルは多くのスペースを占有するため、定期的な整理が必要です。
パッケージディレクトリ
/Applications/ServBay/package
このディレクトリには ServBay のすべてのインストール済みパッケージが含まれており、構造は パッケージ名/大バージョン/小バージョン
になっています。例えば package/php/8.3/8.3.7
などです。
不要になった旧バージョンは手動で削除してスペースを節約できます。
注意:各フォルダには current
という名前のシンボリックリンクがあり、最新のパッケージバージョンを指しています。これを削除するとサービスが起動しなくなるので注意してください。
SSL 証明書ディレクトリ
/Applications/ServBay/ssl
このディレクトリには SSL 証明書が保存されています。ローカルの SSL ルート証明書(CA)も含まれています。
バックアップディレクトリ
/Applications/ServBay/backup
これは ServBay の自動バックアップディレクトリで、現在は /etc/hosts
ファイルのバックアップのみを行っています。
一時ファイルディレクトリ
/Applications/ServBay/tmp
このディレクトリには、各サービスの実行中に生成される .pid
ファイルや PHP、MariaDB、PostgreSQL の ソケットファイル
(例えば php-cgi.sock
、mysql.sock
など)があります。
通常の開発では、プログラムが TCP ポートを介して php-fpm やデータベースにアクセスする以外に、ソケットファイルを介して php-fpm やデータベースにアクセスすることもできます。ソケットファイルは通常、TCP ポートよりも高いスループット、パフォーマンス、低レイテンシーを提供します。
公共コンポーネントおよび開発ライブラリ
/Applications/ServBay/package/common
このディレクトリには ServBay のすべてのアプリケーションが必要とする共通コンポーネントが保存されています。例えば、各種 *.dylib
ファイルです。
ServBay Development Library
をインストールしている場合、ここには include
ディレクトリがあり、lib
の下には各種 *.la
や *.a
ファイルがあります。これらは再コンパイルに必要なライブラリおよびヘッダファイルです。
注意:lib/*.dylib
ファイルは削除しないでください。必要なライブラリが不足すると、プログラムが正常に動作しなくなる可能性があります。