2012-05-19 24 views
46

मैं अपने पुराने अपाचे से nginx और php 5.3.10 में स्थानांतरित हो गया। और जब मैं अपने आवश्यकताओं के अनुरूप php.ini को संशोधित करने की कोशिश की, मैंने पाया वहाँ उनमें से 3 हैं:php.ini: कौन सा?

$ locate php.ini 

/etc/php5/cgi/php.ini 
/etc/php5/cli/php.ini 
/etc/php5/fpm/php.ini 

कौन सा मैं संपादित करना चाहिए?

+27

पेकका पर फॉलो अप के रूप में 'phpinfo() ' –

+0

से पूछें: _Configuration फ़ाइल (php.ini) के लिए अपने' phpinfo()' में देखें पथ_ – Tim

+0

@ पेक्का मुझे चिंता है कि प्रत्येक php.ini एक में काम करेगा अलग स्थिति (क्ली, वेब, फास्ट सीजीआई)। – HappyDeveloper

उत्तर

59

आम तौर पर, cli/php.ini फ़ाइल का उपयोग तब किया जाता है जब PHP बाइनरी को कमांड लाइन से बुलाया जाता है।
आप कमांड लाइन से php --ini चला रहे हैं।

fpm/php.ini का उपयोग तब किया जाएगा जब PHP एफपीएम के रूप में चलाया जाता है - जो कि एक nginx स्थापना के मामले में है।
और आप अपने वेबसर्वर द्वारा प्रदत्त एक PHP पृष्ठ से phpinfo() पर कॉल कर सकते हैं।

cgi/php.ini, आपकी स्थिति में, अधिकतर उपयोग नहीं किया जाएगा।


दो अलग php.ini फ़ाइलों (CLI के लिए, और अपने वेबसर्वर से पृष्ठों की सेवा करने के लिए एक दूसरे) का उपयोग करना अक्सर किया जाता है, और एक मुख्य लाभ हैं: यह आप प्रत्येक में अलग कॉन्फ़िगरेशन मान की अनुमति देता है मामला।

आमतौर पर, php.ini फ़ाइल है कि वेब सर्वर द्वारा प्रयोग किया जाता है, तो आप एक नहीं बल्कि कम max_execution_time निर्दिष्ट करेंगे: वेब पृष्ठों तेजी से कार्य किया जाना चाहिए, और एक पेज कुछ दर्जन सेकंड (30 सेकंड से भी अधिक की जरूरत है, डिफ़ॉल्ट रूप से), यह शायद एक बग के कारण है - और पृष्ठ की पीढ़ी को रोका जाना चाहिए।
दूसरी तरफ, आपके क्रॉन्टाब (या हाथ से) से लॉन्च की गई लंबी लंबी स्क्रिप्ट हो सकती हैं, जिसका अर्थ है php.ini फ़ाइल जिसका उपयोग किया जाएगा cli/ में से एक है। उन स्क्रिप्ट के लिए, आप fpm/php.ini में cli/php.ini में max_execution_time को अधिक लंबे समय तक निर्दिष्ट करेंगे।

max_execution_time एक आम उदाहरण है; आप निश्चित रूप से कई अन्य विन्यास निर्देशों के साथ ऐसा ही कर सकते हैं।

+0

मेरा मानना ​​था कि सीएलआई PHP exe ने स्पष्ट कारणों के लिए max_execution_time को पूरी तरह से अनदेखा किया है – RiggsFolly

3

यह वास्तव में स्थिति पर निर्भर करता है, मेरे लिए यह एफपीएम में है क्योंकि मैं PHP5-FPM का उपयोग कर रहा हूं। आपकी समस्या का एक समाधान के लिए एक सार्वभौमिक php.ini हो सकता है और उसके बाद की तरह बनाई गई एक प्रतीकात्मक लिंक का उपयोग:

ln -s /etc/php5/php.ini php.ini 

तो किसी भी संशोधन करने के एक सामान्य .ini फ़ाइल में होगा। यह शायद वास्तव में सबसे अच्छा समाधान नहीं है, हो सकता है कि आप कुछ कॉन्फ़िगरेशन को संशोधित करना चाहें ताकि आप एक स्थान पर एक फ़ाइल का शाब्दिक रूप से उपयोग कर सकें। एक साथ कई स्थानों को हैक नहीं किया गया।अपने वेबसर्वर रूट फ़ोल्डर में इस तरह के

नेविगेट:

+0

मुझे लिंक समझ में नहीं आता है। php5/php.ini मौजूद नहीं है, क्या मुझे इसे बनाना चाहिए? – HappyDeveloper

+0

@HappyDeveloper ओह क्षमा करें यह बस/etc/php/ –

+0

हो सकता है वैसे भी मैं display_erros = ऑन जैसे कुछ विकल्प सेट नहीं कर सकता, मुझे संदेह है कि सुहोसिन सभी php.ini लोड होने के बाद इसे बंद करना सुनिश्चित कर रहा है। – HappyDeveloper

0

हालांकि पास्कल जवाब विस्तृत और जानकारीपूर्ण गया था इसने इस धारणा में कुछ महत्वपूर्ण जानकारी है कि हर कोई जानता है phpinfo()

उन है कि नहीं है के लिए उपयोग करने के लिए कैसे उल्लेख करने में विफल के रूप में /var/www/

इस फ़ोल्डर के भीतर info.php

संपादित फ़ाइल और प्रकारनामक एक पाठ फ़ाइल बनाने के

नेविगेट फाइल करने के लिए जैसे: http://www.example.com/info.php

यहाँ आप Loaded Configuration File तहत php.ini पथ देखेंगे:

phpinfo

0

आप क्या php.ini इस्तेमाल किया फ़ाइल है पा सकते हैं:

  • phpinfo() एक php pag में जोड़ें ई और (नीचे चित्र) की तरह पेज
  • खोल से प्रदर्शित करते हैं, दर्ज करें: php मैं

इसके बाद, आप लोडेड विन्यास फ़ाइल में जानकारी प्राप्त कर सकते हैं (इसलिए यहाँ यह है/उपयोगकर्ता/स्थानीय/etc/php/php.ini)

कभी कभी, आप (कोई नहीं) ने संकेत दिया है, इस मामले में आप सिर्फ इतना है कि आप यहां पा सकते हैं अपने कस्टम php.ini डाल करने के लिए है: http://git.php.net/?p=php-src.git;a=blob;f=php.ini-production;hb=HEAD

मुझे आशा है कि यह जवाब होगा आर मदद करेगा।

संबंधित मुद्दे