මට php.ini සොයාගත හැක්කේ කොතැනින්ද?


893

මීට වසර කිහිපයකට පෙර මම නඩත්තු කරන ලිනක්ස් සේවාදායකයක Apache 2.2x සහ PHP 5.3.1 ස්ථාපනය කළෙමි. මම .tar.gz භාවිතා කර උපදෙස් පරිදි ඒවා ගොඩනගා ගත්තෙමි (rpms සහ what-have-you වෙනුවට). සියල්ල හොඳින් විය.

අද මම ස්ථාපනය කිරීමට අවශ්ය මෙම සොයන PHP පුස්තකාල වැනි කථනයක්. ස්ථාපනය කිරීම සඳහා මම සියලු පියවරයන් ඉදිරියට ගිය අතර, මට ibm_db2.so ඇතුලත් විය$PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

විශාල අල්ලා ගැනීම අවසාන පියවර වන්නේ php.ini වින්‍යාස කිරීමයි, නමුත් මගේ පද්ධතියේ කිසිදු php.ini නොමැත. බිහිසුණුකම. මට භාවිතා කිරීමට අවශ්‍ය මෙම නව-විකාර ibm_db2 දේ හැරෙන්නට PHP හොඳින් ක්‍රියා කරයි, එබැවින් යමෙකුට ටින්කර් කිරීමට GUI එකක් භාවිතා කළ හැකිය DB2. (මම කුඩා php ස්ක්‍රිප්ට් එකක් උත්සාහ කර එය අසමත් වන අතර ibm_db2 ශ්‍රිත නොමැති බව අඟවයි).

මට වසර කිහිපයකට වරක් PHP සමඟ ගනුදෙනු කිරීමට සිදුවේ, එබැවින් කරුණාකර වෙබ් පාදක GUI ප්‍රවේශය සක්‍රීය කිරීම සඳහා මට කළ හැකි දේ පිළිබඳව මූලික මට්ටමින් මට දැනුම් දෙන්න DB2.


122
90% වේලාව /etc/php5/apache2/php.ini
ඇඩම්


8
ප්‍රශ්නයේ පරිශ්‍රය වැරදියි. "මගේ පද්ධතියේ කිසිදු php.ini නොමැත " නැත, ඔබ එය සොයා ගැනීමට අසමත් විය. ඒ ගැන කථා කිරීමෙන්, locate php.iniඔබේ පද්ධතියේ ගොනුව තිබෙන මොහොතකින් ඔබට කියනු ඇත.
කක්ෂයේ සැහැල්ලු ධාවන තරඟ

1
D ඇඩම්: එය PHP5 නොවේ නම්;)
පේළිය

2
@line ඔව් මගේ අදහස තවදුරටත් අදාළ නොවේ.
ඇඩම්

Answers:


472

මෙය සොයා ගත හැකි හොඳම ක්‍රමය නම්: php ගොනුවක් සාදා පහත කේතය එක් කරන්න:

<?php phpinfo(); ?>

එය බ්‍රව්සරයේ විවෘත කළ විට එය කියවන ගොනුව පෙන්වනු ඇත!

OP විසින් යාවත්කාලීන කිරීම්:

  1. කලින් පිළිගත් පිළිතුර ඔබට වේගවත් හා පහසු වනු ඇත, නමුත් එය සැමවිටම නිවැරදි නොවේ. එම පිළිතුර පිළිබඳ අදහස් බලන්න.
  2. කරුණාකර මෙම පිළිතුරෙහි<?php echo php_ini_loaded_file(); ?> සඳහන් වඩාත් පහසු විකල්පය ද සටහන් කරන්න .

11
මෙය පිළිගත් පිළිතුර විය යුතුය. ඔබ සීඑල්අයි ස්ථාපනය කර අපාචේ ධාවනය කර ඇත්නම් එයට එහි ම ඉනි ගොනුවක් තිබිය හැකිය (මගේ පද්ධතිය මෙන්). පිළිගත් පිළිතුර භාවිතා කිරීමෙන් අපාචේට වඩා සීඑල්අයි භාවිතා කරන දේ ලැබේ.
ඩෑන්

2
An ඩෑන් ඔව්, ඔබ හරි. මම මේ සඳහා පිළිගත් පිළිතුර වෙනස් කරමි, මන්ද ඔබ සඳහන් කළ ගැටලුව ප්‍රායෝගිකව යමෙකු මුහුණ දී ඇති හෙයිනි (කලින් පිළිගත් පිළිතුර ගැන අදහස් දැක්වූ). (ඔබ මෙම ප්රශ්නය ඉක්මනින් ස්ථාවර වනු ඇත යන ප්රශ්නය පිළිබඳව අදහස් නම් මාර්ගය වන විට,.)
සෙව්වොත්

2
මෙය මගේ ස්ථාපනය මත ක්‍රියා නොකරයි. යතුරු ලියනය? විය යුත්තේ<?php phpinfo(); ?>
ස්වේනොන්සන්

