मुझे php.ini कहां मिल सकती है?


881

कुछ साल पहले मैं एक Linux सर्वर मैं बनाए रखने पर अपाचे 2.2x और PHP 5.3.1 स्थापित। मैंने .tar.gz का इस्तेमाल किया और उन्हें निर्देश के अनुसार बनाया (rpms के बजाय और क्या है-आप)। और सब ठीक था।

आज मैं स्थापित करने की आवश्यकता इस जो एक PHP पुस्तकालय की तरह लगता है। मैं स्थापित करने के लिए सभी चरणों से गुज़रा, और मुझे ibm_db2.so अंदर मिला$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

महान पकड़ php.ini को कॉन्फ़िगर करने के लिए अंतिम चरण है, लेकिन मेरे सिस्टम पर कोई php.ini नहीं है। भयावहता का खौफ। PHP ठीक काम करती है, सिवाय इस नए झगड़े के ibm_db2 के लिए जो मुझे बहुत पसंद है, इसलिए मैं किसी को GUI का उपयोग करने के लिए टिंकर का उपयोग कर सकता हूं DB2। (मैंने एक छोटी सी php स्क्रिप्ट की कोशिश की जो विफल हो जाती है और संकेत करती है कि ibm_db2 फ़ंक्शन उपलब्ध नहीं हैं)।

मुझे हर कुछ वर्षों में एक बार PHP से निपटना पड़ता है, इसलिए कृपया मुझे एक बहुत ही बुनियादी स्तर पर बताएं कि मैं वेब-आधारित GUI पहुंच को सक्षम करने के लिए क्या कर सकता हूं DB2


120
90% समय यह /etc/php5/apache2/php.ini
एडम

इसके अलावा stackoverflow.com/q/2750580/632951
Pacerier

6
डाउनवोटिंग क्योंकि प्रश्न का आधार गलत है। "मेरे सिस्टम पर कोई php.ini नहीं है" नहीं, आप इसे खोजने में विफल रहे। जिसमें से बोलते हुए, locate php.iniआपको केवल उन क्षणों में बताएगा जहां फ़ाइल आपके सिस्टम पर है।
ऑर्बिट

1
@ एडम: जब तक यह PHP5 नहीं है;)
लाइन

2
@ मेरी हाँ, मेरी टिप्पणी अब भी प्रासंगिक नहीं है, हालांकि ऊपर की राशि का एहसास नहीं हुआ!
एडम

जवाबों:


466

इसे खोजने का सबसे अच्छा तरीका है: एक php फ़ाइल बनाएं और निम्नलिखित कोड जोड़ें:

<?php phpinfo(); ?>

और इसे ब्राउज़र में खोलें, यह उस फ़ाइल को दिखाएगा जो वास्तव में पढ़ी जा रही है!

ओपी द्वारा अपडेट:

  1. पहले स्वीकार किया गया उत्तर आपके लिए अधिक तेज़ और अधिक सुविधाजनक होने की संभावना है, लेकिन यह हमेशा सही नहीं होता है। उस उत्तर पर टिप्पणियाँ देखें।
  2. कृपया इस उत्तर<?php echo php_ini_loaded_file(); ?> में वर्णित अधिक सुविधाजनक विकल्प पर भी ध्यान दें ।

11
यह स्वीकृत उत्तर होना चाहिए। यदि आपने सीएलआई स्थापित किया है और अपाचे चल रहे हैं तो इसकी अपनी आईआई फाइल हो सकती है (जैसा कि मेरा सिस्टम करता है)। स्वीकृत उत्तर का उपयोग करते हुए अपाचे के बजाय सीएलआई क्या उपयोग कर रहा है।
दान

2
@ हाँ, आप सही हैं। मैं इसके लिए स्वीकृत उत्तर को बदल रहा हूं क्योंकि आपके द्वारा बताई गई समस्या व्यवहार में भी किसी का सामना कर रही थी (जिसने पहले स्वीकार किए गए उत्तर पर टिप्पणी की थी)। (वैसे, अगर आपने इस प्रश्न पर टिप्पणी की होती तो मैंने इस समस्या को जल्द ठीक कर दिया होता।)
नेक्रोमैंसर

2
यह मेरे इंस्टॉलेशन पर काम नहीं करता है। लेखन त्रुटि है? होना चाहिए<?php phpinfo(); ?>
svenyonson

