Vor einigen Jahren habe ich Apache 2.2x und PHP 5.3.1 auf einem von mir verwalteten Linux-Server installiert. Ich habe .tar.gz verwendet und sie wie angewiesen erstellt (anstelle von RPMs und What-Have-You). Und alles war gut.
Heute muss ich this installieren, was wie eine PHP Bibliothek aussieht. Ich habe alle Schritte bis zur Installation durchlaufen und finde ibm_db2.so in $PHP_HOME/lib/extensions/somecomplicatedname/ibm_db2.so
Der große Haken ist, dass der letzte Schritt darin besteht, php.ini zu konfigurieren, aber es gibt KEINE php.ini auf meinem System. Horror des Grauens. PHP funktioniert einwandfrei, außer natürlich für dieses neu entwickelte ibm_db2-Ding, das ich verwenden möchte, damit jemand eine GUI zum Basteln mit DB2
verwenden kann. (Ich habe ein kleines PHP-Skript ausprobiert, das fehlschlägt und anzeigt, dass die Funktionen von ibm_db2 nicht verfügbar sind.).
Ich muss mich alle paar Jahre mit PHP auseinandersetzen. Bitte klären Sie mich auf, was ich tun kann, um den webbasierten GUI-Zugriff auf DB2
zu ermöglichen.
Der beste Weg dies zu finden ist: Erstelle eine PHP-Datei und füge den folgenden Code hinzu:
<?php phpinfo(); ?>
und öffne es im Browser, es wird die Datei angezeigt, die gerade gelesen wird!
Updates von OP:
<?php echo php_ini_loaded_file(); ?>
, die in diese Antwort erwähnt wird.Führen Sie in der Befehlszeile Folgendes aus:
php --ini
Sie erhalten so etwas wie:
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
Das ist von meiner lokalen Entwicklungsmaschine. Die zweite Zeile ist jedoch die interessante. Wenn nichts erwähnt wird, schauen Sie sich den ersten an. Das ist der Pfad, in dem PHP nach php.ini
sucht.
Sie können dieselben Informationen mit phpinfo()
in einem Skript abrufen und mit einem Browser aufrufen. Es wird im ersten Block der Ausgabe erwähnt. php -i
macht dasselbe für die Kommandozeile, ist aber ziemlich unangenehm.
Das funktioniert bei mir:
php -i | grep 'php.ini'
Sie sollten etwas sehen wie:
Loaded Configuration File => /usr/local/lib/php.ini
p.s. Um nur den php.inin Pfad zu erhalten
php -i | grep /.+/php.ini -oE
Geben Sie im Befehlsfenster Folgendes ein
php --ini
Es wird dir den Weg so ähnlich zeigen
Configuration File (php.ini) Path: /usr/local/lib
Loaded Configuration File: /usr/local/lib/php.ini
Wenn der obige Befehl nicht funktioniert, verwenden Sie diesen
echo phpinfo();
Dieser Befehl soll Ihnen helfen, es zu finden
php -r "phpinfo();" | grep php.ini
Verwenden Sie die folgenden Befehle, um den Dateipfad php.ini
unter Linux zu ermitteln.
[[email protected] ~]# 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
oder versuchen Sie es anders
[[email protected] ~]# php --ini
zeigt das Pfadergebnis
phpinfo();
wird Ihnen den Standort mitteilen oder von der Kommandozeile
php -i
PHP wird mit zwei nativen Funktionen geliefert, um zu zeigen, welche Konfigurationsdatei geladen ist:
Abhängig von Ihrem Setup können Apache und CLI unterschiedliche ini verwenden Dateien. Hier sind die beiden Lösungen:
Fügen Sie einfach Folgendes in eine PHP-Datei ein und öffnen Sie sie in Ihrem Browser
print php_ini_loaded_file();
print_r(php_ini_scanned_files());
Kopieren-Einfügen in Ihr Terminal:
php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'
find / -name php.ini
Hey ... es hat bei mir funktioniert!
Sie können weitere Informationen zu Ihren Konfigurationsdateien erhalten, indem Sie Folgendes verwenden:
$ -> php -i | ack config # Use fgrep -i if you don't have ack
Configure Command => './configure' ...
Loaded Configuration File => /path/to/php.ini
Für SAPI: PHP-FPM
Es ist nicht erforderlich, eine php.info-Datei zu erstellen (es ist keine gute Richtlinie, diese der Welt zum Lesen zu überlassen). In der Befehlszeile:
php-fpm -i | more
Irgendwo in seiner Ausgabe wird diese Zeile angezeigt:
Configuration File (php.ini) Path => /etc
Hier ist eine vollständigere Erklärung: https://www.cloudinsidr.com/content/how-to-figure-out-your-php-configuration-parameters-without-info-php/
Probieren Sie eine dieser Lösungen aus
In Ihrem Terminal geben Sie find / -name "php.ini"
Geben Sie in Ihrem Terminal php -i | grep php.ini
Ein. Es sollte den Dateipfad als Configuration File (php.ini) Path => /etc
anzeigen
<?php
In eine neue Zeile ein. phpinfo();
Hier erfahren Sie, wo sich die php.ini befindetphp -a
In das Terminal ein und geben Sie phpinfo () ein. nach php initiiert.