ServBay वेब सर्वर समस्या समाधान गाइड
ServBay आपको डिफ़ॉल्ट वेब सर्वर के रूप में Caddy, NGINX, Apache जैसे विकल्प देता है, जिससे आपके लोकल डेवलपमेंट वातावरण में लचीलापन आता है। उपयोग के दौरान आपको वेबसाइट एक्सेस न होने, धीमी लोडिंग या 500 इंटर्नल सर्वर एरर जैसे समस्याएँ मिल सकती हैं। यह गाइड आपको ServBay वातावरण में आम वेब सर्वर समस्याओं की पहचान और समाधान में मदद करेगा।
ServBay इनबिल्ट समस्या निदान उपकरण का उपयोग
ServBay में एक पावरफुल समस्या निदान उपकरण है जो आम कॉन्फ़िगरेशन और सर्विस समस्याओं को स्वचालित रूप से जाँचता और इंगित करता है। जब समस्या आए तो सबसे पहले इसका प्रयोग करें।
ServBay ऐप खोलें और बायीं नेविगेशन में समस्या निदान
पर क्लिक करें ताकि आप उपकरण के इंटरफ़ेस में जा सकें।
यह उपकरण ServBay के मुख्य घटकों की स्थिति, पोर्ट अवरोध, कॉन्फ़िगरेशन फाइलों की सिन्टैक्स आदि जांचता है और संबंधित सुझाव देता है, जिससे समस्या की पहचान तेज़ होती है।
MAMP या Laravel Herd से माइग्रेट करने के बाद वेबसाइट पहली बार धीमी लोड होना
अगर आप MAMP या Laravel Herd से ServBay में शिफ्ट करते हैं और पाते हैं कि वेबसाइट लंबे समय तक निष्क्रिय रहने के बाद पहली बार एक्सेस करने पर 5 सेकंड या उससे अधिक लगते हैं, जबकि बाद की एक्सेसिंग सही चलती है, तो समस्या DNS से जुड़ी है।
समस्या का लक्षण
Chrome ब्राउज़र में डेवलपर टूल्स (F12 या Cmd+Option+I) खोलें, नेटवर्क (Network) टैब में जाकर पेज रिफ्रेश करें और रिक्वेस्ट की Timing जानकारी देखें। DNS Lookup में लगभग 5 सेकंड का समय दिखेगा।
(चित्र: Chrome के Network टैब में DNS Lookup समय देखें)
कारण
MAMP और Laravel Herd इंस्टॉल होते समय macOS की DNS सेटिंग को बदलते हैं और /etc/resolver/ डायरेक्ट्री में विशेष DNS रेसोल्वर कॉन्फ़िगरेशन फाइल बनाते हैं, जिससे खास डोमेन (जैसे *.test
, *.local
) को सिस्टम द्वारा अलग तरह से हैंडल किया जाता है।
भले ही आपने MAMP या Herd अनइंस्टॉल कर दिया हो, उनके रेसोल्वर फाइल्स अक्सर सिस्टम में रह जाती हैं। ServBay पर ऐसे ही डोमेन (जैसे .test) खोलने पर macOS पहले पुराने रेसोल्वर से क्वेरी करता है, लेकिन MAMP/Herd का DNS सर्वर मौजूद नहीं होने के कारण क्वेरी टाइमआउट होता है (लगभग 5 सेकंड), फिर सिस्टम सामान्य DNS से रिक्वेस्ट करता है।
समाधान
निम्नलिखित स्टेप्स अपनाएँ और MAMP या Laravel Herd से जुड़ी DNS सेटिंग हटाएँ:
1. MAMP या Laravel Herd पूरी तरह अनइंस्टॉल करें
अगर अभी तक अनइंस्टॉल नहीं किया है, तो आधिकारिक अनइंस्टॉलर या स्क्रिप्ट का इस्तेमाल करें:
MAMP अनइंस्टॉल:
- MAMP ऐप के अनइंस्टॉल फीचर का प्रयोग करें
- या
/Applications/MAMP
फोल्डर और संबंधित फाइलें मैन्युअली हटाएँ
Laravel Herd अनइंस्टॉल:
bash
# Herd का अनइंस्टॉल कमांड इस्तेमाल करें
herd uninstall
# अगर ऊपर वाला कमांड चले नहीं, तो Herd को और उसकी सेटिंग्स मैन्युअली हटाएँ
rm -rf ~/Library/Application\ Support/Herd
rm -rf ~/.config/herd
1
2
3
4
5
6
2
3
4
5
6
2. /etc/resolver डिरेक्ट्री से फाइलें हटाएँ
मैन्युअली /etc/resolver/ में मौजूद DNS रेसोल्वर फाइलें हटाएँ:
bash
# /etc/resolver के फाइलें देखें
ls -la /etc/resolver
# खास रेसोल्वर फाइलें जैसे test और local हटाएँ
sudo rm /etc/resolver/test
sudo rm /etc/resolver/local
# बाकी कोई MAMP/Herd द्वारा बनाई फाइलें भी हटाएँ
# जैसे: sudo rm /etc/resolver/herd
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
आम फाइलें:
test
-*.test
के लिएlocal
-*.local
के लिएherd
- Laravel Herd
ध्यान दें: फाइल हटाते वक्त sudo
का प्रयोग करें।
3. *.local डोमेन से बचें
macOS का .local
suffix लोकल नेटवर्क (LAN) के mDNS (Bonjour) के लिए रिजर्व रहता है। डेवलपमेंट डोमेन के लिए इसे न इस्तेमाल करें!
सम्भावित समस्याएँ:
- DNS कन्फ्लिक्ट
- धीमी एक्सेस
- अनपेक्षित नेटवर्क व्यवहार
सलाह: ये suffix उपयोग करें:
.test
- टेस्टिंग के लिए रिजर्व.localhost
- हमेशा लोकल एड्रेस पर रिजॉल्व होगा.dev
- वर्चुअल TLD, डेवलपमेंट के लिए आम- या ServBay द्वारा सुझाया custom suffix
4. DNS कैश क्लियर करें (वैकल्पिक)
सब स्टेप्स के बाद सिस्टम की DNS कैश क्लियर करें ताकि तुरंत असर दिखे:
bash
# macOS Big Sur (11) या नए वर्शन
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Catalina (10.15) या पुराने वर्शन
sudo killall -HUP mDNSResponder
1
2
3
4
5
2
3
4
5
5. ठीक होने की पुष्टि करें
प्रक्रिया पूरी होने के बाद ServBay वेबसाइट खोलें:
- ब्राउज़र में लोकल साइट एक्सेस करें
- Chrome डेवलपर टूल्स > नेटवर्क टैब
- पेज रिफ्रेश करें और Timing जानकारी चैक करें
- DNS Lookup टाइम 50ms या उससे कम होना चाहिए
अगर समस्या बनी रहे तो VPN या प्रॉक्सी टूल जैसी अन्य थर्ड पार्टी ऐप्स द्वारा DNS में हस्तक्षेप की जांच करें।
वेब सर्वर कॉन्फ़िगरेशन फाइल जांचें
वेब सर्वर की कॉन्फ़िगरेशन फाइलों में त्रुटी वेबसाइट एक्सेस न होने की एक सामान्य वजह है। ServBay हर सर्वर के लिए syntax जांचने वाले टूल देता है।
Caddyfile का परीक्षण
Caddy में validate
कमांड से अपने Caddyfile की वैधता जाँचें:
bash
# macOS
/Applications/ServBay/bin/caddy validate -c /Applications/ServBay/etc/caddy/Caddyfile
# Windows
C:\ServBay\bin\caddy.exe validate -c C:\ServBay\etc\caddy\Caddyfile
1
2
3
4
5
2
3
4
5
सही होने पर Valid configuration
मिलेगा। त्रुटियाँ होंगी तो reason बताएगा।
ध्यान दें: caddy validate
कमांड कई INFO
या WARN
दे सकता है—ये Caddy के internal messages हैं; syntax सही हो तो चिंता की बात नहीं।
आम Caddyfile त्रुटियाँ:
SSL सर्टिफिकेट फाइल नहीं मिली:
bash# macOS Example 2024/12/09 17:24:16.970 INFO using config from file {"file": "/Applications/ServBay/etc/caddy/Caddyfile"} ... (अन्य INFO/WARN) ... Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open /Applications/ServBay/ssl/private/tls-certs/mail.servbay.host/mail.servbay.host.1crt: no such file or directory # Windows Example 2024/12/09 17:24:16.970 INFO using config from file {"file": "C:\\ServBay\\etc\\caddy\\Caddyfile"} ... (अन्य INFO/WARN) ... Error: loading http app module: provision http: getting tls app: loading tls app module: provision tls: loading certificates: open C:\\ServBay\\ssl\\private\\tls-certs\\mail.servbay.host\\mail.servbay.host.1crt: no such file or directory
1
2
3
4
5
6
7
8
9यदि
loading certificates: open xxxxx: no such file or directory
आए, तो Caddyfile में दिए SSL सर्टिफिकेट के पाथ में ग़लती या फाइल मौजूद नहीं। अपने.crt
/.cer
/.pem
और.key
फाइल का एड्रेस चैक करें और सुनिश्चित करें कि फाइलें वाकई मौजूद हैं। ServBay में सर्टिफिकेट मैन्युअली या ACME से आ सकते हैं, सेटिंग्स चैक करें।वेबसाइट root path में स्पेस:
bash# macOS Example 2024/12/09 17:26:37.371 INFO using config from file {"file": "/Applications/ServBay/etc/caddy/Caddyfile"} Error: adapting config using caddyfile: parsing caddyfile tokens for 'root': too many arguments; should only be a matcher and a path, at /Applications/ServBay/etc/caddy/Caddyfile:1388 # Windows Example 2024/12/09 17:26:37.371 INFO using config from file {"file": "C:\\ServBay\\etc\\caddy\\Caddyfile"} Error: adapting config using caddyfile: parsing caddyfile tokens for 'root': too many arguments; should only be a matcher and a path, at C:\\ServBay\\etc\\caddy\\Caddyfile:1388
1
2
3
4
5
6
7parsing caddyfile tokens for 'root': too many arguments
तब आता है जब root path में स्पेस हो:- macOS:
root * /Applications/ServBay/www/public web
मेंpublic web
दो पैरामीटर जैसा लगता है - Windows:
root * C:\ServBay\www\public web
समाधान: स्पेस वाले पाथ को डबल कोट्स
" "
में रखें:- macOS:
root * "/Applications/ServBay/www/public web"
- Windows:
root * "C:\ServBay\www\public web"
सलाह: नाम में स्पेस या खास चिन्ह न रखें, शब्दों को
-
या_
से अलग करें, जैसेpublic-folder
याpublic_dir
!- macOS:
Rewrite नियम ग़लत:
NGINX की रूल्स सीधे Caddyfile में डालने से Error आती है। सही सिंटैक्स के लिए Caddy के Rewrite मॉड्यूल या ServBay की NGINX से Migrating वेबसाइट गाइड देखें।
NGINX कॉन्फ़िगरेशन परीक्षण
NGINX में -t
पैरामीटर से config जाँचें:
bash
# macOS
/Applications/ServBay/bin/nginx -t
# Windows
C:\ServBay\bin\nginx.exe -t
1
2
3
4
5
2
3
4
5
सही कॉन्फ़िगरेशन पर:
# macOS
nginx: the configuration file /Applications/ServBay/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /Applications/ServBay/etc/nginx/nginx.conf test is successful
# Windows
nginx: the configuration file C:\ServBay\etc\nginx\nginx.conf syntax is ok
nginx: configuration file C:\ServBay\etc\nginx\nginx.conf test is successful
1
2
3
4
5
6
7
2
3
4
5
6
7
Error आने पर NGINX गलत फाइल और लाइन दिखा देगा। आम त्रुटियाँ:
- Syntax Error: जैसे; सेमीकोलन नहीं, ब्रैकेट ग़लत
- File Path Error: Include या Directive में गलत पाथ
- Port Conflict: दिये गए लिसन पोर्ट पहले से किसी और के पास
Apache कॉन्फ़िगरेशन परीक्षण
Apache में apachectl configtest
से syntax चेक करें:
bash
# macOS
/Applications/ServBay/bin/apachectl configtest
# Windows
C:\ServBay\bin\httpd.exe -t
1
2
3
4
5
2
3
4
5
सही होने पर: Syntax OK
और Error होने पर reason मिलेगा। आम त्रुटियाँ:
- Module Load Error:
LoadModule
में गलत या missing path - .htaccess Syntax Error: साइट डायरेक्ट्री के
.htaccess
में ग़लती, इससे पूरी Apache config fail या एक्सेस error - Directory Permission:
Directory
/Files
में गलत नियम (Require
,Allow
,Deny
)
500 Internal Server Error समाधान
500 Internal Server Error HTTP status code है यानी सर्वर किसी अनपेक्षित error में फंस गया। आमतौर पर PHP, Python, Node.js जैसे backend स्क्रिप्ट fail होती हैं।
आम छानबीन स्टेप्स
500 Error आए तो ये करें:
Web Server के Error लॉग देखें: सबसे पहले error लॉग देखें—किसी फाइल का access ना होना, स्क्रिप्ट error, permission issue आदि शायद मिलेगा।
macOS:
- Caddy:
/Applications/ServBay/var/logs/caddy/error.log
- NGINX:
/Applications/ServBay/var/logs/nginx/error.log
- Apache:
/Applications/ServBay/var/logs/apache/error.log
Windows:
- Caddy:
C:\ServBay\var\logs\caddy\error.log
- NGINX:
C:\ServBay\var\logs\nginx\error.log
- Apache:
C:\ServBay\var\logs\apache\error.log
नई लॉग एंट्री में
error
याcritical
शब्द खोजें।- Caddy:
Backend सेवा (PHP-FPM) चल रही है या नहीं देखें: PHP वाली साइट है तो PHP-FPM स्टार्ट है या नहीं देखें।
bashps aux | grep php-fpm
1php-fpm: master process
याphp-fpm: pool www
वाली लाइनें आएं तो OK। न हों तो PHP-FPM बंद है—ServBay UI याservbayctl
से सर्विस चालू करें।Backend Script (जैसे PHP) Error लॉग देखें: अगर FastCGI/Script error मिलती है तो PHP error लॉग जांचें।
PHP Error लॉग:
- macOS:
/Applications/ServBay/var/logs/php/php_error.log
- Windows:
C:\ServBay\var\logs\php\php_error.log
लॉग में
Fatal error
,Parse error
,Warning
,Notice
और आपके स्क्रिप्ट से जुड़ी एंट्री देखें। प्रोडक्शन मेंdisplay_errors
off रखें, डेवलपमेंट में error देखने के लिए temporarily on करें (php.ini में सेटिंग)।- macOS:
फाइल और डायरेक्ट्री के परमिशन देखें: Web Server अक्सर खास user से चलता है; साइट फाइलें पढ़ने/लिखने के लिए उसे अनुमति चाहिए।
macOS:
bashls -la /Applications/ServBay/www/your-site/
1_www
जैसे server user को सभी फाइलें/डायरेक्ट्री पढ़ने की अनुमति दें—फाइल अपलोडिंग या लॉगिंग के लिए लिखने की भी अनुमति चाहिए।chmod
/chown
से मालिक और permissions बदलें।Windows:
cmddir C:\ServBay\www\your-site
1Windows में ServBay यूज़र को फोल्डर की permission दें—फ़ाइल properties > सुरक्षा टैब से सेट करें।
खास वेब सर्वर के लिए 500 Error छानबीन मुख्य बातें
Caddy:
- FastCGI Config: Caddyfile में
php_fastcgi
याreverse_proxy
सही तरह से PHP-FPM की एड्रेस (जैसे127.0.0.1:9000
याunix:/path/to/php-fpm.sock
) को point करे। - PHP-FPM Status: ServBay में PHP version और PHP-FPM सेवा चल रही हो।
- Reverse Proxy:
reverse_proxy
से किसी और backend (जैसे Node.js) को भेज रहे हैं तो उसका पोर्ट/address सही हो और वो सेवा चालू हो।
- FastCGI Config: Caddyfile में
NGINX:
fastcgi_pass
सेटिंग:nginx.conf
या साइट config मेंfastcgi_pass
का target PHP-FPM हो।client_max_body_size
: बड़ी फ़ाइल अपलोड पर 500 error—अगर ये सेटिंग कम है।try_files
directive: देख लें config में सही index फाइल मिल रही हो, या fastcgi को सही request मिल रही हो।
Apache:
mod_rewrite
module:.htaccess
से URL rewrite कर रहे हैं तो mod_rewrite चालू हो।- .htaccess File: इसमें गलती, खासकर
RewriteRule
, से 500 error आ सकती है—syntax चेक करें। AllowOverride
सेटिंग: Apache config में AllowOverride सही हो, ताकि .htaccess के rules लागू हों (All
, या कम से कमFileInfo
औरLimit
).
सेवा प्रबंधन
कॉन्फ़िगरेशन बदली या backend में बदलाव किया तो खुद Web Server या service restart करें ताकि असर दिखे।
सेवा को रिस्टार्ट करें
servbayctl restart
से वेब सर्वर सेवा रिस्टार्ट करें:
bash
# Caddy सेवा पुनः आरंभ
servbayctl restart caddy -all
# NGINX सेवा पुनः आरंभ
servbayctl restart nginx -all
# Apache सेवा पुनः आरंभ
servbayctl restart apache -all
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
-all
पैरामीटर संबंधित सेवाओं (जैसे FastCGI, PHP-FPM) को भी रिस्टार्ट करता है।
सेवा स्थिति देखें
servbayctl status
से सेवा का स्टेटस देखें:
bash
# Caddy सेवा स्टेटस
servbayctl status caddy -all
# NGINX सेवा स्टेटस
servbayctl status nginx -all
# Apache सेवा स्टेटस
servbayctl status apache -all
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
यह दिखाता है कि सेवा running
है या stopped
वगैरह, जिससे पुष्टि हो जाती है सेवा चालू है।
एडवांस समस्या समाधान स्टेप्स
अगर ऊपर दिए कदम असर न करें तो ये गहरे स्टेप्स आज़माएँ:
- ब्राउज़र डेवलपर टूल्स देखें: F12 दबाएँ,
Console
औरNetwork
टैब में front-end JavaScript error, रिक्वेस्ट का status कोड, response headers/body चेक करें—जानकारी मिलेगी कि problem front-end में है या backend में। curl -v
कमांड इस्तेमाल करें: टर्मिनल मेंcurl -v your-website.servbay.demo
चलाएँ।-v
से request/response, headers, SSL इत्यादी दिखेगा।your-website.servbay.demo
को अपनी साइट के डोमेन से बदलें।- फ़ायरवॉल अस्थायी बंद करें: लोकल firewall या third-party सुरक्षा सॉफ्टवेयर request ब्लॉक कर सकता है। टेस्ट के लिए temporarily firewall बंद करें; अगर समस्या हल हो, तो ServBay के लिए जरूरी पोर्ट्स (जैसे 80, 443) ओपन करें।
- अलग ब्राउज़र/डिवाइस पर टेस्ट करें: अन्य ब्राउज़र या कंप्युटर पर वेबसाइट खोलें—अगर वहां काम करे तो browser cache या device-specific configuration की वजह हो सकती है।
- लोकल DNS या hosts फाइल चेक करें: कस्टम डोमेन इस्तेमाल कर रहे हैं तो
/etc/hosts
(macOS) याC:\Windows\System32\drivers\etc\hosts
(Windows) फाइल में domain सही तरह से127.0.0.1
या::1
पर रिजॉल्व होता है या नहीं देखें।
निष्कर्ष
लोकल डेवलपमेंट में वेब सर्वर की समस्या आम है। कॉन्फ़िगरेशन, error लॉग, सेवाओं की स्थिति, फाइल और परमिशन को व्यवस्थित रूप से जांचें, अधिकतर समस्याओं का समाधान हो जाएगा। ServBay के इनबिल्ट निदान टूल और servbayctl
कमांड आपके सहायक हैं। अगर जटिल समस्या है तो विस्तृत ServBay दस्तावेज़ पढ़ें या तकनीकी सपोर्ट टीम से संपर्क करें।