9
php -r \@phpinfo\(\)\;मेरे लिए काम करता है php -r \@phpinfo\(\)\; | grep 'PHP Version' -m 1विशिष्ट जानकारी खींचने के लिए
jgraup

@ ज़ायल्स्ट्रा कोशिश:<?php echo php_ini_loaded_file(); ?>
एट्स गोरल

834

कमांड लाइन निष्पादित करें:

php --ini

आपको कुछ ऐसा मिलेगा:

Configuration File (php.ini) Path: /etc/php5/cli
Loaded Configuration File:         /etc/php5/cli/php.ini
Scan for additional .ini files in: /etc/php5/cli/conf.d
Additional .ini files parsed:      /etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_sqlite.ini,
/etc/php5/cli/conf.d/sqlite.ini,
/etc/php5/cli/conf.d/sqlite3.ini,
/etc/php5/cli/conf.d/xdebug.ini,
/etc/php5/cli/conf.d/xsl.ini

वह मेरे स्थानीय देव-यंत्र से है। हालांकि, दूसरी पंक्ति दिलचस्प है। अगर कुछ भी उल्लेख नहीं किया गया है, तो पहले वाले पर एक नज़र डालें। वह रास्ता है, जहाँ PHP के लिए लग रहा है php.ini

आप phpinfo()एक स्क्रिप्ट का उपयोग करके उसी जानकारी को प्राप्त कर सकते हैं और इसे ब्राउज़र के साथ कॉल कर सकते हैं। आउटपुट के पहले ब्लॉक में इसका उल्लेख किया गया है। php -iकमांड लाइन के लिए भी ऐसा ही है, लेकिन यह काफी असहज है।


5
सबसे पुराना और पहले का सबसे सरल उत्तर स्वीकार करना (SO मुझे स्वीकार करने से पहले थोड़ी देर प्रतीक्षा करने के लिए मजबूर करता है)। विस्तार के लिए धन्यवाद जो शायद अगले व्यक्ति को जानकारी की तलाश में मदद करेगा। मेरे लिए 2 वीं पंक्ति ने कहा (कोई नहीं), और पहली पंक्ति में पथ में एक php.ini फ़ाइल डालने के बाद सब कुछ ठीक रहा। धन्यवाद!
नेक्रोमन्ट

12
मैंने इस कमांड का उपयोग किया और php.ini फ़ाइल को संपादित किया, जिसने मुझे भी निर्देशित किया और मेरी PHP सेटिंग्स नहीं बदल रही थीं और मुझे एहसास हुआ कि यह मुझे सही php.ini फ़ाइल नहीं दे रही है। मैंने phpinfo () PHP फ़ंक्शन का उपयोग करने की कोशिश की और यह मुझे संपादित करने के लिए आवश्यक php.ini का वास्तविक सही स्थान देता है। मुझे लगता है कि यह बहुत महत्वपूर्ण है और मुझे उम्मीद है कि इससे किसी को मदद मिलेगी।
द कम्पोनेंट्रेड ’

3
/etc/php5/apache2/php.ini
एडम

@ व्यवहार में आने वाली समस्या के बारे में बताने के लिए धन्यवाद। मैंने स्वीकार किए गए उत्तर को एक में बदल दिया है जो एक .phpफ़ाइल बनाने पर प्रकाश डालता है । वैसे, यदि आप प्रश्न पर टिप्पणी करते हैं तो मुझे सूचित किया जाता है और मैं जल्द ही समस्या को ठीक कर सकता हूं।
नेक्रोमन्ट

5
@ स्पेसर इसका विभिन्न PHP स्थापनाओं से कोई लेना-देना नहीं है, लेकिन अलग SAPI विभिन्न ini फ़ाइलों का उपयोग कर सकते हैं। मैं अपाचे मॉड्यूल का उपयोग नहीं करता हूं, लेकिन जहां तक ​​मुझे याद है मुझे लगता है कि एक समान phpinfo.phpफ़ाइल के आसपास कोई रास्ता नहीं है । एफपीएम के साथ आप कम से कम उपयोग कर सकते हैं php5-fpm -i | grep '\.ini'। आमतौर पर आप इस का उपयोग दो या तीन बार करते हैं और दिन के अंत में आप जानते हैं कि फाइलें कहां हैं;)
किंगक्रंच

