it-swarm.com.de

Alter, wo ist meine php.ini?

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.

826
necromancer

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:

  1. Das zuvor akzeptierte Antwort ist wahrscheinlich schneller und bequemer für Sie, aber es ist nicht immer richtig. Siehe Kommentare zu dieser Antwort.
  2. Bitte beachten Sie auch die bequemere Alternative <?php echo php_ini_loaded_file(); ?>, die in diese Antwort erwähnt wird.
433
Tejas

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.

779
KingCrunch

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
120
coderama

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();
63
bibliophilsagar

Dieser Befehl soll Ihnen helfen, es zu finden

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

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

29
Sakthi Karthik
phpinfo();

wird Ihnen den Standort mitteilen oder von der Kommandozeile

php -i
26
user557846

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:

Apache:

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());

CLI:

Kopieren-Einfügen in Ihr Terminal:

php -r 'print php_ini_loaded_file(); print_r(php_ini_scanned_files());'
20
Creaforge
find / -name php.ini

Hey ... es hat bei mir funktioniert!

6
Banned_User

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
4
Mike Purcell

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

  1. In Ihrem Terminal geben Sie find / -name "php.ini"

  2. Geben Sie in Ihrem Terminal php -i | grep php.ini Ein. Es sollte den Dateipfad als Configuration File (php.ini) Path => /etc anzeigen

  3. Wenn Sie auf eine Ihrer PHP-Dateien zugreifen können, öffnen Sie diese in einem Editor (Editor) und fügen Sie den folgenden Code nach <?php In eine neue Zeile ein. phpinfo(); Hier erfahren Sie, wo sich die php.ini befindet
  4. Sie können auch im interaktiven Modus mit PHP sprechen. Geben Sie einfach php -a In das Terminal ein und geben Sie phpinfo () ein. nach php initiiert.
3
cherankrish