ServBay Klasör Yapısının Detaylı İncelemesi
ServBay, macOS için özel olarak tasarlanmış yerel bir Web geliştirme ortamıdır ve klasör yapısı oldukça basit ve düzenlidir. Linux/Unix sistemlerine aşina olanlar, ServBay’in dosya organizasyonunun klasik dosya sistemi düzenine benzediğini fark edecektir. Bu sayede geliştiriciler dosyaları hızlıca bulabilir ve yönetebilir.
ServBay’in klasör yapısını anlamak, yerel geliştirme, ortam yapılandırması, sorun giderme ve veri yedeklemelerinde verimlilik açısından çok önemlidir. Bu belgede, ServBay’in ana klasörlerini ve kullanım amaçlarını detaylıca inceleyeceğiz.
Tipik bir ServBay kurulumunda klasör yapısı aşağıdaki gibidir:
ServBay
|____backup # Yedekleme dosyaları klasörü
| |____config # Yapılandırma yedeklemeleri
| |____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 dizini
| |____servbay # ServBay çekirdek yapılandırmaları ve verileri
|____db # Veritabanı dosyalarının saklandığı 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’ye sembolik link)
|____logs # Günlük dosyaları klasörü (package/var/log’a sembolik link)
|____package # Paketlerin kurulu olduğu dizin
| |____bin # Paketlerin çalıştırılabilir dosyaları
| |____common # Ortak bileşenler ve geliştirme kütüphaneleri
| | |____imap-uw
| | |____include # Başlık dosyaları (ServBay Geliştirme Kütüphanesi)
| | |____lib # Paylaşımlı ve statik kütüphaneler (ServBay Geliştirme Kütüphanesi)
| | |____libexec
| | |____openssl
| | |____share
| |____etc # Paket yapılandırma dosyalarının gerçek konumu
| | |____caddy
| | |____dnsmasq
| | |____mariadb
| | |____mongodb
| | |____mysql
| | |____nginx
| | |____openldap
| | |____php
| | |____postgresql
| | |____redis
| | |____... (Diğer paketler: Python, Go, Java, Ruby, Rust vb. için ayarlar)
| |____<package_name> # Her bir paket ana klasörü
| | |____<major_version> # Ana sürüm klasörü
| | | |____<full_version> # Tam sürüm klasörü (paket dosyalarını içerir)
| | | |____current # Son sürüme sembolik link
| | |____...
| |____sbin # Paketlere ait sistem çalıştırılabilir dosyalar
| |____var # Paketlere ait değişken veriler (örn. logların gerçek yeri)
| | |____log # Günlüklerin gerçek depolanma konumu
| | |____run # Çalışma zamanı dosyaları (örn. .pid dosyaları)
|____sbin # Sistem çalıştırılabilirleri (package/sbin’e sembolik link)
|____script # ServBay dahili yönetim scriptleri
|____ssl # SSL sertifikaları klasörü
| |____acme # ACME protokolüyle alınan SSL'ler
| |____caddy # Caddy’in otomatik ürettiği SSL sertifikaları
| |____import # Kullanıcı tarafından içe aktarılan SSL’ler
| |____private # ServBay Kullanıcı CA’sı
| |____public # ServBay Genel CA’sı
|____tmp # Geçici dosyalar ve Socket dosyaları klasörü
|____www # Web sitesi kök dizini
| |____servbay # Örnek web sitesi klasörü
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, bu klasörlerin ayrıntılı açıklamalarını bulabilirsiniz.
ServBay Ana Klasörü
ServBay’in ana klasörü, varsayılan olarak /Applications/ServBay
yolunda bulunur. Tüm ServBay paketleri, yapılandırma dosyaları, veriler ve günlük dosyaları burada toplanır.
Yerel geliştirme ortamınızın ve verilerinizin güvenliği için bu ana klasörü düzenli aralıklarla yedeklemeniz önerilir. /Applications/ServBay
dizini, Time Machine veya diğer yedekleme araçları ile tamamen yedeklenebilir.
Web Sitesi Kök Dizini (www
)
Web sitesi dosyalarının ana dizini /Applications/ServBay/www
yolundadır. Tüm yerel web projelerinizi bu klasöre yerleştirin.
Düzeni ve yönetimi kolaylaştırmak için her web sitesi projesi veya sanal web sitesi (ServBay’de “site” olarak adlandırılır) için ayrı bir alt klasör oluşturmanız tavsiye edilir.
Örneğin, web.servbay.demo
, api.servbay.demo
ve new.servbay.local
gibi projeleriniz varsa, önerilen yapı şu şekildedir:
/Applications/ServBay/www
|____servbay.demo # Tüm *.servbay.demo alan adları için klasör
| |____web # web.servbay.demo dosyaları
| |____api # api.servbay.demo dosyaları
|____servbay.local # Tüm *.servbay.local alan adları için klasör
| |____new # new.servbay.local dosyaları
|____myproject # Özel projeler (örneğin myproject.local)
2
3
4
5
6
7
Bu yapı sayesinde farklı projeleri ve alan adlarını ayırmak ve yönetmek çok daha kolay olur.
Yapılandırma Dosyası Dizini (etc
)
Yapılandırma dosyası dizini olan /Applications/ServBay/etc
, aslında /Applications/ServBay/package/etc
'ye sembolik bir bağlantıdır. Burada, ServBay ile kurulan PHP, MariaDB, Nginx, Caddy vb. tüm paketlerin ana konfigürasyon dosyalarını bulabilirsiniz.
Günlük kullanımda yapılandırma dosyalarına kolayca /Applications/ServBay/etc
yolundan erişebilir ve üzerinde değişiklik yapabilirsiniz. Çoğu yapılandırma dosyasındaki değişikliklerin etkin olması için ilgili servisi yeniden başlatmanız gerekir.
Bazı yaygın paketlerin yapılandırma dosyalarının örnek konumları:
PHP (etc/php
)
PHP yapılandırma dizini, farklı ana PHP sürümlerine göre iki katmanlı bir yapıya sahiptir. Örneğin, etc/php
altında 5.6
, 7.4
, 8.3
gibi klasörler yer alır. Her dizin bir PHP ana sürümünü temsil eder.
php
|____5.6 # PHP 5.6 yapılandırmaları
| |____conf.d # Eklenti yapılandırmalarının bulunduğu dizin
| |____php.ini # PHP ana konfigürasyon dosyası
|____7.4 # PHP 7.4 yapılandırmaları
| |____conf.d
| |____php-fpm.d # PHP-FPM havuz ayarları
| |____php-fpm.conf # PHP-FPM ana yapılandırma
| |____php.ini
|____8.3 # PHP 8.3 yapılandırmaları
| |____conf.d
| |____php-fpm.d
| |____php-fpm.conf
| |____php.ini
|____... (Diğer PHP sürümleri)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Her ana sürüm klasöründe; php.ini
(ana PHP yapılandırma dosyası), php-fpm.conf
(destekleniyorsa), pear.conf
gibi dosyalar bulunur. Bu dosyaları değiştirdikten sonra, ilgili PHP-FPM servisini ServBay kontrol panelinden veya servbayctl
komutuyla yeniden başlatmanız gerekir.
conf.d
klasörüne eklenti yapılandırmaları (örn. xdebug.ini
, opcache.ini
, redis.ini
) dahil edilir. Bu dosyalar düzenlenerek eklentiler etkinleştirilebilir, devre dışı bırakılabilir veya ayarları değiştirilebilir. Değişiklikten sonra ilgili PHP-FPM servisinin yeniden başlatılması şarttır.
Not: ServBay, aynı ana PHP sürümü altındaki tüm alt sürümler için tek bir yapılandırma klasörü kullanılacak şekilde tasarlanmıştır. Yani, PHP 8.3.3
ve 8.3.5
, konfigürasyonları etc/php/8.3
altındaki dosyaları paylaşır.
MariaDB / MySQL / PostgreSQL (etc/mariadb
, etc/mysql
, etc/postgresql
)
Veritabanı yazılımları da sürüm bazında organize edilmiştir. Örneğin, etc/mariadb/11.2
klasörü MariaDB’nin 11.2 serisinin konfigürasyonlarını içerir. Ana yapılandırmalar (ör. my.cnf
, postgresql.conf
) bu klasörlerin içinde bulunur. Değişikliklerden sonra servisi yeniden başlatmanız gerekir. Aynı ana sürüm altındaki alt sürümler, aynı yapılandırma klasörünü paylaşır.
MariaDB, MySQL veya PostgreSQL’de root
şifresini sıfırlamak genellikle yapılandırma dosyasını düzenleyerek değil, komut satırı araçları veya ServBay paneli ile yapılır.
Caddy (etc/caddy
)
Caddy için yapılandırma dosyası etc/caddy
altında Caddyfile
olarak bulunur.
Önemli Uyarı: ServBay, “site” ayarlarınızdan yola çıkarak Caddyfile
dosyasını otomatik üretir. Bu dosyayı elle değiştirmeyin, aksi halde değişiklikleriniz bir sonraki dosya üretiminde kaybolur. Sitenize özel ayarlar eklemek için ServBay panelindeki ilgili site bölümünü kullanın.
Nginx (etc/nginx
)
Nginx’in ana yapılandırma dosyası nginx.conf
, etc/nginx
dizinindedir. Benzer şekilde, site yapılandırmaları için parça dosyalar da otomatik yaratılır veya dahil edilir. Ana yapılandırmayı elle düzenlerken dikkatli olun, tercihen panelden yönetin.
dnsmasq (etc/dnsmasq
)
dnsmasq için konfigürasyon dosyaları arasında dnsmasq.conf
(varsayılan ayarlar) ve domains.conf
(ServBay’in alan adı yapılandırmasına göre otomatik oluşturulur) bulunur.
Önemli Uyarı: Bu dosyalar ServBay tarafından otomatik olarak yönetilir, elle düzenlemeyin. Aksi halde yerel sitelerinizin çalışmasında sorun yaşayabilirsiniz.
Diğer Paket Yapılandırmaları
Node.js, Python, Go, Java, Ruby, Rust gibi diğer desteklenen paketlerin de sürüm bazlı yapılandırma klasörleri ilgili etc
alt dizinlerine yerleştirilir.
ServBay Dahili Veri Dizini (data/servbay
)
/Applications/ServBay/data/servbay
ServBay uygulamasının kendisi için önemli olan tüm çekirdek yapılandırmaları, durum bilgileri ve kullanıcıya özel ayarları burada saklanır. ServBay kontrol panelinin işlevleri, paket yönetimi ve site ile veritabanı ayarları için kritik önemdedir.
Önemli Uyarı: Bu klasörü mutlaka yedekleyin. Elle dosya silme veya değiştirme yapmayın, yoksa ServBay’in çalışmasında aksaklık yaşanabilir veya konfigürasyonlarınız kaybolabilir.
Çalıştırılabilir Dosyalar ve Scriptler (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
2
3
Tüm çalıştırılabilir dosyalar bin
ve sbin
klasörlerinde toplanır; bu klasörler aslında package/bin
ve package/sbin
dizinlerine sembolik bağlantıdır. Burada ServBay’in sunduğu çeşitli araçlar ile programlama dilleri için çalışma zamanları bulunur.
ServBay başlatıldığında, bu dizinler otomatik olarak PATH ortam değişkeninize eklenir. Yani tüm araçlara terminalden kolayca ulaşabilirsiniz. Örneğin:
- Yaygın araçlar:
curl
,openssl
,frpc
vb. - Farklı sürümlerde çalışma ortamları:
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. Belirli bir sürümü çalıştırmak için versiyon bilgisiyle birlikte kullanın. - Veritabanı istemcileri:
mysql
,psql
,mongosh
,redis-cli
vb.
script
dizininde ise ServBay’in kullandığı sistem yönetim scriptleri (örn. servis başlatma/durdurma, veritabanı başlatma, bakım görevleri) yer alır. Dilerseniz bu scriptleri doğrudan çağırabilirsiniz; fakat genellikle ServBay’ın sunduğu servbayctl
komut satırı aracı ile çalışmak daha güvenlidir.
Örneğin PHP 7.4 FPM servisini başlatmak için:
servbayctl start php 7.4
servbayctl
aracı /Applications/ServBay/bin
içindedir.
Veritabanı Dosyalarının Konumu (db
)
/Applications/ServBay/db
ServBay’in desteklediği her veritabanı paketi için veri dosyaları bu dizinde tutulur. Yapı, paket ve sürüme göre organize edilmiştir. Örneğin:
/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 dosyaları/Applications/ServBay/db/redis
: Redis veri dosyaları
Aynı ana sürüm altındaki tüm veritabanı paketleri aynı veri dosyalarını kullanır; örneğin, MariaDB 11.2.x
sürümü /Applications/ServBay/db/mariadb/11.2
altındadır.
Önemli Uyarı: Buradaki dosyalar, tüm yerel veritabanlarınızı içerir. ServBay güncellemesi, sistem göçü gibi kritik işlemlerden önce bu klasörü tamamen yedekleyin. ServBay’in otomatik yedekleme sistemi de bu klasörü dahil eder.
Günlük Klasörü (logs
)
/Applications/ServBay/logs -> package/var/log
ServBay’de tüm hizmetlerin günlük kayıtları /Applications/ServBay/logs
klasöründe toplanır. Bu dizin, gerçekte /Applications/ServBay/package/var/log
'a sembolik bağlantıdır. Her servis ve web sitesiyle ilişkili hataları veya aktiviteleri kolayca buradan izleyebilirsiniz.
Kayıtlar, servis türüne göre alt klasörlerde organize edilir:
logs/caddy/
,logs/nginx/
: Caddy ve Nginx erişim/günlük dosyaları; genelde alan adına göre alt klasörler içerir.logs/php/
: PHP-FPM logları (php-fpm.log
) ve PHP hata logları (errors.log
).errors.log
, kodda yakalanmamış fatal hataları listeler.logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: İlgili veritabanlarının hataları, yavaş sorgu logları ve diğer günlükleri.- Diğer hizmet logları: Python, Go, Java, Ruby, Rust vb. için de benzer klasörler vardır.
Not: Özellikle aktif projelerde günlük ve hata kayıtları büyük yer kaplayabilir. Disk alanı sıkıntısı yaşanmaması için gereksiz logları düzenli silmeniz önerilir.
Paketler Dizini (package
)
/Applications/ServBay/package
Burada ServBay’in kurulu tüm paketleri bulunur. Her paket kendi ana klasöründe, genel olarak paket_adı/ana_sürüm/tam_sürüm
şeklinde saklanır. Örneğin, bir PHP sürümü /Applications/ServBay/package/php/8.3/8.3.7
yolunda olabilir.
ServBay panelinden farklı paketleri yükleyebilir, kaldırabilir veya geçiş yapabilirsiniz.
Kullanılmayan eski sürüm paketlerinin tam sürüm klasörünü (/Applications/ServBay/package/php/8.2/8.2.10
gibi) silerek diskten tasarruf edebilirsiniz.
Dikkat!: Her paketin ana sürüm klasöründe (/Applications/ServBay/package/php/8.3
gibi) current
adında sembolik bir bağlantı bulunur; bu bağlantı ilgili ana sürümün etkin ya da en güncel tam sürümünü gösterir. Bu sembolik bağlantıyı silmeyin veya değiştirmeyin, aksi durumda ServBay hizmetler çalışmayabilir.
SSL Sertifika Dizini (ssl
)
/Applications/ServBay/ssl
SSL/TLS ile ilgili tüm sertifika dosyaları burada barındırılır. İçeriğinde:
- ACME protokolüyle otomatik alınan yerel SSL’ler (
ssl/caddy
veyassl/acme
gibi, kullandığınız web sunucusuna göre değişir). - Geliştirme ortamı için üretilen kök CA sertifikaları (
ssl/private
vessl/public
). Bu sertifikalar sisteminize yüklendiğinde, tarayıcıda ServBay tarafından otomatize edilen HTTPS sertifikaları yüzde yüz güvenilir kabul edilir ve güvenlik uyarıları oluşmaz.
Yedekleme Dizini (backup
)
/Applications/ServBay/backup
ServBay’in entegre otomatik yedekleme özelliği, kritik verilerle ilgili yedekleri bu klasörde saklar. Yedeklenenler arasında:
backup/config
: ServBay çekirdek ve paket yapılandırmalarının yedeğibackup/databases
: Tüm veritabanlarının yedekleri (MariaDB, MySQL, PostgreSQL, MongoDB)backup/ssl
: SSL sertifikalarının yedeğibackup/websites
:/Applications/ServBay/www
’daki site/proje dosyalarının yedeği
Düzenli olarak bu klasörü kontrol edin ve mümkünse yedeklerinizi harici ortama kopyalayarak veri güvenliğini artırın.
Geçici Dosya Dizini (tmp
)
/Applications/ServBay/tmp
Bu klasörde servisler tarafından oluşturulan geçici dosyalar yer alır. En yaygın olarak .pid
dosyaları ve iletişimi sağlayan socket dosyaları burada bulunur.
.pid
dosyaları: Servisin işlem kimliğini (PID) içerir.- Socket dosyaları: Örneğin
php-cgi.sock
,mysql.sock
,pgsql.sock
gibi dosyalar. Bu dosyalar, yerel süreçler arasında Unix Domain Socket ile haberleşmeyi sağlar ve TCP’ye göre daha yüksek verim, düşük gecikme sunar. Özellikle aynı makinedeki servisler için idealdir.
Ortak Bileşenler ve Geliştirme Kütüphaneleri (package/common
)
/Applications/ServBay/package/common
Tüm ServBay paketlerinin ihtiyaç duyduğu ortak bileşenler ve paylaşımlı kütüphaneler (*.dylib
) burada saklanır. ServBay Geliştirme Kütüphanesi (isteğe bağlı kurulum), başlık (include
) ve statik/bağlantı kütüphanelerini (lib
) de barındırır.
Özellikle PHP eklentisi veya ek yazılım geliştirmek isterseniz, bu kütüphaneler kaynak koddan derleme ihtiyaçlarını karşılar.
Dikkat: package/common/lib
dizinindeki *.dylib
dosyalarını elle silmeyin, çünkü entegre yazılımlar için kritik paylaşımlı kütüphanelerdir. Silmeniz halinde ServBay servisleri düzgün çalışmayabilir.
Özet
ServBay’in klasör yapısı, paketleri, yapılandırmaları, verileri, loglarını ve web site dosyalarını net bir şekilde ayırır ve klasik Unix dosya sistemi alışkanlıklarını temel alır. Klasörlerin görevlerine hakim olmak, ServBay üzerinde web geliştirme işlerinizi çok daha verimli ve düzenli yönetmenize yardımcı olur. Özellikle data
ve db
klasörlerinizi düzenli olarak yedeklemek, geliştirme sürecinizin kesintisiz ve güvenli olmasını sağlar.