ServBay डायरेक्टरी संरचना की विस्तृत जानकारी
ServBay macOS के लिए डिज़ाइन किया गया एक स्थानीय वेब डेवलपमेंट प्लेटफ़ॉर्म है, जिसकी डायरेक्टरी संरचना साफ़ एवं व्यवस्थित है। यदि आप Linux/Unix सिस्टम से परिचित हैं तो आपको ServBay की फ़ाइल संरचना मानक फ़ाइल सिस्टम लेआउट जैसी लगेगी, जिससे डेवलपर्स आसानी से फ़ाइलों को खोज और प्रबंधित कर सकते हैं।
ServBay की डायरेक्टरी संरचना को समझना आपके लोकल डेवेलपमेंट, परिवेश कॉन्फ़िगरेशन, समस्या निवारण और डेटा बैकअप के लिए बेहद महत्वपूर्ण है। इस लेख में हम ServBay की मुख्य डायरेक्टरी व उनके व्यवहारिक उपयोग को विस्तार से समझेंगे।
ServBay की एक सामान्य इंस्टॉलेशन डायरेक्टरी संरचना इस प्रकार है:
ServBay
|____backup # बैकअप फ़ाइलों की डायरेक्टरी
| |____config # कॉन्फ़िगरेशन बैकअप
| |____databases # डेटाबेस बैकअप
| |____ssl # SSL सर्टिफिकेट्स का बैकअप
| |____websites # वेबसाइट फ़ाइल बैकअप
|____bin # उपयोगकर्ता द्वारा चलाए जा सकने वाले फाइल (पैकेज/bin की शॉर्टकट लिंक)
|____data # ServBay का आंतरिक डेटा डायरेक्टरी
| |____servbay # ServBay की मूलभूत कॉन्फ़िगरेशन और डेटा
|____db # डेटाबेस फाइलें संग्रहीत करने की डायरेक्टरी
| |____mariadb # MariaDB डेटा फाइलें
| |____mongodb # MongoDB डेटा फाइलें
| |____mysql # MySQL डेटा फाइलें
| |____postgresql # PostgreSQL डेटा फाइलें
| |____redis # Redis डेटा फाइलें
|____etc # कॉन्फ़िगरेशन फाइलों की डायरेक्टरी (पैकेज/etc की शॉर्टकट लिंक)
|____logs # लॉग फाइलों की डायरेक्टरी (पैकेज/var/log की शॉर्टकट लिंक)
|____package # पैकेज इंस्टॉलेशन डायरेक्टरी
| |____bin # पैकेज चलाने योग्य फाइलें
| |____common # साझा व डेवलपमेंट लाइब्रेरीज़
| | |____imap-uw
| | |____include # हेडर फाइलें (ServBay Development Library)
| | |____lib # साझा व स्थैतिक लाइब्रेरी (ServBay Development Library)
| | |____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 # पैकेज के अस्थायी/लॉग डेटा (जैसे logs का वास्तविक स्थान)
| | |____log # लॉग फाइलों का वास्तविक स्थान
| | |____run # रनटाइम फाइलें (जैसे .pid फाइल)
|____sbin # सिस्टम चलाने योग्य फाइलें (पैकेज/sbin की शॉर्टकट लिंक)
|____script # ServBay आंतरिक प्रबंधन स्क्रिप्ट्स
|____ssl # SSL सर्टिफिकेट डायरेक्टरी
| |____acme # ACME प्रोटोकॉल से प्राप्त किये गए SSL
| |____caddy # Caddy द्वारा बनाए गए SSL सर्टिफिकेट्स
| |____import # उपयोगकर्ता द्वारा आयातित थर्ड पार्टी SSL
| |____private # ServBay User CA
| |____public # ServBay Public 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
में स्थित होती है। सारी संबंधित पैकेज, कॉन्फ़िगरेशन, डेटा, लॉग आदि यहीं संग्रहीत रहते हैं।
अपने लोकल डेवलपमेंट परिवेश व डेटा की सुरक्षा हेतु, इस मुख्य डायरेक्टरी का नियमित बैकअप लेने की सलाह दी जाती है। आप Time Machine या किसी अन्य बैकअप टूल से /Applications/ServBay
का पूर्ण बैकअप कर सकते हैं।
वेबसाइट रूट डायरेक्टरी (www
)
वेबसाइट फाइलों की मूल डायरेक्टरी /Applications/ServBay/www
है। यहां आपको अपने सभी स्थानीय वेबसाइट प्रॉजेक्ट्स स्टोर करने चाहिए।
व्यवस्था को सुव्यवस्थित और प्रबंधनयोग्य बनाए रखने के लिए, हर स्वतंत्र वेबसाइट या वर्चुअल साइट के लिए नीचे एक अलग सबडायरेक्टरी बनाना चाहिए।
उदाहरण स्वरूप, यदि आपके पास 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 कॉन्फ़िगरेशन डायरेक्टरी दो-स्तरीय है जो महत्तवपूर्ण PHP वर्शन को अलग करती है। उदाहरण: etc/php
के अंदर आपको 5.6
, 7.4
, 8.3
जैसी डायरेक्टरी मिलेंगी। एक विशिष्ट संरचना –
php
|____5.6 # PHP 5.6 की सेटिंग्स
| |____conf.d # एक्सटेंशन कॉन्फ़िगरेशन फाइल डायरेक्टरी
| |____php.ini # मुख्य PHP कॉन्फ़िगरेशन
|____7.4 # PHP 7.4 की सेटिंग्स
| |____conf.d
| |____php-fpm.d # PHP-FPM पूल कॉन्फ़िगरेशन
| |____php-fpm.conf # PHP-FPM मुख्य कॉन्फ़िगरेशन
| |____php.ini
|____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 फाइल), php-fpm.conf
(FPM मुख्य कॉन्फ़िगरेशन) आदि मौजूद होते हैं। संशोधन के बाद आपको संबंधित PHP-FPM सेवा को ServBay कंट्रोल पैनल या servbayctl
कमांड से पुनः चालू करना होगा।
conf.d
डायरेक्टरी PHP एक्सटेंशन की सेटिंग्स के लिए है, जैसे xdebug.ini
, opcache.ini
, redis.ini
आदि। इनमें बदलाव के बाद भी संबंधित PHP-FPM सेवा को रीस्टार्ट करना जरूरी है।
नोट: ServBay में प्रत्येक PHP उप-संस्करण, एक ही मुख्य वर्शन की कॉन्फ़िगरेशन साझा करता है – जैसे PHP 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
, postgresql.conf
आदि) होती हैं। इनमें प्रतिवर्तन के बाद संबंधित डेटाबेस सेवा को पुनः चालू करना चाहिए। सभी उप-संस्करण एक ही मुख्य वर्शन की सेटिंग्स साझा करते हैं।
रूट पासवर्ड बदलने के लिए आमतौर पर कमांड लाइन या ServBay कंट्रोल पैनल तरीका इस्तेमाल करें, सीधे कॉन्फ़िग फाइल एडिट न करें।
Caddy (etc/caddy
)
Caddy का मुख्य कॉन्फ़िगरेशन (Caddyfile
) etc/caddy
में होता है।
महत्वपूर्ण: ServBay हर बार कंट्रोल पैनल से “वेबसाइट” सेटिंग्स के अनुसार Caddyfile
को ऑटो-जनरेट करता है। इस फाइल को हाथ से न बदलें, अन्यथा आपके बदलाब अगली बार ओवरराइट हो सकते हैं। किसी विशेष साइट के लिए कस्टम सेटिंग्स जोड़ने हेतु कंट्रोल पैनल का उपयोग करें।
Nginx (etc/nginx
)
Nginx की मुख्य फाइल nginx.conf
etc/nginx
में है। वेबसाइट-कॉन्फ़िग जुड़ी फाइलें ऑटो-जनरेट/शामिल की जाती हैं। मुख्य फाइल संशोधन सावधानीपूर्वक करें, या हो सके तो कंट्रोल पैनल से व्यवस्थापन करें।
dnsmasq (etc/dnsmasq
)
dnsmasq डायरेक्टरी में dnsmasq.conf
व domains.conf
होती हैं, जिसमें domains.conf
लोकल डोमेन सेटअप के लिए ServBay द्वारा ऑटो-जनरेट होती है।
महत्वपूर्ण: ये दोनों फाइलें ServBay ऑटो प्रबंधित करता है – हाथ से बदलाव न करें, नहीं तो लोकल वेबसाइट एक्सेस में बाधा आ सकती है।
अन्य पैकेज कॉन्फ़िगरेशन
अन्य पैकेज जैसे Node.js, Python, Go, Java, Ruby, Rust आदि की जरूरत अनुसार कॉन्फ़िगरेशन फाइलें भी etc
डायरेक्टरी में संबंधित उप-डायरेक्टरी में होती हैं, आमतौर पर वर्शन के अनुसार।
ServBay आंतरिक डेटा डायरेक्टरी (data/servbay
)
/Applications/ServBay/data/servbay
1
यह डायरेक्टरी ServBay ऐप के संचालन हेतु ज़रूरी प्रमुख सेटिंग्स, स्टेटस व यूज़र-विशिष्ट सेटिंग्स का भंडार है। इनमें कंट्रोल पैनल फंक्शनलिटी, पैकेज प्रबंधन, वेबसाइट-डेटाबेस कॉन्फ़िगरेशन हेतु फ़ाइलें होती हैं।
महत्वपूर्ण: इस डायरेक्टरी का बैकअप रखें व कोई फाइल ना हटाएँ/संशोधित करें, अन्यथा ServBay चालू नहीं होगा या सेटिंग्स लॉस्ट हो सकती हैं।
चलाने योग्य फाइलें व स्क्रिप्ट्स (bin
, sbin
, script
)
/Applications/ServBay/bin -> package/bin
/Applications/ServBay/sbin -> package/sbin
/Applications/ServBay/script
1
2
3
2
3
सारे चलाए जा सकने वाले फाइल (bin
व 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
आदि। - डेटाबेस क्लाइंट:
mysql
,psql
,mongosh
,redis-cli
आदि।
script
में आंतरिक प्रबंधन स्क्रिप्ट्स होती है – सेवा शुरू/बंद, डेटाबेस इनिशियलाइज़, अनुरक्षण आदि। हालांकि आप इन्हें सीधे चला सकते हैं, किंतु आम तौर पर servbayctl
कमांड का उपयोग करना बेहतर है क्योंकि वह यही लोअर-लेवल स्क्रिप्ट्स को सरल रूप में एप्लाई करता है।
उदाहरण: PHP 7.4 FPM शुरू करने के लिए –
bash
servbayctl start php 7.4
1
servbayctl
टूल /Applications/ServBay/bin
में है।
डेटाबेस फ़ाइल डायरेक्टरी (db
)
/Applications/ServBay/db
1
यहाँ सभी इंस्टॉल किए गए डेटाबेस के डेटा फाइले संग्रहीत होती हैं, पैकेज वर्शन के अनुसार संरचित। उदाहरण:
/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 डेटा
प्रत्येक प्रमुख वर्शन एक ही डेटा डायरेक्टरी साझा करता है, जैसे MariaDB 11.2.x
हेतु /Applications/ServBay/db/mariadb/11.2
।
महत्वपूर्ण: यह डायरेक्टरी आपके सभी लोकल डेटाबेस का डाटा है। किसी बड़ी कार्रवाई (अपग्रेड, सिस्टम माइग्रेशन आदि) से पहले इसका भी पूर्ण बैकअप ज़रूर लें। ServBay की ऑटो-बैकअप सुविधा इसे शामिल करती है।
लॉग डायरेक्टरी (logs
)
/Applications/ServBay/logs -> package/var/log
1
सारे सर्विसेस के लॉग्स /Applications/ServBay/logs
में केंद्रित होते हैं, जो /Applications/ServBay/package/var/log
की लिंक है। इससे आप सेवाओं की स्थिति व त्रुटियां आसानी से देख सकेंगे।
लॉग फाइलें सेवा प्रकार अनुसार सबडाइरेक्ट्री में होती हैं, जैसे:
logs/caddy/
याlogs/nginx/
: वेबसाइट/डोमेनवार एक्सेस व एरर लॉग्स।logs/php/
: PHP-FPM लॉग (php-fpm.log
) और PHP कोड एरर (errors.log
)।logs/mariadb/
,logs/mysql/
,logs/postgresql/
,logs/mongodb/
,logs/redis/
: संबंधित डेटाबेस की एरर/स्लो क्वेरी लॉग्स।- अन्य: Python, Go, Java, Ruby, Rust आदि सेवाओं के लॉग।
नोट: ये लॉग्स खासकर एक्टिव प्रॉजेक्ट्स में बहुत अधिक स्पेस घेर सकते हैं। इन्हें नियमित देखें और जरूरत न हो तो पुरानी फाइल्स मिटाएँ।
पैकेज डायरेक्टरी (package
)
/Applications/ServBay/package
1
इस डायरेक्टरी में सारी इंस्टॉल्ड पैकेज वर्शनवार उप-डायरेक्ट्रीज़ में संग्रहीत होते हैं – जैसे /Applications/ServBay/package/php/8.3/8.3.7
।
ServBay कंट्रोल पैनल से आप विभिन्न वर्शन इंस्टॉल, रिमूव या स्विच कर सकते हैं।
किसी पुराने पैकेज वर्शन को हटाने हेतु उसकी पूरी वर्शन डायरेक्टरी डिलीट कर सकते हैं – जैसे /Applications/ServBay/package/php/8.2/8.2.10
।
महत्वपूर्ण: हर मुख्य वर्शन डायरेक्टरी में एक current
लिंक होता है, जो एक्टिव/नवीनतम उप-वर्शन पर इंगित करता है। इसे डिलीट या एडिट न करें; अन्यथा ServBay सही से executable या लाइब्रेरी ढूंढ़ नहीं पाएगा।
SSL सर्टिफिकेट डायरेक्टरी (ssl
)
/Applications/ServBay/ssl
1
यहां SSL/TLS से जुड़ी फाइलें रहती हैं:
- आपकी लोकल वेबसाइट के लिए ServBay द्वारा ऑटोमेटेड ACME प्रोटोकॉल से लिये गए SSL (
ssl/caddy
याssl/acme
में) - लोकल HTTPS डेवलपमेंट के लिए जनरेट की गई CA फ़ाइलें (
ssl/private
- ServBay User CA,ssl/public
- ServBay Public CA)। ये CA सर्टिफिकेट्स सिस्टम ट्रस्ट स्टोर में इंस्टॉल करने पर ब्राउज़र में लोकल वेबसाइट के लिए चेतावनी नहीं दिखती।
बैकअप डायरेक्टरी (backup
)
/Applications/ServBay/backup
1
यह ServBay की ऑटो-बैकअप सुविधा द्वारा क्रिएट की गई फाइलों की डायरेक्टरी है। इसमें शामिल हैं:
backup/config
: बुनियादी और पैकेज कॉन्फ़िगरेशन फाइलों की बैकअपbackup/databases
: MariaDB, MySQL, PostgreSQL, MongoDB आदि डेटाबेस डेटा बैकअपbackup/ssl
: SSL सर्टिफिकेट बैकअपbackup/websites
:/Applications/ServBay/www
में संग्रहित वेबसाइट का बैकअप
इस डायरेक्टरी की नियमित रूप से जांच व आवश्यकता अनुसार बाहरी संग्रहण (external storage) में बैकअप स्थानांतरित करें।
अस्थायी फ़ाइल डायरेक्टरी (tmp
)
/Applications/ServBay/tmp
1
यहाँ पर सेवाओं के रनटाइम में बनीं अस्थायी फ़ाइलें और सॉकेट्स होती हैं:
.pid
फ़ाइलें: सर्विस की प्रक्रिया (process) ID स्टोर करती हैं- सॉकेट फाइल: जैसे
php-cgi.sock
,mysql.sock
,pgsql.sock
आदि। ये लोकल कम्यूनिकेशन (Unix Domain Socket) के लिए होती हैं, जो TCP की तुलना में बेहतर थ्रूपुट, कम लेटेंसी और ज्यादा परफॉर्मेंस देते हैं, खासकर जब प्रक्रिया उसी मशीन पर हों।
साझा घटक तथा डेवलपमेंट लाइब्रेरीज़ (package/common
)
/Applications/ServBay/package/common
1
यह डायरेक्टरी ServBay के सभी पैकेजों द्वारा प्रयुक्त जरूरी साझा घटकों, शयरड/स्टैटिक लाइब्रेरीज़ (जैसे *.dylib
) और ऑप्शनल डेवलपमेंट लाइब्रेरी का संग्रहण स्थान है।
अगर आपने ServBay Development Library इंस्टॉल की है तो इसमें include
(हेडर फाइल) व lib
(स्टैटिक व लिंक लाइब्रेरी) डायरेक्टरी भी होंगी। ये PHP एक्सटेंशन या अन्य निर्माण कार्य के लिए जरूरी हैं।
महत्वपूर्ण: package/common/lib
में उपस्थित *.dylib
फाइलों को न हटाएँ – ये सभी पैकेजों के लिए अनिवार्य हैं, इन्हें हटाने पर कार्यक्रम गैर-कार्यशील/एरर दे सकते हैं।
संक्षिप्त सारांश
ServBay की डायरेक्टरी संरचना सॉफ्टवेयर पैकेज, कॉन्फ़िगरेशन, डेटा, लॉग्स और वेबसाइट फाइलों का स्पष्ट विभाजन करती है। यह मानक Unix फ़ाइल सिस्टम की तर्ज़ पर है जिससे डेवलपर्स अपने लोकल डेवलपमेंट परिवेश को सहजता से प्रबंधित कर सकते हैं। इन डायरेक्ट्रियों की भूमिका जानना ServBay पर वेब विकास की उत्पादकता व सुविधा को कई गुना बढ़ा देता है। मुख्य डायरेक्टरियों (विशेषकर data
और db
) का नियमित बैकअप आपके डेवेलपमेंट को सुरक्षित करने के लिए अत्यंत आवश्यक है।