Vor einigen Jahren habe ich Apache 2.2x und PHP 5.3.1 auf einem von mir gepflegten Linux-Server installiert. Ich habe .tar.gz's verwendet und sie wie angewiesen erstellt (anstelle von RPMs und What-Have-You). Und alles war gut.
Heute muss ich dies installieren, was wie eine PHP-Bibliothek erscheint. 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 auf meinem System befindet sich KEINE php.ini. Horror des Grauens. PHP funktioniert einwandfrei, außer natürlich für dieses neue ibm_db2-Ding, das ich verwenden möchte, damit jemand eine GUI zum Basteln verwenden kann DB2
. (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 befassen. Bitte erläutern Sie mir auf einer sehr grundlegenden Ebene, was ich tun kann, um einen webbasierten GUI-Zugriff zu ermöglichen DB2
.
locate php.ini
erfahren Sie in wenigen Augenblicken, wo sich die Datei auf Ihrem System befindet.Antworten:
Der beste Weg, dies zu finden, ist: Erstellen Sie eine PHP-Datei und fügen Sie den folgenden Code hinzu:
und öffnen Sie es im Browser, es zeigt die Datei, die tatsächlich gelesen wird!
Updates von OP:
<?php echo php_ini_loaded_file(); ?>
in dieser Antwort erwähnte bequemere Alternative .quelle
<?php phpinfo(); ?>
php -r \@phpinfo\(\)\;
funktioniert für michphp -r \@phpinfo\(\)\; | grep 'PHP Version' -m 1
, um bestimmte Informationen zu ziehen<?php echo php_ini_loaded_file(); ?>
Führen Sie in der Befehlszeile Folgendes aus:
Sie erhalten so etwas wie:
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 Weg, auf dem PHP nach dem sucht
php.ini
.Sie können dieselben Informationen
phpinfo()
in einem Skript abrufen und mit einem Browser aufrufen. Es wird im ersten Block der Ausgabe erwähnt.php -i
macht das gleiche für die Kommandozeile, aber es ist ziemlich unangenehm.quelle
.php
Datei hervorhebt . Übrigens, wenn Sie die Frage kommentieren, werde ich benachrichtigt und kann das Problem früher beheben.phpinfo.php
ähnlichen Datei vorbei. Mit FPM können Sie zumindest verwendenphp5-fpm -i | grep '\.ini'
. Normalerweise benutzt du das zwei- oder dreimal und am Ende des Tages weißt du , wo sich die Dateien befinden;)Das funktioniert bei mir:
Sie sollten etwas sehen wie:
ps Um nur den Pfad php.inin zu erhalten
quelle
php.ini
, das ist genau das Problem: Wenn es keine gibt, können Sie immer noch nicht wissen , wo zu sehen, oder wo ein neues zu setzen.Configuration File (php.ini) Path => /usr/lib
, aber das Ausführen<?php phpinfo(); ?>
gibt mirLoaded Configuration File: /etc/php.ini
. Sophpinfo()
war zuverlässiger in meinem Fall.Geben Sie im Befehlsfenster ein
Es wird Ihnen den Weg so etwas wie zeigen
Wenn der obige Befehl nicht funktioniert, verwenden Sie diesen
quelle
Dieser Befehl soll Ihnen helfen, ihn zu finden
quelle
Verwenden Sie die folgenden Befehle, um den
php.ini
Dateipfad unter Linux zu finden.oder versuchen Sie es anders
[root@AnyDirectory ~]# php --ini
Es zeigt das Pfadergebnis
quelle
php -i | grep 'php.ini'
, da es keine php.ini findet und Ihnen nicht sagt, welche Ihre PHP-Installation verwendet. Außerdem kann es zu falschen Ergebnissen kommen, wenn dielocate
Datenbank nicht auf dem neuesten Stand ist.wird Ihnen den Standort oder die Befehlszeile mitteilen
quelle
PHP wird mit zwei nativen Funktionen geliefert, um zu zeigen, welche Konfigurationsdatei geladen ist:
Abhängig von Ihrem Setup verwenden Apache und CLI möglicherweise unterschiedliche INI-Dateien. Hier sind die beiden Lösungen:
Apache:
Fügen Sie einfach Folgendes in eine PHP-Datei ein und öffnen Sie es in Ihrem Browser
CLI:
Kopieren und Einfügen in Ihr Terminal:
quelle
php_ini_loaded_file
möglicherweise nicht immer verfügbar ist.php_ini_loaded_file
sagen php version> = 5.2.4Hey ... es hat bei mir funktioniert!
quelle
php --ini
funktioniert, aber dies ist nur eine andere Option :) Es gibt normalerweise eine/etc/php5/cli/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cgi/php.ini
und normalerweise ist die, die Sie wollen, ziemlich offensichtlich. (Cli, Apache, CGI)Sie können weitere Informationen zu Ihren Konfigurationsdateien erhalten, indem Sie Folgendes verwenden:
quelle
Für SAPI: php-fpm
Es ist nicht erforderlich, eine php.info-Datei zu erstellen (es ist keine gute Richtlinie, sie der Welt zum Lesen zu überlassen). In der Befehlszeile:
Irgendwo in seiner Ausgabe wird diese Zeile angezeigt:
Hier ist eine ausführlichere Erklärung: https://www.cloudinsidr.com/content/how-to-figure-out-your-php-configuration-parameters-without-info-php/
quelle
Versuchen Sie eine dieser Lösungen
In Ihrem Terminaltyp
find / -name "php.ini"
In Ihrem Terminaltyp
php -i | grep php.ini
. Der Dateipfad sollte als angezeigt werdenConfiguration File (php.ini) Path => /etc
<?php
in eine neue Zeile ein.phpinfo();
Dadurch erfahren Sie, wo sich die PHP-Datei befindetphp -a
Geben Sie einfach das Terminal ein und geben Sie phpinfo () ein. nach php initiiert.quelle
Es gibt bereits mehrere gültige Möglichkeiten zum Auffinden der Datei php.ini. Wenn Sie jedoch auf diese Seite gestoßen sind, weil Sie in einem Bash-Skript etwas damit tun möchten:
path_php_ini="$(php -i | grep 'Configuration File (php.ini) Path' | grep -oP '(?<=\=\>\s).*')" echo ${path_php_ini}
quelle