Waar kan ik PHP.INI vinden?

Een paar jaar geleden heb ik Apache 2.2x en PHP 5.3.1 op een Linux-server die ik onderhoud. Ik gebruikte .tar.gz’s en bouwde ze zoals geïnstrueerd (in plaats van rpms en wat-hebben-u). En alles was goed.

Vandaag moet ik dit die lijkt op een PHP-bibliotheek. Ik ging door al de stappen tot het maken van installatie, en ik vind IBM_DB2.So in $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so

De grote vangst is de laatste stap is om PHP.INI te configureren, maar er is geen php.ini op mijn systeem. Afschuw van gruwelen. PHP werkt prima, behalve natuurlijk voor deze nieuw-fangled IBM_DB2 dingamagic dat ik wil gebruiken, zodat iemand een GUI kan gebruiken om te tinker met DB2. (Ik heb een klein PHP-script geprobeerd dat faalt en geeft aan dat de IBM_DB2-functies niet beschikbaar zijn).

Ik heb een keer om de paar jaar om te gaan met PHP, dus verlicht me alsjeblieft op een heel basisniveau over wat ik kon doen om web-gebaseerde GUI-toegang mogelijk te maken naar DB2.


Antwoord 1, Autoriteit 100%

Beste manier om dit te vinden is:
Maak een PHP-bestand en voeg de volgende code toe:

<?php phpinfo(); ?>

Open het in browser, het toont het bestand dat daadwerkelijk wordt gelezen!

Updates van OP:

  1. de eerder geaccepteerde antwoord is waarschijnlijk sneller en meer Handig voor u, maar het is niet altijd correct. Zie opmerkingen over dat antwoord.
  2. Let ook op het handige alternatief <?php echo php_ini_loaded_file(); ?>genoemd in dit antwoord .

Antwoord 2, autoriteit 94%

Voer op de opdrachtregel uit:

php --ini

Je krijgt zoiets als:

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

Dat is van mijn lokale ontwikkelmachine. De tweede regel is echter de interessantste. Als er niets wordt vermeld, kijk dan eens naar de eerste. Dat is het pad, waar PHP zoekt naar de php.ini.

Je kunt dezelfde informatie grep met behulp van phpinfo()in een script en deze oproept met een browser. Het wordt vermeld in het eerste blok van de uitvoer. php -idoet hetzelfde voor de opdrachtregel, maar het is nogal ongemakkelijk.


Antwoord 3, autoriteit 30%

Dit werkt voor mij:

php -i | grep 'php.ini'

Je zou zoiets moeten zien als:

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

ps.
Om alleen het php.inin-pad te krijgen

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

Antwoord 4, autoriteit 13%

In opdrachtvenster typt

php --ini

Het zal je het pad laten zien zoals

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

Als de bovenstaande opdracht niet werkt, gebruikt u dit

echo phpinfo();

Antwoord 5, Autoriteit 7%

Deze opdracht zou u moeten helpen om het

te vinden

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

Antwoord 6, Autoriteit 6%

Gebruik de volgende opdrachten om de php.iniFile Path in Linux te vinden.

[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

of probeer deze een andere manier

[root@AnyDirectory ~]# php --ini

het toont het padresultaat


Antwoord 7, Autoriteit 5%

phpinfo();

vertel je de locatie of vanuit de opdrachtregel

php -i

Antwoord 8, Autoriteit 5%

PHP Wordt geleverd met twee native functies om te laten zien welk configuratiebestand is geladen:

Afhankelijk van uw instellingen, kunnen Apacheen CLIverschillende ini-bestanden gebruiken. Hier zijn de twee oplossingen:

Apache:

Voeg het volgende toe aan een php-bestand en open het in uw browser

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

CLI :

Kopieer en plak in uw terminal :

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

Antwoord 9, autoriteit 4%

Voer dit uit in de opdrachtregel:

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

Antwoord 10, autoriteit 2%

find / -name php.ini

Hé… het werkte voor mij!


Antwoord 11, autoriteit 2%

Probeer een van deze oplossingen

  1. Typ in uw terminal find / -name "php.ini"

  2. Typ in uw terminal php -i | grep php.ini. Het moet de . tonen
    bestandspad als Configuration File (php.ini) Path => /etc

  3. Als je toegang hebt tot een van je php-bestanden, open deze dan in een editor (kladblok)
    en voeg onderstaande code in na <?phpin een nieuwe regel phpinfo();Dit
    zal je de php.ini-locatie vertellen
  4. Je kunt ook in interactieve modus met php praten. Typ gewoon php -ain
    de terminal en typ phpinfo(); nadat php is gestart.

Antwoord 12

Je kunt meer informatie krijgen over je configuratiebestanden met iets als:

$ -> php -i | ack config # Use fgrep -i if you don't have ack
Configure Command =>  './configure'  ...
Loaded Configuration File => /path/to/php.ini

Antwoord 13

Voor SAPI: PHP-FPM

Het is niet nodig om een ​​Php.info-bestand te maken (het is geen goed beleid om het te laten om de wereld te lezen om toch te lezen). Op de opdrachtregel:

php-fpm -i | more

Ergens in de uitvoer, toont deze deze regel:

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

Hier is een completere uitleg:
https: // www.cloudinsidr.com/content/how-to-figure-out-Your-php-configuration-parameters-without-info-php/


Antwoord 14

Er zijn verschillende geldige manieren die al worden vermeld voor het lokaliseren van het Php.ini-bestand, maar als u deze pagina tegenkomt omdat u er iets mee wilt doen in een bash-script:

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

Other episodes