486 Stimmen

Wie kann ich die vom Befehlszeilen-Interface verwendete php.ini-Datei finden?

Ich muss pdo_mysql in meiner EasyPHP-Umgebung aktivieren, also bin ich zur php.ini-Datei gegangen und habe die folgende Zeile auskommentiert:

extension=php_pdo_mysql.dll

Leider habe ich immer noch das gleiche Problem. Ich benutze die CLI, also gehe ich davon aus, dass ich die php.ini-Datei für die CLI finden muss. Wie kann ich sie finden?

0 Stimmen

0 Stimmen

@sjas Es ist nicht falsch, es ist korrekt und informiert Sie über den Pfad des geladenen php.ini in der Befehlszeile.

0 Stimmen

EasyPHP (wahrscheinlich) impliziert Windows. Vielleicht als solches taggen?

8voto

Reece45 Punkte 2761

Wenn Sie möchten, dass alle Konfigurationsdateien geladen werden, wird Ihnen dies sagen:

php -i | grep "\.ini"

Einige Systeme laden Dinge aus mehr als einer ini-Datei. In meinem Ubuntu-System sieht es so aus:

php -i | grep "\.ini"

Ausgabe

Konfigurationsdatei (php.ini) Pfad => /etc/php5/cli
Geladene Konfigurationsdatei => /etc/php5/cli/php.ini
Dieses Verzeichnis nach zusätzlichen .ini-Dateien durchsuchen => /etc/php5/cli/conf.d
Zusätzliche .ini-Dateien geparst => /etc/php5/cli/conf.d/apc.ini,
/etc/php5/cli/conf.d/curl.ini,
/etc/php5/cli/conf.d/gd.ini,
/etc/php5/cli/conf.d/mcrypt.ini,
/etc/php5/cli/conf.d/memcache.ini,
/etc/php5/cli/conf.d/mysql.ini,
/etc/php5/cli/conf.d/mysqli.ini,
/etc/php5/cli/conf.d/pdo.ini,
/etc/php5/cli/conf.d/pdo_mysql.ini

7voto

Mike Mackintosh Punkte 13502

Wenn Sie es an eine andere App übergeben müssen, können Sie etwas Ähnliches tun:

php --ini | grep Loaded | cut -d" " -f12

gibt nur den Pfad zurück. php -c $(php --ini | grep Loaded | cut -d" " -f12) wird die Konfigurationsdatei übergeben (nützlich für fpm)

7voto

MikeiLL Punkte 5862

Unter OS X v10.9 (Mavericks) läuft:

$ php -i | grep 'Configuration File'

Zurückgegeben wird:

Configuration File (php.ini) Path => /etc
Loaded Configuration File:         (none)

Im Verzeichnis /etc/ befand sich:

php.ini.default

(ebenso wie php-fpm.conf.default)

Ich konnte php.ini.default in php.ini kopieren, date.timezone = "US/Central" oben hinzufügen (gleich unterhalb von [php]), und das Problem ist gelöst.

(Zumindest ist die Fehlermeldung verschwunden.)

2 Stimmen

Tatsächlich wird unter macOS (und dem vorherigen OSX) nie eine php.ini-Datei mitgeliefert, und es wird davon ausgegangen, dass die PHP-Entwickler vernünftige Standardauswahlen getroffen haben (was in der Regel der Fall ist). Aber wenn Sie eine Einstellung ändern müssen, müssen Sie genau das tun, was Sie beschrieben haben. Dies spart tatsächlich viel Zeit, da die meisten Benutzer ihre php.ini-Dateien nie wirklich 'reparieren' müssen...

6voto

kaiser Punkte 20765

Der einfachste Weg heutzutage ist die Verwendung von PHP konfigurieren:

php-config --ini-dir

Ergebnis:

/usr/local/etc/php/7.4/conf.d

Dort findest du noch mehr. Der --help Unterbefehl (macOS lokale Installation):

php-config --help

Ergebnis:

Verwendung: /usr/local/bin/php-config [OPTION]
Optionen:
  --prefix            [/usr/local/Cellar/php/7.4.11]
  --includes          [-I/usr/local/Cellar/php/7.4.11/include/php - …ETC…]
  --ldflags           [ -L/usr/local/Cellar/krb5/1.18.2/lib -…ETC…]
  --libs              [ -ltidy -largon2 …ETC… ]
  --extension-dir     [/usr/local/Cellar/php/7.4.11/pecl/20190902]
  --include-dir       [/usr/local/Cellar/php/7.4.11/include/php]
  --man-dir           [/usr/local/Cellar/php/7.4.11/share/man]
  --php-binary        [/usr/local/Cellar/php/7.4.11/bin/php]
  --php-sapis         [ apache2handler cli fpm phpdbg cgi]
  --ini-path          [/usr/local/etc/php/7.4]
  --ini-dir           [/usr/local/etc/php/7.4/conf.d]
  --configure-options [--prefix=/usr/local/Cellar/php/7.4.11 --…ETC…]
  --version           [7.4.11]
  --vernum            [70411]

0 Stimmen

Funktioniert das für EasyPHP? Es ist spezifisch für Windows.

0 Stimmen

@PeterMortensen Ich habe keine Ahnung, was EasyPHP ist. Der php-config -Befehl ist distro- und php-Versionsspezifisch.

4voto

Han Van Pham Punkte 392

Probieren Sie dies aus, wenn es Ihnen allen helfen könnte:

find / -type f -name "php.ini" 

Dies zeigt alle Dateien mit dem Namen php.ini an.

Finden Sie heraus, welche Datei Sie verwenden, normalerweise apache2/php.ini

2 Stimmen

Das funktioniert nicht, wenn keine php.ini-Datei vorhanden ist (in einigen Docker-Containern). Daher ist die akzeptierte Antwort besser geeignet.

0 Stimmen

Nein, apache2/php.ini wird normalerweise nicht von der CLI verwendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X