133

यह मेरे लिए काम करता है:

php -i | grep 'php.ini'

आपको कुछ इस तरह देखना चाहिए:

Loaded Configuration File => /usr/local/lib/php.ini

ps केवल php.inin पथ प्राप्त करने के लिए

php -i | grep /.+/php.ini -oE

5
यह केवल काम करता है, अगर वहाँ है एक php.iniहै, जो वास्तव में समस्या यह है: अगर कोई भी है, तब भी आप को देखने के लिए जहां, जहां एक नया एक जगह के लिए पता नहीं है या।
KingCrunch

मैं कभी ऐसी स्थिति में नहीं आया हूँ जहाँ php.ini फ़ाइल नहीं है।
कोडरमा

इस कमांड को Configuration File (php.ini) Path => /usr/libचलाने <?php phpinfo(); ?>से मुझे मदद मिलती है , लेकिन रनिंग मुझे देता है Loaded Configuration File: /etc/php.ini। इसलिए, phpinfo()मेरे मामले में अधिक विश्वसनीय था।
लियो गैलीगिलोस

2
यह पूरी तरह सही नहीं है। हर फ्रेमवर्क जो PHP भाषा का उपयोग करता है, उसमें स्वयं की php.ini फ़ाइल होती है। यदि आप कमांड लाइन से उस लाइन को कॉल करते हैं, तो आप संभवतः /var/php5/cli/php.ini जैसा कुछ प्राप्त करेंगे, जो वेब वातावरण पर PHP चलाते समय उपयोग की जाने वाली फ़ाइल नहीं है। उस फ़ाइल के लिए, आपको apache2 फ़ोल्डर में देखना चाहिए।
एंड्रिया मोरो

63

कमांड विंडो प्रकार में

php --ini

यह आपको कुछ ऐसा रास्ता दिखाएगा

Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File:         /usr/local/lib/php.ini

यदि उपरोक्त कमांड काम नहीं करता है तो इसका उपयोग करें

echo phpinfo();

33

इस कमांड को आपको इसे खोजने में मदद करनी चाहिए

php -r "phpinfo();" | grep php.ini

1
मुझे कुछ अन्य उत्तरों की तुलना में यह बहुत अधिक पसंद है। इसकी आवश्यकता नहीं है कि मैं उन सामग्रियों के साथ एक php फ़ाइल बनाता हूं, और ब्राउज़र में पेज को लोड करता हूं।
एंड्रयू एलब्राइट

29

php.iniलिनक्स में फ़ाइल पथ को खोजने के लिए निम्न आदेशों का उपयोग करें ।

[root@AnyDirectory ~]# locate php.ini
/etc/php.ini
/etc/php.ini.rpmnew
/usr/share/doc/php-common-5.4.45/php.ini-development
/usr/share/doc/php-common-5.4.45/php.ini-production


या इसे दूसरे तरीके से आज़माएं

[root@AnyDirectory ~]# php --ini
इसका मार्ग परिणाम दिखता है


11
यह जैसे तरीकों से नीच है php -i | grep 'php.ini', क्योंकि यह किसी भी php.ini को ढूंढता है और आपको यह नहीं बताता है कि आपका PHP इंस्टॉलेशन कौन सा उपयोग करता है। इसके अलावा, यह गलत परिणाम दे सकता है जब locateDB अप टू डेट नहीं है।
lxg


22

PHP दो मूल कार्यों के साथ आती है, जो यह दिखाने के लिए कि कौन सी कॉन्फिगर फाइल लोड की गई है:

आपके सेटअप के आधार पर, अपाचे और सीएलआई विभिन्न आईआईएन फाइलों का उपयोग कर सकते हैं। यहाँ दो समाधान दिए गए हैं:

अमरीका की एक मूल जनजाति :

बस एक php फ़ाइल में निम्नलिखित जोड़ें और इसे अपने ब्राउज़र में खोलें

print php_ini_loaded_file();
print_r(php_ini_scanned_files());

CLI:

अपने टर्मिनल में कॉपी-पेस्ट करें:

php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'

अंडर-सराहना, पूरी तरह से, और (लगभग) सही उत्तर। मैंने इसे लगभग सही उत्तर में बदल दिया लेकिन मुझे चिंता है कि php_ini_loaded_fileहमेशा उपलब्ध नहीं हो सकता।
नेक्रोमन्ट

