2012-06-01 6 views
22

में php.ini के पथ को कैसे बदलें वेबस्वर और सीएलआई संस्करण पर चलने वाला php उसी php.ini फ़ाइल का उपयोग नहीं कर रहा है। अगर मैं एक आदेश php --ini करते हैं, यह इसPHP सीएलआई संस्करण

Configuration File (php.ini) Path: C:\Windows 
Loaded Configuration File:   C:\wamp\bin\php\php5.3.8\php.ini 
Scan for additional .ini files in: (none) 
Additional .ini files parsed:  (none) 

दिखाने जबकि मेरी वेब संस्करण C:\wamp\bin\apache\Apache2.2.21\bin\php.ini में php.ini उपयोग करता है। यह संभवतः वैंप का उपयोग करने वाले लोगों के लिए बहुत आम है।

C:\wamp\bin\apache\Apache2.2.21\bin\php.ini से पढ़ने के लिए लोड लोड कॉन्फ़िगरेशन फ़ाइल को कैसे बदलूं, इसलिए मुझे 2 अलग php.ini संस्करणों को बनाए रखने की आवश्यकता नहीं है?

उत्तर

15

प्रति http://php.net/configuration.file उन फ़ाइलों को बनाए रखने के लिए:

php.ini इन स्थानों (क्रम में) में खोजा गया है:

  • SAPI मॉड्यूल विशिष्ट स्थान (अपाचे 2 में PHPIniDir निर्देश, सीजीआई और CLI NSAPI में, php_ini पैरामीटर, THTTPD में PHP_INI_PATH वातावरण चर में -c कमांड लाइन विकल्प)
  • PHPRC वातावरण चर। PHP 5.2.0 से पहले, यह नीचे वर्णित रजिस्ट्री कुंजी के बाद चेक किया गया था।
  • PHP 5.2.0 के रूप में, php.ini फ़ाइल का स्थान PHP के विभिन्न संस्करणों के लिए सेट किया जा सकता है।
    • [HKEY_LOCAL_MACHINE \ SOFTWARE \ पीएचपी \ xyz], [HKEY_LOCAL_MACHINE \ SOFTWARE \ पीएचपी \ xy] और [HKEY_LOCAL_MACHINE \ SOFTWARE \ पीएचपी \ x], जहां एक्स, वाई और जेड: निम्न रजिस्ट्री कुंजी क्रम में जांच की जाती है मतलब PHP प्रमुख, मामूली और रिलीज संस्करण। यदि इनमें से किसी भी कुंजी में IniFilePath के लिए कोई मान है, तो पहले पाया गया पहला php.ini (केवल विंडोज़) के स्थान के रूप में उपयोग किया जाएगा।
    • [HKEY_LOCAL_MACHINE \ सॉफ़्टवेयर \ PHP], इनफाइलपाथ (केवल विंडोज़) का मान।
  • वर्तमान कार्य निर्देशिका (सीएलआई को छोड़कर)।
  • वेब सर्वर की निर्देशिका (एसएपीआई मॉड्यूल के लिए), या PHP की निर्देशिका (अन्यथा विंडोज़ में)।
  • विंडोज निर्देशिका (सी: \ विंडोज या सी: \ winnt) (विंडोज़ के लिए), या --with-config-file-path संकलित समय विकल्प।

CLI के लिए, आपका सर्वश्रेष्ठ दांव शायद खाता है कि स्क्रिप्ट का निष्पादन किया जाएगा के लिए $PHPRC वातावरण चर सेट, या एक अलग --with-config-file-path विन्यास सेटिंग के साथ पीएचपी पुन: संयोजित करने के लिए या तो है।

 
> php --help 
Usage: php [options] [-f] [--] [args...] 
... 
    -c | Look for php.ini file in this directory 

+0

तो, यह एक विंडोज मशीन चल रहा है वैंप। मैं $ PHPRC कैसे सेट करूं? – Sufendy

+2

यह सिर्फ एक पर्यावरण चर है, 'सेट पर्यावरण परिवर्तनीय विंडोज' के लिए Google ट्यूटोरियल देना चाहिए। – goat

0

दोनों पक्ष

वेबसर्वर और CLI पर phpinfo() समारोह चलाने की कोशिश और दोनों पक्ष

के लिए अपने php.ini फ़ाइल का सटीक स्थान का पता लगाना और केवल

+2

मैं पहले से ही दोनों फ़ाइलों स्थानों पता है। सवाल यह है कि उन्हें कैसे एकीकृत किया जाए। – Sufendy

1

मैं लगभग 3 घंटे बिताए हैं कि वास्तव में क्या आपके प्रश्न पूछता करने का प्रयास कर:

तुम भी जब पीएचपी लागू -c विकल्प निर्दिष्ट करने के द्वारा एक प्रति निष्पादन के आधार पर php.ini खोज dir ओवरराइड कर सकते हैं । यह नहीं कर सका मैंने छोड़ दिया और उस PHP की प्रतिलिपि बनाई।आईआई से सी: \ विंडोज़ और मेरे एनएनवी वैरिएबल "PHPRC" को C: \ Windows (और httpd.conf में) में बदल दिया। इस तरह मेरे सीएलआई PHP और अपच php ई दोनों एक ही फाइल का उपयोग कर रहे हैं। मुझे तब तक मेरे php.ini में लोड किए गए मॉड्यूल को प्रदर्शित करने के लिए "php -m" नहीं मिला जब तक कि मैंने यह परिवर्तन नहीं किया ...

+0

यह मेरे लिए कुंजी थी। मैंने वास्तव में PHPRC पर्यावरण चर को हटा दिया और रीबूट किया गया और PHP वर्तमान कार्य निर्देशिका के समान पथ को देखने के लिए डिफॉल्ट किया गया। धन्यवाद! – AS7K

7

पर्यावरण चरम PHPRC को उसी php पर इंगित करने के लिए निर्दिष्ट करके। आरं एक अपाचे के रूप में उबंटू

export PHPRC=/etc/php5/apache2/php.ini 

पर मेरे लिए काम किया या $ HOME/.bashrc में रख हर बार CLI आयात करने के लिए उपयोग करता है शुरू कर दिया है