9
php -r \@phpinfo\(\)\;php -r \@phpinfo\(\)\; | grep 'PHP Version' -m 1නිශ්චිත තොරතුරු අදින්න මට වැඩ කරයි
jgraup

@zylstra උත්සාහ කරන්න:<?php echo php_ini_loaded_file(); ?>
Ates Goral

852

විධාන රේඛාවේ ක්‍රියාත්මක කරන්න:

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

ඒ මගේ දේශීය dev-machine එකෙන්. කෙසේ වෙතත්, දෙවන පේළිය සිත්ගන්නා සුළුය. කිසිවක් සඳහන් කර නොමැති නම්, පළමුවැන්න දෙස බලන්න. PHP සොයන මාර්ගය එයයි php.ini.

ඔබට phpinfo()ස්ක්‍රිප්ට් එකක භාවිතා කර එකම තොරතුරු ග්‍රහණය කර බ්‍රව්සරයකින් අමතන්න. නිමැවුමේ පළමු කොටසේ එය සඳහන් කර ඇත. php -iවිධාන රේඛාව සඳහා එයම කරයි, නමුත් එය තරමක් අපහසු වේ.


5
පැරණිතම හා පෙර සරලම පිළිතුර පිළිගැනීම (පිළිගැනීමට පෙර ටික වේලාවක් බලා සිටීමට SO මට බල කරයි). තොරතුරු සොයන ඊළඟ පුද්ගලයාට බොහෝ විට උපකාරී වන ව්‍යාප්තියට ස්තූතියි. මට 2 වන පේළිය (කිසිවක් නැත) පැවසූ අතර, පළමු පේළියේ php.ini ගොනුවක් මාර්ගයෙහි තැබීමෙන් පසුව සියල්ල හොඳින් ක්‍රියාත්මක විය. ස්තූතියි!
necromancer

12
මම මෙම විධානය භාවිතා කර එය මට යොමු කළ php.ini ගොනුව සංස්කරණය කළ අතර මගේ PHP සැකසුම් වෙනස් නොවන අතර එය මට නිවැරදි php.ini ගොනුව ලබා නොදෙන බව මට වැටහුණි. මම phpinfo () PHP ශ්‍රිතය භාවිතා කිරීමට උත්සාහ කළ අතර එය මට සංස්කරණය කිරීමට අවශ්‍ය php.ini හි සත්‍ය ස්ථානය ලබා දෙයි. මෙය ඉතා වැදගත් යැයි මම සිතන අතර මෙය යමෙකුට උපකාරී වනු ඇතැයි මම බලාපොරොත්තු වෙමි.
thecommonthread

3
/etc/php5/apache2/php.ini
ඇඩම්

comthecommonthread ඔබ ප්‍රායෝගිකව මුහුණ දුන් ගැටලුව පෙන්වා දීම ගැන ස්තූතියි. මම පිළිගත් පිළිතුර .phpගොනුවක් සෑදීම ඉස්මතු කරන පිළිතුරකට වෙනස් කර ඇත. මාර්ගය වන විට, ඔබ ප්රශ්නය ගැන අදහස් දක්වන්නේ නම් මට දැනුම් දෙනු ලබන අතර මට ඉක්මනින් ගැටළුව විසඳා ගත හැකිය.
necromancer

5
AcPacerier මෙය විවිධ PHP ස්ථාපනයන් සමඟ කිසිදු සම්බන්ධයක් නැත, නමුත් විවිධ SAPI වලට විවිධ ini ගොනු භාවිතා කළ හැකිය. මම අපාචේ මොඩියුලය භාවිතා නොකරමි, නමුත් මට මතක හැටියට මම සිතන්නේ phpinfo.phpසමාන ගොනුවක් වටා වෙනත් ක්‍රමයක් නොමැති බවයි. FPM සමඟ ඔබට අවම වශයෙන් භාවිතා කළ හැකිය php5-fpm -i | grep '\.ini'. සාමාන්‍යයෙන් ඔබ මෙය දෙවරක් හෝ තුන් වරක් භාවිතා කරන අතර දවස අවසානයේදී ලිපිගොනු තිබෙන්නේ කොහේදැයි ඔබ දන්නවා ;)
KingCrunch

141

මෙය මට වැඩ කරයි:

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කිසිවෙකු නැත නම්, ඔබ තවමත් එහිදී දෙස දන්නේ නැහැ, හෝ එහිදී අලුත් එකක් තැනින්: හරියටම ප්රශ්නයක් වන.
කිං ක්‍රන්ච්

මම කිසි විටෙකත් php.ini ගොනුවක් නොමැති තත්වයකට මුහුණ දී නැත.
කෝඩ්රාමා

