ServBay में अपने NGINX वेबसाइट को Caddy सर्वर में माइग्रेट करें
ServBay एक शक्तिशाली लोकल वेब डेवलपमेंट एनवायरनमेंट है, जिसमें Caddy, NGINX और Apache सहित कई लोकप्रिय वेब सर्वर पहले से इंटीग्रेटेड होते हैं। इन सर्वर के लिए, खासकर Caddy और NGINX हेतु, ServBay में सामान्यतः प्रयुक्त URL Rewrite नियम पहले से प्री-कॉन्फ़िगर रहते हैं, जिससे डेवलपर्स के लिए सेटअप बेहद आसान हो जाता है।
यह दस्तावेज़ एक विस्तृत गाइड है जिसमें बताया गया है कि आप अपनी मौजूदा NGINX वेबसाइट को ServBay में अंतर्निहित Caddy सर्वर पर कैसे आसानी से माइग्रेट कर सकते हैं। हम लोकप्रिय PHP फ्रेमवर्क Laravel और कॉन्टेंट मैनेजमेंट सिस्टम WordPress के उदाहरण के ज़रिए माइग्रेशन की पूरी प्रक्रिया दिखाएंगे।
ServBay का वेब सर्वर के लिए कम्प्लीट सपोर्ट
ServBay आप को Caddy, NGINX और Apache का फुल सपोर्ट देता है, जिससे आप अपने प्रोजेक्ट की जरूरत के हिसाब से डिफॉल्ट वेब सर्वर स्विच कर सकते हैं। अधिक जानकारी के लिए कैसे डिफॉल्ट वेब सर्वर स्विच करें दस्तावेज़ देखें।
ओवरव्यू
किसी वेबसाइट को एक वेब सर्वर से दूसरे में माइग्रेट करने में आमतौर पर कॉन्फ़िगरेशन फाइल्स और वेबसाइट फाइल्स को ट्रांसफर करना शामिल होता है। ServBay में, Caddy पर माइग्रेशन का प्रोसेस बेहद सरल बनाया गया है। ज्यादातर PHP आधारित फ्रेमवर्क्स और CMSes (जैसे Laravel, WordPress, Symfony, CodeIgniter, Drupal, Joomla आदि) के लिए ServBay आउट-ऑफ-द-बॉक्स सपोर्ट देता है, जिनमें अक्सर आपको Caddy की कॉन्फ़िगरेशन फाइल मैनुअली लिखने या एडिट करने की ज़रूरत नहीं पड़ती। ServBay आपके GUI में की गई वेबसाइट सेटिंग्स के आधार पर Caddyfile को ऑटोमैटिकली जेनरेट कर देता है।
माइग्रेशन से पहले की तैयारी
किसी भी माइग्रेशन स्टेप से पहले निम्नलिखित जरूरी प्रिपरेशन करें:
- वेबसाइट फाइल्स का बैकअप लें: अपनी वेबसाइट की रूट डायरेक्टरी में मौजूद सभी फाइल्स और फोल्डर्स का पूरा बैकअप बना लें।
- डेटाबेस का बैकअप लें: वेबसाइट से जुड़े डाटाबेस (जैसे MySQL, PostgreSQL, MongoDB आदि) का बैकअप लें। ServBay में बिल्ट-इन डाटाबेस मैनेजमेंट टूल्स मिलते हैं, साथ ही आप मैन्युअली भी बैकअप ले सकते हैं।
- ServBay इंस्टॉल करें: सुनिश्चित करें कि आपने अपने macOS सिस्टम में ServBay को सफलतापूर्वक इंस्टॉल और रन कर लिया है।
- फाइल लोकेशन कंफर्म करें: अपनी वेबसाइट फाइल्स को ServBay के डिफॉल्ट वेबसाइट रूट डायरेक्टरी
/Applications/ServBay/www
या इसकी सब-डायरेक्टरी में रखें। मसलन, यदि आपके प्रोजेक्ट का नामmyproject
है, तो उसे/Applications/ServBay/www/myproject
में रखें।
ServBay में Caddy कैसे काम करता है
यह जानना जरूरी है कि ServBay Caddy की कॉन्फ़िगरेशन को कैसे मैनेज करता है। पारंपरिक तरीके से Caddyfile को मैनुअल एडिट करने की बजाय, ServBay का GUI आपको वेबसाइट जोड़ने और कंफिगर करने की सुविधा देता है। जब आप कोई नई वेबसाइट जोड़ते हैं और Caddy को वेब सर्वर के रूप में चुनते हैं, तब ServBay आपके द्वारा दिए गए डोमेन नेम, वेबसाइट रूट, PHP वर्शन आदि जानकारी के आधार पर, Caddyfile स्निपेट्स को खुद ही जेनरेट और मैनेज करता है। ये स्निपेट्स ServBay के मेन Caddyfile में शामिल कर लिए जाते हैं, जिससे आपकी वेबसाइट सही ढंग से रन करती है।
इसका मतलब, ServBay GUI में वेबसाइट जोड़ने से ही Caddy की जरूरत की सारी कॉन्फ़िगरेशन पूरी हो जाती है, आपको किसी .caddyfile
या टेक्स्ट फाइल को मैन्युअली बदलने की जरूरत नहीं है।
माइग्रेशन के स्टेप्स
NGINX वेबसाइट को ServBay के Caddy सर्वर में माइग्रेट करना बेहद आसान है:
- ServBay लॉन्च करें: सुनिश्चित करें कि ServBay एप्लीकेशन रन कर रही है।
- वेबसाइट फाइल्स का पता लगाएं: अपनी NGINX वेबसाइट की सभी फाइल्स (कोड, इमेज, CSS, JS आदि) को ServBay की वेबसाइट रूट डायरेक्टरी में एक नए फोल्डर में कॉपी या मूव करें, जैसे
/Applications/ServBay/www/your-site-name
। - ServBay GUI के ज़रिए वेबसाइट जोड़ें:
- ServBay एप खोलें।
- "Websites" सेक्शन में जाएं।
- "Add Website" बटन पर क्लिक करें।
- वेबसाइट की जानकारियां भरें:
- Domain (डोमेन): वह डोमेन डालें जिस पर आप अपनी वेबसाइट लोकली एक्सेस करना चाहते हैं, जैसे
your-site-name.servbay.demo
। - Website Root (वेबसाइट रूट): वह डायरेक्टरी चुनें जहाँ आपने स्टेप 2 में वेबसाइट फाइल्स रखी थीं, जैसे
/Applications/ServBay/www/your-site-name
। - Web Server (वेब सर्वर):
Caddy
सिलेक्ट करें। - PHP Version (PHP वर्शन): अपनी वेबसाइट के अनुसार PHP वर्शन चुनें।
- Domain (डोमेन): वह डोमेन डालें जिस पर आप अपनी वेबसाइट लोकली एक्सेस करना चाहते हैं, जैसे
- "Save" या "Create" बटन पर क्लिक करें।
- वेबसाइट वेरीफाई करें: ServBay नई डोमेन को अपने लोकल होस्ट्स फाइल में जोड़ता है और Caddy की सही कॉन्फ़िगरेशन करता है। अब ब्राउज़र में अपने सेट किए डोमेन (जैसे
http://your-site-name.servbay.demo
) पर जाएं और वेबसाइट लोड हो रही है या नहीं, जांचें। - डेटाबेस कंफिगरेशन करें: आपकी वेबसाइट को यदि डाटाबेस चाहिए, तो सुनिश्चित करें कि सम्बन्धित डेटाबेस सर्विस (जैसे MySQL, PostgreSQL) ServBay में चल रही है। अपनी वेबसाइट की कॉन्फ़िगरेशन फाइल में डेटाबेस कनेक्शन जानकारी (पता:
127.0.0.1
याlocalhost
, यूज़रनेम व पासवर्ड) अपडेट करें।
उदाहरण: Laravel वेबसाइट माइग्रेट करना
एक सामान्य NGINX कॉन्फ़िगरेशन (संदर्भ हेतु)
नीचे एक Laravel वेबसाइट के लिए NGINX कॉन्फ़िगरेशन फाइल दी गई है, जो दिखाता है कि NGINX में रूट डाइरेक्ट्री, एंट्री फाइल (index.php
) और PHP FastCGI हैंडलिंग कैसे सेट होती है:
nginx
server {
listen 80;
server_name laravel.servbay.demo; # ServBay ब्रांड वाला डोमेन उदाहरण
root /Applications/ServBay/www/laravel/public; # Laravel के public डायरेक्टरी की ओर इंगित करता है
index index.php index.html index.htm;
location / {
# फाइल या फोल्डर डायरेक्ट एक्सेस ट्राई करें, न मिलने पर index.php पर भेजें
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# PHP FastCGI प्रोसेसिंग को कॉन्फ़िगर करें
include fastcgi_params;
# ServBay का डिफ़ॉल्ट PHP-CGI socket path
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# छिपी फाइल्स की ऐक्सेस ब्लॉक करें
deny all;
}
}
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ServBay में इसके समकक्ष Caddy कॉन्फ़िगरेशन (ऑटो जेनरेटेड, मैन्युअल नहीं बनाना)
Caddyfile को खुद एडिट करने की जरूरत नहीं
ServBay में उपरोक्त कार्यक्षमता को पाने के लिए आपको Caddyfile मैन्युअली बनाने या बदलने की आवश्यकता नहीं है। ServBay GUI में वेबसाइट जोड़ने पर ज़रूरी सभी Caddy कॉन्फ़िगरेशन ऑटोमेटिक हो जाती है। नीचे दी गई Caddy कॉन्फ़िगरेशन ServBay के ऑटो-जेनरेशन की कार्यप्रणाली दिखाने भर के लिए है।
यदि आप ऊपर बताई गई Laravel वेबसाइट ऐड करते हैं तो ServBay ऑटोमैटिकली कुछ ऐसा (सरल रूप में) Caddy कॉन्फ़िगरेशन जनरेट करेगा (असली कॉन्फ़िगरेशन और भी पावरफुल हो सकती है):
bash
# यह कॉन्फ़िगरेशन ServBay द्वारा ऑटोमैटिक रूप से मैनेज की जाती है
laravel.servbay.demo {
# वेबसाइट रूट डायरेक्टरी सेट करें
root * /Applications/ServBay/www/laravel/public
# PHP FastCGI प्रोसेसिंग, ServBay के PHP-CGI socket की ओर
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# फाइल सर्विंग चालू करें
file_server
# नॉन-स्टैटिक फाइल के लिए मैचिंग नियम
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# नॉन-स्टैटिक पर index.php को री-राइट करें
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Laravel माइग्रेट करने के रीयल स्टेप्स:
- अपनी Laravel प्रोजेक्ट फाइल्स को
/Applications/ServBay/www/laravel
में कॉपी करें। - चेक करें कि
laravel/public
ही वेबसाइट की एंट्री डायरेक्टरी है। - ServBay GUI में नई वेबसाइट जोड़ें: डोमेन
laravel.servbay.demo
, वेबसाइट रूट/Applications/ServBay/www/laravel/public
, वेब सर्वर-Caddy
। - Laravel की
.env
फाइल में डाटाबेस कनेक्शन सही से सेट करें। - ब्राउज़र में
http://laravel.servbay.demo
खोलकर टेस्ट करें।
उदाहरण: WordPress वेबसाइट माइग्रेट करना
एक सामान्य NGINX कॉन्फ़िगरेशन (संदर्भ हेतु)
WordPress वेबसाइट के लिए सामान्य NGINX कॉन्फ़िगरेशन:
nginx
server {
listen 80;
server_name wordpress.servbay.demo; # ServBay ब्रांड का डोमेन
root /Applications/ServBay/www/wordpress; # WordPress इंस्टॉलेशन डायरेक्टरी
index index.php index.html index.htm;
location / {
# WordPress परमानेंट लिंक रूल्स
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
# PHP FastCGI प्रोसेसिंग सेट करें
include fastcgi_params;
# ServBay का डिफ़ॉल्ट PHP-CGI socket path
fastcgi_pass unix:/Applications/ServBay/tmp/php-cgi.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\.ht {
# छिपी फाइलों की एक्सेस ब्लॉक करें
deny all;
}
}
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ServBay के लिए Caddy कॉन्फ़िगरेशन (ऑटो जेनरेटेड, मैन्युअल नहीं बनाना)
Caddyfile को खुद एडिट करने की जरूरत नहीं
WordPress के लिए भी ServBay GUI ऑटोमेटिक Caddy कॉन्फ़िगरेशन कर देता है। नीचे दिए गए उदाहरण केवल यह दिखाने के लिए हैं कि ServBay अंदर से WordPress के परमानेंट लिंक वगैरह कैसे हैंडल करता है।
WordPress साइट के लिए ServBay ऑटोमेटिकली कुछ ऐसा Caddy कॉन्फ़िगरेशन बनाएगा:
bash
# यह कॉन्फ़िगरेशन ServBay द्वारा ऑटोमैटिक रूप से मैनेज की जाती है
wordpress.servbay.demo {
# वेबसाइट रूट डायरेक्टरी सेट करें
root * /Applications/ServBay/www/wordpress
# PHP FastCGI प्रोसेसिंग को सेट करें
php_fastcgi unix//Applications/ServBay/tmp/php-cgi.sock
# फाइल सर्वर सक्षम करें
file_server
# नॉन-स्टैटिक फाइल के लिए मैचिंग नियम
@notStatic {
not {
file {
try_files {path} {path}/ /index.php?{query}
}
}
}
# नॉन-स्टैटिक फाइल को index.php पर री-राइट करें (परमानेंट लिंक के लिए)
rewrite @notStatic /index.php
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
WordPress माइग्रेशन के रीयल स्टेप्स:
- अपनी WordPress फाइल्स को
/Applications/ServBay/www/wordpress
में कॉपी करें। - ServBay GUI में नई वेबसाइट जोड़ें: डोमेन
wordpress.servbay.demo
, वेबसाइट रूट/Applications/ServBay/www/wordpress
, वेब सर्वर-Caddy
। - WordPress की
wp-config.php
फाइल में सही डाटाबेस कनेक्शन सेट करें। - ब्राउज़र में
http://wordpress.servbay.demo
खोलें। अगर परमानेंट लिंक से संबंधित कोई समस्या आती है, तो आम तौर पर वह ServBay द्वारा री-राइट रूल्स को हैंडल करने के कारण नहीं आती; बस WordPress के 'Settings' -> 'Permalinks' में सेटिंग्स की जांच करें।
ध्यान देने योग्य बातें
- डाटाबेस कनेक्शन: माइग्रेट करने के बाद वेबसाइट को ServBay के डाटाबेस सर्विस से कनेक्ट करने के लिए कोड में कनेक्शन इंफॉर्मेशन अपडेट ज़रूर करें।
- एनवायरनमेंट वेरिएबल्स: यदि आपकी एप्लीकेशन में किसी खास एनवायरनमेंट वेरिएबल की आवश्यकता है, तो सुनिश्चित करें कि वो ServBay एनवायरनमेंट में सही से सेट हो (जैसे PHP की
.env
फाइल या ServBay के सेटिंग्स के ज़रिए)। - कॉम्प्लेक्स NGINX कॉन्फ़िगरेशन: ऊपर दिए उदाहरण आम Laravel और WordPress साइट्स के लिए हैं। अगर आपके NGINX कॉन्फ़िग में किसी प्रकार के एडवांस्ड या कस्टम रूल्स, स्पेशल मॉड्यूल्स या नॉन-स्टैण्डर्ड सेटिंग्स हैं, तो संभव है कि ServBay की ऑटोमेटिक कॉन्फ़िगरेशन उन्हें पूरी तरह कवर न कर पाए। ऐसे केस में आप Caddy की ऑफिसियल डॉक्युमेंटेशन देख सकते हैं, या ServBay के कस्टमाइजेशन ऑप्शन (अगर उपलब्ध हों) का उपयोग कर सकते हैं। हालांकि अधिकतर सामान्य एप्लीकेशन के लिए ServBay का ऑटो सेटअप पर्याप्त होता है।
- HTTPS/SSL: ServBay आपको लोकल वेबसाइट्स के लिए HTTPS सपोर्ट देता है। आप ServBay User CA या ServBay Public CA की मदद से लोकल SSL सर्टिफिकेट बना सकते हैं और ट्रस्ट कर सकते हैं, बिना Caddy की TLS सेटिंग्स मैन्युअली एडिट किए।
समरी
NGINX वेबसाइट को ServBay के Caddy सर्वर पर माइग्रेट करना बेहद आसान और सरल प्रोसेस है, और यह Caddy की कॉन्फ़िगरेशन के ServBay द्वारा ऑटोमैटिक मैनेजमेंट के कारण मुमकिन हुआ है। Laravel और WordPress जैसी सामान्य वेबसाइट्स के लिए, आपको बस फाइल्स को निर्दिष्ट डायरेक्टरी में रखना है और ServBay GUI में वेबसाइट जोड़नी है। बाकी URL रीराइटिंग, PHP FastCGI प्रोसेसिंग आदि सब ServBay ऑटोमेटिकली सेट कर देता है, जिससे आप अपनी वेबसाइट को लोकल में क्विकली रन कर सकते हैं।