ServBay Klasör Yapısı Detaylı Rehberi
Genel Bakış
ServBay, macOS ve Windows için kullanılabilen bir yerel web geliştirme ortamıdır. Klasör yapısı sade ve düzenli olarak tasarlanmıştır. Linux/Unix sistemlerine aşinaysanız, ServBay’in dosya organizasyonunun standart dosya sistemi düzenine ne kadar benzediğini görebilir, böylece dosyaları hızlıca bulabilir ve kolayca yönetebilirsiniz.
ServBay Kurulum Yeri
ServBay’in varsayılan kurulum konumları:
- macOS:
/Applications/ServBay
- Windows:
C:\ServBay
ServBay klasör yapısını anlamak, yerel geliştirme, ortam yapılandırması, hata ayıklama ve veri yedekleme için son derece önemlidir. Bu belgede ServBay’in ana klasörlerini ve amaçlarını detaylı olarak anlatıyoruz.
Tipik bir ServBay kurulumunun klasör yapısı:
ServBay
|____backup # Yedek dosyaları klasörü
| |____config # Yapılandırma yedekleri
| |____databases # Veritabanı yedekleri
| |____ssl # SSL sertifika yedekleri
| |____websites # Web sitesi dosya yedekleri
|____bin # Kullanıcı çalıştırılabilir dosyalar (package/bin’e sembolik link)
|____data # ServBay dahili veri klasörü
| |____servbay # ServBay çekirdek ayarları ve verisi
|____db # Veritabanı dosya depolama klasörü
| |____mariadb # MariaDB veri dosyaları
| |____mongodb # MongoDB veri dosyaları
| |____mysql # MySQL veri dosyaları
| |____postgresql # PostgreSQL veri dosyaları
| |____redis # Redis veri dosyaları
|____etc # Yapılandırma dosyaları klasörü (package/etc’e sembolik link)
|____logs # Log dosyaları klasörü (package/var/log’a sembolik link)
|____package # Yazılım paketleri kurulum klasörü
| |____bin # Paketlerin çalıştırılabilir dosyaları
| |____common # Ortak kütüphaneler ve geliştirme kütüphaneleri
| | |____imap-uw
| | |____include # Header dosyaları (ServBay Development Library)
| | |____lib # Paylaşılan ve statik kütüphaneler (ServBay Development Library)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Paketlerin gerçek yapılandırma dosyası depolama klasörü
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (Python, Go, Java, Ruby, Rust vb. diğer paketlerin ayarları)
| |____<package_name> # Her bir paketin ana klasörü
| | |____<major_version> # Ana sürüm dizini
| | | |____<full_version> # Tam sürüm klasörü (paketin kendisi dahil)
| | | |____current # En güncel tam sürüme sembolik link
| | |____...
| |____sbin # Paketlerin sistem çalıştırılabilir dosyaları
| |____var # Paketlerin değişken verileri (ör. logların gerçek konumu)
| | |____log # Logların gerçek depolama yeri
| | |____run # Çalışma zamanı dosyaları (örn. .pid dosyaları)
|____sbin # Sistem çalıştırılabilir dosyaları (package/sbin’e sembolik link)
|____script # ServBay dahili yönetim betikleri
|____ssl # SSL sertifikaları klasörü
| |____acme # ACME protokolü ile alınan SSL sertifikaları
| |____caddy # Caddy tarafından otomatik oluşturulan SSL sertifikaları
| |____import # Kullanıcı tarafından eklenen üçüncü parti SSL sertifikaları
| |____private # ServBay Kullanıcı CA
| |____public # ServBay Public CA
|____tmp # Geçici dosyalar ve Socket dosyası klasörü
|____www # Web sitesi kök dizini
| |____servbay # Örnek web sitesi klasörü
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
Aşağıda klasörlerin işlevlerini detaylandırıyoruz.
ServBay Ana Klasörü
ServBay’in ana klasörü varsayılan olarak /Applications/ServBay
’dir. Tüm ServBay bağlantılı yazılım paketleri, yapılandırma dosyaları, veriler ve loglar burada toplanır.
Yerel geliştirme ortamınızın ve verilerinizin güvenliği için bu ana klasörü düzenli olarak yedeklemeniz tavsiye edilir. /Applications/ServBay
klasörünü Time Machine veya başka bir yedekleme aracıyla tam olarak yedekleyebilirsiniz.
Web Sitesi Kök Dizini (www
)
Site dosyalarının ana dizini /Applications/ServBay/www
klasörüdür. Tüm yerel web sitesi projelerinizi burada barındırabilirsiniz.
Yapının düzenli ve kolay yönetilebilir kalması için her bağımsız web projesine veya sanal web sitesine (ServBay’de “Web Sitesi” olarak geçer) ayrı bir alt klasör oluşturmanız önerilir.
Örneğin, web.servbay.demo
, api.servbay.demo
ve new.servbay.local
gibi siteler için tavsiye edilen klasör yapısı:
/Applications/ServBay/www
|____servbay.demo # *.servbay.demo alan adlarına ait siteler burada
| |____web # web.servbay.demo web sitesi dosyaları
| |____api # api.servbay.demo web sitesi dosyaları
|____servbay.local # *.servbay.local alan adlarına ait siteler burada
| |____new # new.servbay.local web sitesi dosyaları
|____myproject # Diğer projeler ör. myproject.local için
1
2
3
4
5
6
7
2
3
4
5
6
7
Bu yapı, farklı projeleri ve alan adlarını ayırıp yönetmeyi kolaylaştırır.
Yapılandırma Dosyaları Klasörü (etc
)
Yapılandırma dosyaları klasörü /Applications/ServBay/etc
, aslında /Applications/ServBay/package/etc
’ye sembolik linktir. ServBay’e kurulan tüm yazılım paketlerinin (PHP, MariaDB, Nginx, Caddy vb.) ana yapılandırma dosyaları burada saklanır.
Günlük kullanımda ayar dosyalarını görüntülemek ve değiştirmek için /Applications/ServBay/etc
yolunu kullanabilirsiniz. Çoğu yapılandırma dosyasında değişiklik yaptıktan sonra ilgili servisi yeniden başlatmak gerekir.
Yaygın paketlerin yapılandırma dosyası örnekleri:
PHP (etc/php
)
PHP ayar dosyası klasörü iki seviyelidir ve farklı PHP ana sürümlerini ayırır. Yani etc/php
klasöründe 5.6
, 7.4
, 8.3
gibi klasörler bulursunuz. Örnek yapı:
php
|____5.6 # PHP 5.6 ayarları
| |____conf.d # Eklenti ayar dosyaları klasörü
| |____php.ini # PHP ana ayar dosyası
|____7.4 # PHP 7.4 ayarları
| |____conf.d # Eklenti ayar dosyaları klasörü
| |____php-fpm.d # PHP-FPM havuzu ayarları
| |____php-fpm.conf # PHP-FPM ana ayar dosyası
| |____php.ini # PHP ana ayar dosyası
|____8.3 # PHP 8.3 ayarları
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____... (Diğer PHP sürümleri)
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
Her sürüm dizininde php.ini
(ana ayar dosyası), php-fpm.conf
(FPM ana ayar dosyası, eğer destekleniyorsa), pear.conf
vb. yer alır. Bu dosyaları değiştirdiğinizde, ServBay kontrol panelini veya servbayctl
komutunu kullanarak ilgili PHP-FPM servisini yeniden başlatmanız gerekir.
conf.d
klasörü, PHP eklenti ayarlarının bulunduğu yerdir. İçinde xdebug.ini
, opcache.ini
, redis.ini
gibi dosyalar bulunur. Bu dosyaları düzenleyerek ilgili PHP eklentilerini aktif edebilir, kapatabilir veya yapılandırabilirsiniz. Değişiklik sonrası PHP-FPM servisini yeniden başlatmanız gerekir.
Not: ServBay’de aynı ana PHP sürümü için küçük sürümler tek bir ayar dosyasını paylaşır. Örneğin, PHP 8.3.3
ve 8.3.5
aynı etc/php/8.3
klasörünü kullanır.
MariaDB / MySQL / PostgreSQL (etc/mariadb
, etc/mysql
, etc/postgresql
)
Veritabanı yazılımı ayar klasörleri de sürüme göre ayrılır, örneğin etc/mariadb/11.2
. Bu klasörlerde genellikle ana ayar dosyaları bulunur (MariaDB/MySQL için my.cnf
, PostgreSQL için postgresql.conf
). Dosyada değişiklik yaptıktan sonra ilgili veritabanı servisini yeniden başlatmak gerekir. Küçük sürümler, aynı ana sürümle ayarları paylaşır.
MariaDB, MySQL veya PostgreSQL’de root
şifre sıfırlaması ayar dosyasından değil, komut ile veya ServBay kontrol panelinden yapılır.
Caddy (etc/caddy
)
Caddy ayar dosyası (Caddyfile
) etc/caddy
klasöründe yer alır.
Önemli uyarı: Caddyfile ServBay kontrol panelinde site eklerken otomatik olarak oluşturulur. Lütfen bu dosyayı elle değiştirmeyin. Yaptığınız değişiklikler ServBay dosyayı tekrar oluşturduğunda kaybolur. Özel Caddy ayarı eklemek için kontrol panelindeki site ayarlarını kullanmalısınız.
Nginx (etc/nginx
)
Nginx ana ayar dosyası nginx.conf
etc/nginx
klasöründe bulunur. Caddy’de olduğu gibi, ServBay web sitesi ayarlarını otomatik olarak ekler. Ana ayarı elle düzenlerken dikkatli olun, tavsiye edilen yol kontrol panelinden değişiklik yapmaktır.
dnsmasq (etc/dnsmasq
)
dnsmasq ayar klasörü dnsmasq.conf
(varsayılan ayar dosyası) ve domains.conf
(ServBay’in oluşturduğu domain dosyası) dosyalarını içerir.
Önemli uyarı: Her iki dosya, ServBay tarafından otomatik yönetilir. Dosyaları elle değiştirmeyin. Aksi takdirde yerel sitelere erişim sorunları yaşayabilirsiniz.
Diğer Paketlerin Ayarları
Node.js, Python, Go, Java, Ruby, Rust vb. ServBay destekli diğer yazılımlar için global veya servis düzeyindeki ayar dosyaları da genellikle etc
alt klasörlerinde, benzer sürüm tabanlı yapıda tutulur.
ServBay Dahili Veri Klasörü (data/servbay
)
/Applications/ServBay/data/servbay
1
ServBay uygulamasının çalışma için kritik gerekliliklerini, durum bilgilerini ve kullanıcı ayarlarını barındırır. Bu dosyalar kontrol panelinin işlevleri, paket yönetimi, site ve veritabanı ayarları için gereklidir.
Önemli uyarı: Bu klasörü düzenli olarak yedekleyin. Klasördeki dosyaları elle silmeyin veya değiştirmeyin. Aksi takdirde ServBay başlatılamaz veya yapılandırmalar kaybolur.
Çalıştırılabilir Dosyalar ve Betik Klasörleri (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
1
2
3
2
3
ServBay’in tüm çalıştırılabilir dosyaları bin
ve sbin
klasörlerinde toplanır, ancak bunlar package/bin
ve package/sbin
dizinlerine sembolik linklerdir. İçerikte ServBay’in entegre ettiği birçok araç ve dil çalıştırıcıları bulunur.
Bu çalıştırılabilir dosyalara terminalden doğrudan ulaşabilirsiniz çünkü ServBay dizinlerini PATH ortam değişkenine ekler (genellikle ServBay başlatılırken). Bunlar arasında:
- Sık kullanılan araçlar:
curl
,openssl
,frpc
gibi. - Farklı sürümlerde dil çalıştırıcıları:
php
(varsayılan),php-5.6
,php-7.4
,php-8.3
,node
(varsayılan),node-16
,node-18
,python3
,go
,java
,ruby
,rustc
vb. Özel bir sürümü kullanmak için sürüm numarasını ekleyebilirsiniz. - Veritabanı istemcileri:
mysql
,psql
,mongosh
,redis-cli
gibi.
script
klasörü (/Applications/ServBay/script
) ServBay’in dahili sistem yönetim betiklerini içerir (servis başlatma/durdurma, veritabanı başlatma, bakım işlemleri üzere). Bu betikler ServBay’in çekirdeğine dahildir. Direkt çalıştırılabilir; ancak genellikle servbayctl
komut aracı ile kullanmak daha güvenli ve kolaydır.
Örneğin, PHP 7.4 FPM’i başlatmak için:
bash
servbayctl start php 7.4
1
servbayctl
aracı /Applications/ServBay/bin
klasöründe bulunur.
Veritabanı Dosyaları Klasörü (db
)
/Applications/ServBay/db
1
Bu klasör ServBay’de kurulu veritabanı yazılımlarının veri dosyalarını tutar. Yapılandırma dosyaları gibi, veri klasörleri de yazılım türü ve ana sürüme göre ayrılır:
/Applications/ServBay/db/mariadb/<major_version>
: MariaDB veri dosyaları/Applications/ServBay/db/mysql/<major_version>
: MySQL veri dosyaları/Applications/ServBay/db/postgresql/<major_version>
: PostgreSQL veri dosyaları/Applications/ServBay/db/mongodb
: MongoDB veri dosyaları/Applications/ServBay/db/redis
: Redis veri dosyaları
Her bir veritabanı yazılımının ana sürümü için tek bir veri klasörü kullanılır. Örneğin MariaDB 11.2.x
sürümleri için /Applications/ServBay/db/mariadb/11.2
klasörü kullanılır.
Önemli uyarı: Bu klasör tüm yerel veritabanı verinizi içerir. Ciddi işlemlerden önce (örn. ServBay sürüm yükseltme, sistem taşıma), /Applications/ServBay/db
klasörünü tam olarak yedekleyin. ServBay’in otomatik yedekleme fonksiyonu da veritabanı yedeğini içerir.
Log Klasörü (logs
)
/Applications/ServBay/logs -> package/var/log
1
Tüm entegre servislerin logları /Applications/ServBay/logs
klasörü altında tutulur (aslında /Applications/ServBay/package/var/log
dizinine sembolik linktir). Tüm servislerin çalışma durumu ve hata raporlarını burada kolayca izleyebilirsiniz.
Log klasörleri genellikle hizmet türüne göre alt dizinlere ayrılır:
logs/caddy/
veyalogs/nginx/
: Caddy veya Nginx erişim ve hata logları, genellikle alan ada göre alt dizinlere ayrılır.logs/php/
: PHP-FPM’in logları (php-fpm.log
) ve PHP hata logları (errors.log
).errors.log
genellikle çerçeve veya uygulama tarafından yakalanmayan fatal hataları kaydeder.logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: İlgili veritabanı servislerinin hata ve yavaş sorgu logları.- Diğer servis logları: Python, Go, Java, Ruby, Rust gibi servislerin logları da ilgili alt dizine kaydedilir.
Not: Özellikle erişim ve hata logları aktif geliştirilen projelerde disk alanını hızla tüketebilir. Düzenli olarak gereksiz logları silebilir, disk alanı tasarrufu yapabilirsiniz.
Yazılım Paketleri Klasörü (package
)
/Applications/ServBay/package
1
ServBay, tüm paketlerin kurulumunu ve yönetimini bu klasörde yapar. Her paket bağımsız bir alt dizinde, genellikle paket_adı/ana_sürüm/tam_sürüm
şeklinde gruplanır. Örneğin, bir PHP sürümü /Applications/ServBay/package/php/8.3/8.3.7
'de bulunabilir.
ServBay kontrol panelinden farklı sürümleri kolayca yükleyebilir, kaldırabilir ya da değiştirebilirsiniz.
Kullanmadığınız eski sürümleri kaldırarak (örn. /Applications/ServBay/package/php/8.2/8.2.10
) disk alanı kazanabilirsiniz.
Önemli uyarı: Her paket ana sürüm klasörü altında (/Applications/ServBay/package/php/8.3
gibi), genellikle current
adında bir sembolik link olur ve güncel küçük sürüme işaret eder. Bu current linkini elle değiştirmeyin veya silmeyin. Aksi takdirde ServBay’in ilgili çalıştırıcı veya kütüphane dosyalarını bulamamasına yol açar ve servisler başlatılamaz.
SSL Sertifikaları Klasörü (ssl
)
/Applications/ServBay/ssl
1
Bu klasörde SSL/TLS bağlantılı sertifika dosyaları tutulur:
- ACME protokolüyle yerel siteleriniz için otomatik oluşturulan SSL sertifikaları (genellikle
ssl/caddy
veyassl/acme
alt klasörlerinde, kullandığınız web sunucusuna bağlı olarak). - ServBay tarafından yerel HTTPS geliştirme için oluşturulan kök sertifikalar (ServBay Kullanıcı CA) ve genel sertifikalar (ServBay Public CA). Bunlar genellikle
ssl/private
vessl/public
alt dizinlerinde bulunur. Bu CA sertifikaları sisteminize eklediğinizde, tarayıcılar ServBay’in dağıttığı yerel sitelere ait sertifikalara güvenmiş olur ve HTTPS uyarısı vermez.
Yedekleme Klasörü (backup
)
/Applications/ServBay/backup
1
Bu klasör ServBay’in otomatik yedekleme fonksiyonu tarafından oluşturulan yedekleri depolar. ServBay ile temel geliştirme verilerinizi ve ayarlarınızı kolayca yedekleyebilirsiniz:
backup/config
: ServBay çekirdek ve paket ayar yedekleri.backup/databases
: MariaDB, MySQL, PostgreSQL, MongoDB veritabanlarının yedekleri.backup/ssl
: SSL sertifika dosyalarının yedeği.backup/websites
:/Applications/ServBay/www
altındaki web sitelerinizin yedeği.
Bu klasörün içeriklerini düzenli olarak kontrol edin ve gerekirse dış ortama taşıyarak daha güvenli veri koruması sağlayabilirsiniz.
Geçici Dosyalar Klasörü (tmp
)
/Applications/ServBay/tmp
1
Servislerin çalışma sırasında oluşturduğu geçici dosyalar burada tutulur; en sık rastlananları .pid
dosyaları ve Socket dosyalarıdır.
.pid
dosyaları: Servisin işlem kimliğini (process ID) saklar.- Socket dosyaları: Örn.
php-cgi.sock
,mysql.sock
,pgsql.sock
gibi. Bunlar Unix Domain Socket aracılığıyla PHP-FPM veya veritabanı servisleriyle yerel programların iletişimini sağlar. TCP bağlantısına göre genellikle daha yüksek performans ve daha düşük gecikme ile iletişim sağlar, özellikle aynı makinedeki işlemler arasında.
Ortak Bileşenler ve Geliştirme Kütüphaneleri (package/common
)
/Applications/ServBay/package/common
1
ServBay’in kurulu olduğu tüm paketlerin kullandığı ortak bileşenler, paylaşılan kütüphanler (*.dylib
) ve isteğe bağlı geliştirme kütüphanesi burada saklanır.
ServBay Development Library (isteğe bağlı, derleme bağımlılıkları sunan) kuruluysa, burada include
(header dosyaları) ve lib
(statik ve bağlantı kütüphaneleri *.a
, *.la
) dizinleri bulunur. Bunlar; PHP eklentisi veya ServBay’in dahili kütüphanelerine ihtiyaç duyan yazılımları kaynak kodundan derlemek için gereklidir.
Önemli uyarı: package/common/lib
altındaki *.dylib
dosyalarını manuel olarak silmeyin. Bunlar ServBay’in paketlerinin düzgün çalışması için gereklidir. Sildiğinizde eksik kütüphane nedeniyle programlar çalışmaz.
Özet
ServBay’in klasör yapısı yazılım paketleri, ayarlar, veriler, loglar ve web sitesi dosyalarını net şekilde ayırır; bu yapı Unix sistemlerinden esinlenerek geliştiricilerin yerel ortamlarını yönetmesini kolaylaştırır. Bu klasörlerin amaçlarını bilmek, ServBay ile web geliştirme sürecinizi çok daha verimli ve kolay hale getirecektir. Özellikle data
ve db
gibi kritik klasörleri düzenli olarak yedeklemek, geliştirme ortamınızın veri güvenliğini sağlayacaktır.