ServBay PHP कॉन्फ़िगरेशन गाइड: php.ini, PHP-FPM और एक्सटेंशन मॉड्यूल के लिए सेटिंग्स समायोजित करें
ServBay वेब डेवलपर्स के लिए एक शक्तिशाली और लचीला स्थानीय PHP विकास वातावरण प्रदान करता है। विभिन्न प्रोजेक्ट आवश्यकताओं के अनुसार, आपको PHP की कई सेटिंग्स जैसे मेमोरी लिमिट, फाइल अपलोड साइज, त्रुटि रिपोर्टिंग लेवल या कुछ एक्सटेंशन मॉड्यूल्स को सक्षम करने की आवश्यकता हो सकती है।
यह लेख ServBay में PHP कॉन्फ़िगरेशन को संशोधित करने के तरीके पर विस्तारपूर्वक प्रकाश डालता है। ServBay ग्राफिकल यूजर इंटरफेस (UI) के माध्यम से इन सेटिंग्स के प्रबंधन का आसान तरीका अनुशंसा करता है और उपलब्ध कराता है। मूल कॉन्फ़िगरेशन फाइलों (जैसे कि php.ini
और php-fpm.conf
) का स्थान और संरचना जानना उपयोगी है, लेकिन कृपया हमेशा ServBay की UI के माध्यम से ही संशोधन करें, जिससे कि सेटिंग्स की स्थायित्व और संगतता बनी रहे।
महत्वपूर्ण सूचना
कृपया ServBay द्वारा उत्पन्न की गई PHP कॉन्फ़िगरेशन फाइलों को (जो /Applications/ServBay/etc/php/<version>/
और उसके सबडायरेक्टरीज़ में स्थित हैं) मैन्युअली एडिट न करें। ये फाइलें ServBay द्वारा प्रबंधित की जाती हैं, और मैन्युअल बदलाव ServBay के अपडेट, रीस्टार्ट या अन्य संचालन में ओवरराइट हो जाएंगे। सभी कॉन्फ़िगरेशन बदलाव केवल ServBay के यूजर इंटरफेस से करें।
अवलोकन
ServBay में, PHP के विभिन्न वर्ज़न की कॉन्फ़िगरेशन फाइलें अलग-अलग डायरक्टरी में संग्रहित होती हैं। उदाहरण स्वरूप, PHP 8.3 की मुख्य कॉन्फ़िगरेशन फाइल /Applications/ServBay/etc/php/8.3
डायरेक्टरी के भीतर होती है।
मुख्य कॉन्फ़िगरेशन फाइलें:
php.ini
: PHP की मुख्य कॉन्फ़िगरेशन फाइल, जो CLI और वेब दोनों वातावरणों के लिए सामूहिक सेटिंग्स को नियंत्रित करती है।php-fpm.conf
: PHP-FPM (FastCGI Process Manager) की फाइल, जो PHP के वेब सर्वर (जैसे Caddy या Nginx) में रनिंग और प्रदर्शन को प्रभावित करती है।conf.d/
: इस डायरक्टरी में विभिन्न PHP एक्सटेंशन मॉड्यूल के लोडिंग के लिए.ini
फाइलें होती हैं, जैसेxdebug.ini
,opcache.ini
आदि।
हालांकि ये फाइलें उपलब्ध हैं, ServBay इन्हें संशोधित करने के लिए कहीं अधिक सुरक्षित और आसान तरीका प्रदान करता है।
ServBay यूजर इंटरफेस से कॉन्फ़िगर करें (अनुशंसित)
ServBay एक सहज ग्राफिकल इंटरफेस उपलब्ध कराता है, जिससे आप PHP की अलग-अलग सेटिंग्स सीधे संपादित कर सकते हैं। UI के माध्यम से संशोधन और सेव करने के बाद, ServBay स्वतः बदलाव को लागू करता है और आवश्यकतानुसार (आमतौर पर ऑटोमेटेड) PHP सेवा को फिर से चालू करता है। इसमें आपको न फाइल एडिट करने की जरूरत है, न कमांड लाइन चलाने की।
PHP कॉन्फ़िगरेशन इंटरफेस तक पहुंचने के लिए:
- ServBay मुख्य विंडो खोलें।
- बाएं साइडबार में भाषा पर क्लिक करें।
- विकास भाषा सूची में उस PHP वर्ज़न का चयन करें जिसे आप कॉन्फ़िगर करना चाहते हैं (जैसे,
PHP 8.3
पर क्लिक करें)। - दाईं पैनल में चुने हुए PHP संस्करण की विस्तृत जानकारी और कॉन्फ़िगरेशन विकल्प नज़र आएंगे।
एक सामान्य PHP सेटिंग्स एडिटिंग इंटरफेस कुछ ऐसा दिखता है:
इंटरफेस आमतौर पर तीन मुख्य अनुभागों में बंटा होता है—PHP-FPM, PHP (php.ini
) और PHP एक्सटेंशन मॉड्यूल की सेटिंग्स। इनकी जानकारी नीचे विस्तार से दी गई है।
PHP FPM कॉन्फ़िगरेशन
सुझाव
php-fpm.conf
की सेटिंग्स मुख्यतः PHP के वेब सर्वर वातावरण के व्यवहार को प्रभावित करती हैं। ServBay UI के माध्यम से यहाँ की गई सेटिंग्स (ओवरराइड करेंगी) php.ini
की संबंधित सेटिंग्स को, लेकिन सिर्फ वेब रिक्वेस्ट्स के लिए। ये CLI (कमांड लाइन इंटरफेस) में PHP के व्यवहार को प्रभावित नहीं करेंगी।
ServBay के वेब सर्विसेज (Caddy या Nginx) PHP-FPM के जरिए PHP के साथ संवाद करते हैं। PHP FPM कॉन्फ़िग ज़ोन में आप वेब एनवायरनमेंट के प्रदर्शन और स्थिरता से जुड़ी सेटिंग्स समायोजित कर सकते हैं, जैसे:
- प्रोसेस मैनेजमेंट (
pm
): PHP-FPM कितने वर्कर प्रोसेस बनाएगा और उनका प्रबंधन कैसे करेगा (जैसेdynamic
,static
)। - प्रोसेस की संख्या (
pm.max_children
,pm.start_servers
, आदि): अधिकतम बच्चे प्रोसेस, स्टार्ट करना आदि, जो समानांतर प्रक्रिया क्षमता को नियंत्रित करता है। - मेमोरी लिमिट (
memory_limit
): यहाँ की सेटिंगphp.ini
की जैसी सेटिंग को ओवरराइड कर देगी, लेकिन सिर्फ वेब रिक्वेस्ट्स के लिए। - एरर लॉगिंग और डिस्प्ले: एरर लॉग पथ, लॉग लेवल, और क्या ब्राउज़र में एरर देखेंगे, यह सेट करें।
उदाहरण के लिए, वेब एनवायरनमेंट में PHP की मेमोरी सीमा डिफॉल्ट (जैसे 64M या 128M) से बढ़ाकर 1G करनी हो तो ServBay UI में FPM कॉन्फ़िग से memory_limit
को चुनें, 1G
सेट करें, और सेव कर लें। इसका असर वेब सर्वर के जरिए चलने वाले PHP स्क्रिप्ट्स पर ही होगा। CLI में चलने वाले स्क्रिप्ट्स को php.ini
में सेट की गई memory_limit
ही प्रभावित करेगी।
उदाहरण तुलना: अगर php.ini
में memory_limit = 512M
है, और PHP FPM कॉन्फ़िग में memory_limit = 128M
है:
- CLI में PHP स्क्रिप्ट ने 512M मेमोरी लिमिट पाई।
- वेब के जरिए PHP स्क्रिप्ट ने 128M लिमिट पाई।
php.ini कॉन्फ़िगरेशन
सुझाव
php.ini
में की गई सेटिंग्स ग्लोबल होती हैं, जो CLI और वेब दोनों एनवायरनमेंट्स में असर डालती हैं। हालांकि, ऊपर बताया कि PHP FPM की सेटिंग्स वेब एनवायरनमेंट के लिए php.ini
की समान सेटिंग्स को ओवरराइड कर सकती हैं।
PHP सेक्शन में php.ini
फाइल की कोर सेटिंग्स कवर होती हैं, जैसे:
post_max_size
: POST द्वारा भेजे जा सकने वाले डेटा की अधिकतम सीमा।upload_max_filesize
: अपलोड की जा सकने वाली फाइल की अधिकतम सीमा।date.timezone
: PHP डिफॉल्ट टाइमजोन।display_errors
/error_reporting
: त्रुटियों का पृष्ठ पर दिखना और किस स्तर की रिपोर्टिंग हो।max_execution_time
: स्क्रिप्ट्स के अधिकतम निष्पादन समय (सेकंड में)।disable_functions
/disable_classes
: सुरक्षा के लिए कुछ PHP फंक्शंस या क्लासेस को डिसेबल करें।open_basedir
: PHP किस फाइल सिस्टम पथ तक सीमित रहेगा। सभी प्रोजेक्ट्स को ServBay की डिफॉल्ट वेब रूट/Applications/ServBay/www
में रखें ताकि इसेopen_basedir
में सेट करना आसान हो जाए।
इन सामान्य php.ini
सेटिंग्स को सर्वबे UI में सीधे संशोधित करें।
php.ini
की सभी सेटिंग्स के लिए विस्तृत विवरण: PHP Runtime Configuration (PHP की ऑफिशियल डाक्यूमेंटेशन) देखें।
PHP एक्सटेंशन मॉड्यूल कॉन्फ़िगरेशन
ServBay कई सामान्य प्रयोग के PHP एक्सटेंशन मॉड्यूल्स के साथ आता है जो डेटाबेस, कैशिंग, डिबगिंग, फ्रेमवर्क सपोर्ट आदि कवर करते हैं। ServBay UI के माध्यम से इन्हें सक्षम/अक्षम करना और कस्टम सेटिंग्स करना बेहद आसान है।
ServBay द्वारा समर्थित प्रमुख PHP एक्सटेंशन्स में (लेकिन सीमित नहीं) शामिल हैं—xDebug
, OPcache
, ImageMagick
, Redis
, MongoDB
, Phalcon
, Swoole
आदि। इसके अलावा, ServBay अन्य कई एक्सटेंशन भी सपोर्ट करता है जैसे विभिन्न डेटाबेस (MySQL, PostgreSQL, MongoDB), मेसेजिंग क्यू, कैशिंग सिस्टम आदि।
PHP एक्सटेंशन सक्षम या अक्षम करना बेहद आसान है:
- ServBay UI के PHP कॉन्फ़िगरेशन इंटरफेस में, "एक्सटेंशन मॉड्यूल" या समान टैब पर स्विच करें।
- अपनी आवश्यकता के एक्सटेंशन (जैसे
xdebug
) को खोजें। - एक्सटेंशन के बगल में दिए गए टॉगल को क्लिक कर, सक्रिय या निष्क्रिय करें।
- अतिरिक्त सेटिंग्स वाले एक्सटेंशन (जैसे
xDebug
) के लिए, संबंधित पैरामीटर्स (जैसेxdebug.mode
,xdebug.client_port
) UI में ही बदल सकते हैं। - सेव पर क्लिक करें, परिवर्तन लागू करें।
ServBay समर्थित सभी PHP एक्सटेंशन मॉड्यूल्स की सूची और उनकी विस्तृत जानकारी के लिए PHP एक्सटेंशन मॉड्यूल्स सूची पुरानी और ताज़ा डाक्यूमेंटेशन देखें।
PHP कॉन्फ़िगरेशन फाइल संरचना समझें (मैन्युअल एडिट की अनुशंसा नहीं)
हालांकि UI से संशोधन करने की कड़ी सिफारिश की जाती है, मगर फाइल स्ट्रक्चर के बारे में जानना PHP के तंत्र को समझने में मदद करता है।
ServBay द्वारा बनाए गए PHP कॉन्फ़िगरेशन फाइलें /Applications/ServBay/etc/php/<version>/
डारेक्टरी में होती हैं।
php.ini
: मुख्य कॉन्फ़िगरेशन फाइल।php-fpm.conf
: PHP-FPM प्रोसेस मैनेजर की फाइल।conf.d/
: एक्सटेंशन मॉड्यूल्स की.ini
फाइलें।
php.ini फाइल संरचना उदाहरण
php.ini
फाइल में INI फॉर्मेट होता है। उदाहरण के लिए कुछ कॉमन सेटिंग्स इस तरह होती हैं:
ini
; मेमोरी लिमिट संशोधित करें
memory_limit = 256M
; अपलोड फाइल आकार सीमा बदलें
upload_max_filesize = 50M
post_max_size = 50M
; टाइमजोन सेट करें
date.timezone = "Asia/Shanghai" ; या "UTC", "America/New_York", आदि की तरह, जरूरत अनुसार बदलें
; एरर डिस्प्ले चालू करें (सिर्फ विकास के लिए!)
display_errors = On
error_reporting = E_ALL
; अधिकतम निष्पादन समय बदलें
max_execution_time = 300
; फाइल सिस्टम एक्सेस पथ सीमित करें (उदाहरण)
; open_basedir = /Applications/ServBay/www/:/tmp/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
php-fpm.conf फाइल संरचना उदाहरण
php-fpm.conf
फाइल में ग्लोबल और प्रोसेस पूल (pool
) सेटिंग्स होती हैं। ServBay आमतौर पर www
नामक डिफॉल्ट पूल बनाए रखता है।
ini
[global]
; ग्लोबल एरर लॉग पाथ
error_log = /Applications/ServBay/logs/php/8.3/errors.log
[www]
; लिसन एड्रेस और पोर्ट या सॉकिट फाइल
listen = /Applications/ServBay/tmp/php-cgi-8.3.sock
listen.backlog = -1
listen.allowed_clients = 127.0.0.1
; यूज़र और ग्रुप (ServBay मौजूदा यूज़र से चलता है)
; user = servbay-demo
; group = staff
; प्रोसेस प्रबंधन विधि (static, dynamic, ondemand)
pm = dynamic
pm.max_children = 10 ; अधिकतम बच्चे प्रोसेस
pm.start_servers = 2 ; शुरुआती प्रोसेस की संख्या
pm.min_spare_servers = 1 ; न्यूनतम खाली प्रोसेस
pm.max_spare_servers = 6 ; अधिकतम खाली प्रोसेस
pm.max_requests = 1024 ; हर बच्चे प्रोसेस के अधिकतम अनुरोध (memory leak से बचाव)
; स्लो लॉग सक्षम करें (समय सीमा से ज्यादा में स्लो लॉग में रिकॉर्ड होता है)
request_slowlog_timeout = 5s
slowlog = /Applications/ServBay/logs/php/8.3/slow.log
; php सेटिंग, जो php.ini में समान नाम वाली को ओवरराइड करती है (उदाहरण)
; php_admin_value[memory_limit] = 128M
; php_admin_flag[display_errors] = on
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
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
PHP मॉड्यूल लोडिंग कॉन्फ़िगरेशन उदाहरण (conf.d/)
conf.d/
डायरोक्टरी में हरेक PHP एक्सटेंशन के लिए .ini
कॉन्फ़िगरेशन फाइल होती है। उदाहरण के लिए xdebug.ini
में ऐसा लिखा हो सकता है:
ini
[Xdebug]
; Xdebug एक्सटेंशन लोड करें
zend_extension = xdebug.so
; Xdebug मोड (debug, develop, profile, trace, coverage)
xdebug.mode=debug,develop
; डीबगिंग शुरू करने का तरीका (yes, trigger, develop)
; yes: हमेशा डिबगिंग चालू
; trigger: निर्दिष्ट ट्रिगर (जैसे GET/POST पैरामीटर या कुकी) पर
; develop: केवल डेवलपमेंट सहयोग फीचर्स (जैसे स्टैक ट्रेसिंग)
xdebug.start_with_request=yes
; क्लाइंट होस्ट और पोर्ट, IDE से डिबगिंग कनेक्शन के लिए
xdebug.client_host=localhost
xdebug.client_port=39083
; Xdebug लॉग पथ
xdebug.log=/Applications/ServBay/logs/xdebug/8.3/xdebug.log
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
पुनः जोर: कृपया इन फाइलों को स्थान देखकर भी मैन्युअली एडिट न करें। संशोधन केवल ServBay UI से करें।
परिवर्तन लागू करें: PHP सेवा दोबारा शुरू करें
ServBay UI के जरिये संशोधन के पश्चात, ServBay आमतौर पर स्वतः बदलाव पहचानकर लागू करता है। कभी-कभी, सारे बदलाव पूरी तरह लागू करने के लिए संबंधित PHP सेवा को रीस्टार्ट करना पड़ सकता है।
PHP सेवा को रीस्टार्ट करने के तरीके:
ServBay यूजर इंटरफेस से रीस्टार्ट करें
- ServBay मुख्य विंडो खोलें।
- बाएं साइडबार में सॉफ्टवेयर पैकेज पर क्लिक करें।
- जिसमें आपने संशोधन किया, उस PHP संस्करण को खोजें।
- उसके बगल में रीस्टार्ट (आमतौर पर गोल तीर आइकन) बटन क्लिक करें।
servbayctl
कमांड लाइन टूल से रीस्टार्ट करें
कमांड लाइन का उपयोग करने वाले डेवलपर्स servbayctl
टूल की मदद से सेवाओं को प्रबंधित और रीस्टार्ट कर सकते हैं।
टर्मिनल खोलें, और यह कमांड चलाएँ (यहाँ 8.3
को अपनी जरूरत के PHP वर्ज़न से बदलें):
bash
servbayctl restart php 8.3
1
इस कमांड के बाद, सर्वबे चुने हुए PHP-FPM वर्ज़न को फिर से शुरू करेगा, जिससे नई सेटिंग्स प्रभावी होंगी।
सामान्य प्रश्न (FAQ)
प्र— मैंने मैन्युअल रूप से
php.ini
फाइल एडिट की, पर बदलाव काम नहीं कर रहे या वापस पहले जैसे हो गए?- उ— ServBay अपने सॉफ्टवेयर पैकेजों के कॉन्फ़िगरेशन फाइल्स खुद संभालता है। मैन्युअल बदलाव सर्वबे के कॉन्फ़िग अपडेट, सेवा रीस्टार्ट या अन्य आंतरिक ऑपरेशन में ओवरराइट हो सकते हैं। हमेशा ही PHP सेटिंग्स में संशोधन के लिए ServBay UI का उपयोग करें—यह स्थायी और अनुशंसित तरीका है।
प्र— PHP की मेमोरी लिमिट या फाइल अपलोड साइज कैसे बढ़ाएं?
- उ— ServBay UI खोलें, भाषा -> अपनी PHP वर्ज़न चुनें। PHP FPM कॉन्फ़िगरेशन में
memory_limit
बदलें (वेब प्रभावित होगा), और php.ini कॉन्फ़िगरेशन मेंupload_max_filesize
औरpost_max_size
बदलें (ग्लोबल, पर वेब में FPM द्वारा ओवरराइड हो सकते हैं)। सेव करें और PHP सेवा रीस्टार्ट करें।
- उ— ServBay UI खोलें, भाषा -> अपनी PHP वर्ज़न चुनें। PHP FPM कॉन्फ़िगरेशन में
प्र— Xdebug को कैसे सक्षम या कॉन्फ़िगर करें?
- उ— ServBay UI खोलें, भाषा -> अपनी PHP वर्ज़न चुनें। एक्सटेंशन मॉड्यूल्स में जाकर
xdebug
को ऑन करें, और अपने IDE और डिबग सेटअप के अनुसारxdebug.mode
,xdebug.client_host
,xdebug.client_port
जैसी सेटिंग्स बदलें। सेव करें और PHP सेवा रीस्टार्ट करें।
- उ— ServBay UI खोलें, भाषा -> अपनी PHP वर्ज़न चुनें। एक्सटेंशन मॉड्यूल्स में जाकर
प्र—
php.ini
और PHP-FPM कॉन्फ़िगरेशन में क्या फर्क है? मुझे क्या संशोधित करना चाहिए?- उ—
php.ini
PHP के लिए ग्लोबल फाइल है—CLI और वेब, दोनों को प्रभावित करती है। PHP-FPM कॉन्फ़िगरेशन (php-fpm.conf
) वेब सर्वर में PHP रनिंग हेतु है और इसकी वही नाम वाली सेटिंग्सphp.ini
को ओवरराइड कर देती हैं। आमतौर पर, वेब वातावरण को प्रभावित करने वाली सेटिंग्स (जैसे मेमोरी लिमिट, टाइमआउट, एरर डिस्प्ले) बदलनी हों तो पहले FPM देखें। CLI या सामान्य सेटिंग्स (जैसे टाइमज़ोन, फंक्शन डिसेबलिंग) में बदलाव चाहिए तो php.ini एडिट करें। ServBay UI इन दोनों के विकल्प अलग से दिखाता है।
- उ—
निष्कर्ष
ServBay की UI के माध्यम से PHP की सभी मुख्य सेटिंग्स—php.ini
, PHP-FPM, और एक्सटेंशन मॉड्यूल्स—का प्रबंधन आसान और सुरक्षित है। सेटिंग्स बदलिए, सेव करिए, PHP सेवा रीस्टार्ट करिए, और सुनिश्चित कीजिए कि आपकी विकास आवश्यकताओं के अनुसार वातावरण तैयार है। मूल फाइल स्थान जानना फायदेमंद है, लेकिन हमेशा ही वास्तविक संशोधन ServBay UI के जरिये करें ताकि आपको मैन्युअल बदलाव ओवरराइट होने की चिंता न हो। ServBay की जबरदस्त सेटिंग्स क्षमताओं के साथ आप हर प्रोजेक्ट के लिए सबसे उपयुक्त PHP रनटाइम कल्पना कर सकते हैं।