මෙම විධානය ක්‍රියාත්මක කිරීමෙන් මට ලැබෙනවා Configuration File (php.ini) Path => /usr/lib, නමුත් ධාවනය <?php phpinfo(); ?>මට ලබා දෙයි Loaded Configuration File: /etc/php.ini. ඉතින්, phpinfo()මගේ නඩුවේ වඩාත් විශ්වාසදායක විය.
ලියෝ ගාලුගිලෝස්

3
මෙය සම්පූර්ණයෙන්ම නිවැරදි නොවේ. PHP භාෂාව භාවිතා කරන සෑම රාමුවකටම එයටම ආවේණික php.ini ගොනුවක් ඇත. ඔබ විධාන රේඛාවෙන් එම රේඛාව අමතන්නේ නම්, ඔබට බොහෝ විට /var/php5/cli/php.ini වැනි යමක් ලැබෙනු ඇත, එය වෙබ් පරිසරයක PHP ධාවනය කිරීමේදී භාවිතා කරන ගොනුව නොවේ. එම ගොනුව සඳහා, ඔබ apache2 ෆෝල්ඩරය සොයා බැලිය යුතුය.
ඇන්ඩ්‍රියා මොරෝ

64

විධාන කවුළු වර්ගය තුළ

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 ගොනුවක් සොයා ගැනීම සහ බ්‍රව්සරයේ පිටුව පූරණය කිරීම අවශ්‍ය නොවේ.
ඇන්ඩ rew ඇල්බ්‍රයිට්

30

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.ini php -i | grep 'php.ini'සොයා ගන්නා අතර ඔබේ PHP ස්ථාපනය භාවිතා කරන්නේ කුමන එකක්දැයි ඔබට නොකියන නිසා මෙය වැනි ක්‍රම වලට වඩා පහත් ය . එසේම, locateඩීබී යාවත්කාලීන නොවන විට එය වැරදි ප්‍රති results ල ලබා දිය හැකිය .
lxg


23

කුමන වින්‍යාස ගොනුව පටවා ඇත්දැයි පෙන්වීමට PHP ස්වදේශීය කාර්යයන් දෙකක් සමඟ පැමිණේ:

  • php_ini_loaded_file විසින් පටවන ලද ini ගොනුව නැවත ලබා දෙන්න
  • php_ini_scanned_files අතිරේක ini dir වෙතින් විග්‍රහ කර ඇති .ini ගොනු ලැයිස්තුවක් ලබා දෙයි

ඔබගේ සැකසුම අනුව, Apache සහ CLI විවිධ ini ගොනු භාවිතා කරයි. විසඳුම් දෙක මෙන්න:

අපාචේ:

පහත සඳහන් දෑ 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කළ නමුත් සෑම විටම ලබා ගත නොහැකි විය හැකි යැයි මම කණගාටු වෙමි .
necromancer

@zylstra ඔබේ php අනුවාදය කුමක්ද? සඳහා ලේඛන php_ini_loaded_fileමතය PHP අනුවාදය> = 5.2.4
සෙව්වොත්

cnecromancer දැන් විශ්වාස නෑ. මම පරීක්ෂා කරන පද්ධතිය අමතක කළා. : /
zylstra

8
find / -name php.ini

හේයි ... ඒක මට වැඩ කළා!


3
එකක් සඳහා, එය ටික කාලයක් ගතවේ; දෙකක් සඳහා, ඔබට එකකට වඩා තිබේ නම්, ඇත්ත වශයෙන්ම භාවිතයේ ඇත්තේ කුමක්දැයි ඔබ දන්නේ කෙසේද?
necromancer

1
ඇත්ත, php --iniක්‍රියා කරයි, නමුත් මෙය තවත් විකල්පයක් පමණි :) /etc/php5/cli/php.ini /etc/php5/apache2/php.ini /etc/php5/cgi/php.iniසාමාන්‍යයෙන් ඔබට අවශ්‍ය කුමන එකක්ද යන්න පැහැදිලිය. (cli, apache, cgi)
තහනම්_ පරිශීලක

මෙය හොඳ විසඳුමක් නොවේ, මන්ද අප තැටියේ ඇති සියලුම 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/


4

මෙම විසඳුමෙන් එකක් උත්සාහ කරන්න

  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
ලකුණු 1, 2 සහ 4 බහු ස්ථාපන ගැටළු වලට ගොදුරු වේ; දැනටමත් හොඳ පිළිතුරු ඇත. මෙහි කිසිවක් එකතු නොකරන පිළිතුරක් එක් කිරීමට අවශ්‍ය නැත.
necromancer

2

විධාන රේඛාවේ මෙය ක්‍රියාත්මක කරන්න:

php -r "echo php_ini_loaded_file().PHP_EOL;"

-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 ගොනුවේ නම පමණක් මුද්‍රණය කර ඉහත වැනි සංකීර්ණ දේවල් නොමැතිව බාෂ් ස්ක්‍රිප්ට් එකක භාවිතා කළ හැකිය.
necromancer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.