Estrutura de Diretórios do ServBay
A estrutura de diretórios do ServBay é simples e clara. Se você tem uma base em sistemas Linux/Unix, perceberá que são bastante semelhantes.
Uma estrutura típica de diretórios do ServBay é a seguinte:
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
A seguir, detalharemos o uso de cada diretório.
Diretório Principal
O diretório principal do ServBay está localizado em /Applications/ServBay
, onde todos os arquivos são armazenados.
Para backups (como usando Time Machine ou outros métodos de backup), faça um backup completo deste diretório.
Diretório Raiz do Site
O diretório raiz do site está em /Applications/ServBay/www
. Recomenda-se criar uma pasta separada para cada host, de maneira a manter a estrutura organizada e de fácil gerenciamento.
Por exemplo:
/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
Diretório de Arquivos de Configuração
O diretório de arquivos de configuração está localizado em /Applications/ServBay/etc
, que é um link simbólico, enquanto os arquivos reais estão em /Applications/ServBay/package/etc
.
Normalmente, você pode usar diretamente /Applications/ServBay/etc
.
A seguir estão exemplos dos arquivos de configuração de pacotes comuns:
PHP
Os arquivos de configuração do PHP têm uma estrutura de dois níveis. Em etc/php
, existem diretórios para diferentes versões, como 5.6
, 7.4
, 8.3
, entre outros, com a estrutura típica a seguir:
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
Em cada diretório de versão existem arquivos como php.ini
, php-fpm.conf
, pear.conf
, entre outros. Após modificar esses arquivos, é necessário reiniciar o serviço PHP correspondente para aplicar as novas configurações.
O diretório conf.d
é para a configuração de extensões do PHP, contendo arquivos como xdebug.ini
, opcache.ini
, redis.ini
, etc. Editar esses arquivos permite carregar, descarregar ou modificar as extensões do PHP. Da mesma forma, qualquer alteração requer a reinicialização do serviço PHP correspondente para aplicar as novas configurações.
Nota: Cada subversão compartilha a mesma configuração da versão principal. Por exemplo, 8.3.3
e 8.3.5
compartilham os arquivos de configuração do 8.3
.
MariaDB
Os arquivos de configuração do MariaDB também têm uma estrutura de dois níveis, como etc/mariadb/11.2
. Dentro dessa pasta, há apenas um arquivo my.cnf
, cuja modificação exige reinicialização para efeito. Cada subversão compartilha a configuração da versão principal.
Caddy
Nota: O Caddyfile é gerado automaticamente pelo ServBay, não o modifique. Qualquer modificação será automaticamente sobrescrita. Para personalizações, use a configuração no Host
do ServBay.
dnsmasq
O diretório contém dois arquivos principais: dnsmasq.conf
e domains.conf
. dnsmasq.conf
é o arquivo de configuração padrão, e domains.conf
é o arquivo de domínios gerado automaticamente.
Nota: Ambos os arquivos dnsmasq.conf
e domains.conf
são gerados automaticamente pelo ServBay. Não os modifique, pois qualquer alteração será sobrescrita.
Diretório de Configurações do ServBay
/Applications/ServBay/data
Este diretório armazena os arquivos de configuração e informações necessárias para o funcionamento normal do ServBay. Faça backup e não exclua nem modifique nenhum arquivo neste diretório.
Diretório de Executáveis e Scripts
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
2
3
Todos os arquivos executáveis do ServBay estão nos diretórios bin
e sbin
. Incluindo várias versões de PHP, Node, entre outros, com links simbólicos para esses diretórios.
Esses diretórios contêm muitas ferramentas comuns, como curl
, openssl
, frpc
, bem como várias versões de PHP e Node.
Por exemplo, você pode usar php-5.6
para especificar a execução de um script com PHP 5.6, ou usar node-15
para executar um script com Node.js 15 que não é LTS.
Particularmente, o diretório script
contém scripts do sistema ServBay, usados para iniciar e parar serviços, inicializar bancos de dados, entre outras operações. Você pode executar esses scripts diretamente, mas não os modifique nem os exclua.
Esses scripts estão empacotados no comando servbayctl
. Você pode executar servbayctl
diretamente para operações, por exemplo:
servbayctl start php 7.0
Diretório de Arquivos de Banco de Dados
/Applications/ServBay/db
Semelhante ao diretório etc
, o diretório db
tem uma estrutura multilayer, onde cada subversão compartilha o mesmo banco de dados. Realize backups regulares durante o desenvolvimento.
Diretório de Logs
/Applications/ServBay/logs -> package/var/log
Todos os logs do ServBay estão armazenados aqui. Além dos arquivos de PHP e XDebug, que geram mais arquivos e são armazenados em subdiretórios, os demais logs estão nos subdiretórios correspondentes aos serviços.
Logs de acesso ao site estão no diretório caddy
, armazenados por domínio.
Os logs do PHP são divididos em dois: php-fpm.log
(logs gerados pelo php-fpm) e errors.log
(logs de erros). errors.log
somente é gerado para erros de execução de código que não são capturados e armazenados pelo framework PHP.
Por exemplo, erros gerados por Laravel
são armazenados no arquivo storage/logs/laravel.log
do framework Laravel, mas logs de erro de WordPress
e trongate
podem estar em errors.log
.
Nota: Arquivos de log podem consumir muito espaço. Certifique-se de limpá-los regularmente.
Diretório de Pacotes
/Applications/ServBay/package
Este diretório contém todos os pacotes instalados do ServBay, estruturados como nome_pacote/versão_major/versão_minor
. Por exemplo, package/php/8.3/8.3.7
.
Para versões antigas já não utilizadas após a atualização, você pode excluí-las manualmente para economizar espaço.
Nota: Cada pasta possui um link simbólico chamado current
, apontando para a versão mais recente do pacote. Não exclua esse link, caso contrário, os serviços não serão iniciados.
Diretório de Certificados SSL
/Applications/ServBay/ssl
Este diretório armazena certificados SSL, incluindo o certificado raiz local SSL (CA).
Diretório de Backup
/Applications/ServBay/backup
O diretório de backup automático do ServBay é usado atualmente apenas para backup do arquivo /etc/hosts
.
Diretório de Arquivos Temporários
/Applications/ServBay/tmp
Este diretório armazena arquivos .pid
gerados durante a execução dos serviços, além de arquivos Socket
do PHP, MariaDB, PostgreSQL, como php-cgi.sock
, mysql.sock
, etc.
No desenvolvimento diário, você pode acessar o php-fpm e o banco de dados tanto por porta TCP quanto por arquivos socket. Arquivos socket geralmente oferecem maior rendimento, melhor desempenho e menor latência em comparação a portas TCP.
Componentes Comuns e Bibliotecas de Desenvolvimento
/Applications/ServBay/package/common
Este diretório armazena componentes comuns necessários para todas as aplicações do ServBay, como vários arquivos *.dylib
.
Se o ServBay Development Library
estiver instalado, haverá também o diretório include
, e o diretório lib
conterá vários arquivos *.la
, *.a
. Esses são bibliotecas e arquivos de cabeçalho necessários para recompilação.
Nota: Não exclua arquivos lib/*.dylib
, pois isso poderá causar erros na execução do programa devido à falta de bibliotecas necessárias.