Ich muss pdo_mysql in meiner EasyPhp-Umgebung aktivieren, also ging ich zur Datei php.ini und kommentierte die folgende Zeile aus:
extension=php_pdo_mysql.dll
Leider habe ich immer noch das gleiche Problem. Ich verwende die CLI, daher muss ich wahrscheinlich die von der CLI verwendete Datei php.ini suchen. Wie kann ich es finden?
Antworten:
Führen Sie einfach aus
php --ini
und suchen SieLoaded Configuration File
in der Ausgabe nach dem Speicherortphp.ini
, den Ihre CLI verwendetquelle
sudo find / -iname php.ini
und es findet/etc/php/7.0/apache2/php.ini
die richtige Stelle der richtigen php.ini-Konfigurationsdatei meines Computers, die vonphp --ini
oderphp -i | grep php.ini
(beide gefunden/etc/php/7.0/cli/php.ini
) nicht gefunden wurdeSie können eine vollständige
phpinfo()
Verwendung erhalten mit:Und dort drin ist die verwendete
php.ini
Datei:Verwenden Sie unter Windows
find
stattdessen:quelle
Configuration File
Zeile von phpinfo () zeigt die letzte Stelle, an der php nach einer INI-Datei gesucht hat. Dies kann entweder der Ort sein, an dem eine solche Datei gefunden wurde, oder die letzte Option, die unter Windows% SYSTEMROOT% ist.php -i | find "Configuration file"
sollte unter Windows funktionieren. Auf jeden Fall nicht so mächtig wie grep, aber esfind
wird eine einfache Zeichenfolgensuche für Sie durchführen. Wenn php -i seine Ausgabe an stderr ausgibt, sind Sie wahrscheinlich SOL.find
Bei der Groß- und Kleinschreibung wird standardmäßig zwischen Groß- und Kleinschreibung unterschieden, daher muss zwischenphp -i | find "Configuration File"
Groß- und Kleinschreibung unterschieden () oder zwischen Groß- und Kleinschreibung unterschieden werden (php -i | find /i "Configuration file"
-/i
Flag beachten ).php --ini
als Alternative. verfügbar seit PHP 5.2.3 :)Sie können dafür get_cfg_var ('cfg_file_path') verwenden :
Im Gegensatz zu phpinfo () wird angezeigt, ob eine php.ini überhaupt nicht gefunden / verwendet wurde.Und Sie können einfach eingestellt den Standort der php.ini . Sie verwenden die Befehlszeilenversion. Mit dem
-c
Parameter können Sie also den Speicherort angeben, zquelle
Wenn Sie es
php --ini
in Ihrem Terminal ausführen, erhalten Sie alle Details zu INI-DateienVerwenden
php --help
Sie für weitere Informationen den Hilfebefehl. Es werden alle möglichen Optionen angezeigt.quelle
Manchmal sind die Dinge nicht immer so, wie sie scheinen, wenn es um Konfigurationsdateien im Allgemeinen geht. Hier wende ich meine üblichen Methoden an, um zu untersuchen, welche Dateien von einem Prozess geöffnet werden.
Ich benutze ein sehr leistungsfähiges und nützliches Kommandozeilenprogramm namens strace , um mir zu zeigen, was wirklich hinter meinem Rücken vor sich geht!
Strace gräbt Kernel- (System-) Aufrufe aus, die Ihr Programm ausführt, und speichert die Ausgabe in der durch -o angegebenen Datei
Es ist einfach, grep zu verwenden, um in diesem Protokoll nach Vorkommen von php.ini zu suchen. Es ist ziemlich offensichtlich, wenn man sich die folgende typische Antwort ansieht, um zu sehen, was los ist.
quelle
php -i
gab mir falsche Ergebnisse, aber dieses ist vollkommen in Ordnung. Vielen Dank!Wenn Sie möchten, dass alle Konfigurationsdateien geladen werden, erfahren Sie Folgendes:
Einige Systeme laden Dinge aus mehr als einer INI-Datei. Auf meinem Ubuntu-System sieht es so aus:
quelle
Unter OSX Mavericks wird Folgendes ausgeführt:
Ist zurückgekommen:
Im
/etc/
Verzeichnis war:(sowie
php-fpm.conf.default
)Ich war in der Lage zu kopieren
php.ini.default
zuphp.ini
, fügen Siedate.timezone = "US/Central"
nach oben (rechts unten[php]
), und das Problem ist gelöst.(Zumindest die Fehlermeldung ist weg.)
quelle
Wenn Sie es an eine andere App übergeben müssen, können Sie Folgendes tun:
gibt nur den Pfad zurück.
php -c $(php --ini | grep Loaded | cut -d" " -f12)
wird in der Konfigurationsdatei übergeben (nützlich fürfpm
)quelle
Soweit ich mich erinnere, als ich EasyPHP verwendet habe, befindet sich die Datei php.ini entweder in
C:\Windows\
oderC:\Windows\System32
quelle
Tun
Dadurch werden alle benannten Dateien ausgegeben
php.ini
.Finden Sie heraus, welches Sie normalerweise verwenden
apache2/php.ini
quelle
Legen Sie in Ihrer php.ini-Datei Ihr Erweiterungsverzeichnis fest, z.
Sie werden sehen, dass sich in Ihrem PHP-Ordner ein ext-Ordner mit allen DLLs und Erweiterungen befindet.
quelle
Speichern Sie die CLI-phpinfo-Ausgabe in einer lokalen Datei:
quelle
Im Docker-Container phpmyadmin / phpmyadmin keine php.ini-Datei. Es gibt jedoch zwei Dateien: php.ini-debug und php.ini-Production
Um das Problem zu lösen, benennen Sie einfach eine der Dateien in php.ini um und starten Sie den Docker-Container neu.
quelle
Es gibt keine php.ini, die von der Befehlszeile verwendet wird. Sie haben die Datei von kopieren ,
...EasyPHP-<<version>>\apache\php.ini
um...EasyPHP-<<version>>\php\php.ini
als bearbeiten , die einen in PHP - VerzeichnisReferenz:
quelle