@zylstra आपका php संस्करण क्या था? डॉक्स के लिए php_ini_loaded_filephp वर्जन> = 5.2.4
नेक्रोमैंसर

@necromancer अब निश्चित नहीं है। भूल गया कि मैं कौन सी व्यवस्था जाँच रहा था। : /
zylstra

8
find / -name php.ini

अरे ... यह मेरे लिए काम किया!


3
एक के लिए, इसमें कुछ समय लगता है; दो के लिए, यदि आपके पास एक से अधिक हैं, तो आप कैसे जानते हैं कि वास्तव में उपयोग में कौन सा है?
नेक्रोमन्ट

1
सच है, php --iniकाम करता है, लेकिन यह सिर्फ एक और विकल्प है :) आमतौर पर एक है /etc/php5/cli/php.ini /etc/php5/apache2/php.ini /etc/php5/cgi/php.iniऔर आमतौर पर जो आप चाहते हैं वह बहुत स्पष्ट है। (cli, apache, cgi)
Banned_User

यह एक अच्छा समाधान नहीं है, क्योंकि हम डिस्क पर सभी php.ini फ़ाइल को खोजने के लिए इरादा नहीं हैं।

4

आप कुछ का उपयोग करके अपनी कॉन्फिग फाइलों के बारे में अधिक जानकारी प्राप्त कर सकते हैं:

$ -> php -i | ack config # Use fgrep -i if you don't have ack

Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini

4

SAPI के लिए: php-fpm

Php.info फ़ाइल बनाने की कोई आवश्यकता नहीं है (यह वैसे भी पढ़ने के लिए दुनिया के लिए इसे छोड़ने के लिए एक अच्छी नीति नहीं है)। कमांड लाइन पर:

php-fpm -i | more

इसके उत्पादन में कहीं न कहीं यह रेखा दिखाई देगी:

Configuration File (php.ini) Path => /etc

यहाँ एक और अधिक पूर्ण विवरण दिया गया है: https://www.cloudinsidr.com/content/how-to-figure-out-your-php-configuration-parameters-without-info-php/


2

इस समाधान का एक प्रयास करें

  1. अपने टर्मिनल प्रकार में find / -name "php.ini"

  2. अपने टर्मिनल प्रकार में php -i | grep php.ini। यह फ़ाइल पथ को दिखाना चाहिएConfiguration File (php.ini) Path => /etc

  3. यदि आप अपनी एक php फाइल एक्सेस कर सकते हैं, तो उसे एक एडिटर (नोटपैड) में खोलें और <?php एक नई लाइन के बाद कोड डालें। phpinfo();यह आपको php.ini लोकेशन बताएगा
  4. आप इंटरैक्टिव मोड में php से भी बात कर सकते हैं। बस टाइप php -aटर्मिनल और प्रकार phpinfo में (); php ने पहल की।

अंक 1, 2 और 4 कई संस्थापन समस्याओं की चपेट में हैं; पहले से ही महान जवाब हैं। ऐसा उत्तर जोड़ने की आवश्यकता नहीं है जो यहां कुछ भी नहीं जोड़ता है।
नेक्रोमन्ट

@necromancer अपने मुद्दों को विस्तार से बताएं ताकि यह किसी के लिए उपयोगी हो। हमारे पास खराब और बेकार के जवाबों के लिए अपवोट और डाउनवोट है और समुदाय तय करेगा।
चिरंकृष्टि

-1

Php.ini फ़ाइल का पता लगाने के लिए पहले से ही कई मान्य तरीके हैं, लेकिन अगर आप इस पृष्ठ पर आए हैं क्योंकि आप इसके साथ कुछ करना चाहते हैं:

path_php_ini="$(php -i | grep 'Configuration File (php.ini) Path' | grep -oP '(?<=\=\>\s).*')" echo ${path_php_ini}


1
इसे इसके बजाय देखें: stackoverflow.com/a/24342463/621338 इसे बाहर निकालने के बजाय, जो भंगुर है यदि पाठ बदलता है, तो आप फ़ाइल नाम का php प्रिंट कर सकते हैं और इसे ऊपर की तरह जटिल सामग्री के बिना किसी bash स्क्रिप्ट में उपयोग कर सकते हैं।
नेक्रोमैंसर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.