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:
- de eerder geaccepteerde antwoord is waarschijnlijk sneller en meer Handig voor u, maar het is niet altijd correct. Zie opmerkingen over dat antwoord.
- 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 -i
doet 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.ini
File 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:
- php_ini_loaded_file retourneer het geladen INI-bestand
- php_ini_Scanned_files Retourneer een lijst met .ini-bestanden die uit de extra INI zijn geparseerd dir
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
-
Typ in uw terminal
find / -name "php.ini"
-
Typ in uw terminal
php -i | grep php.ini
. Het moet de . tonen
bestandspad alsConfiguration File (php.ini) Path => /etc
- Als je toegang hebt tot een van je php-bestanden, open deze dan in een editor (kladblok)
en voeg onderstaande code in na<?php
in een nieuwe regelphpinfo();
Dit
zal je de php.ini-locatie vertellen - Je kunt ook in interactieve modus met php praten. Typ gewoon
php -a
in
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}