wo finde ich die php.ini für php-cli


68

Es scheint, dass die PHP-Befehlszeile eine andere php.ini als der Haupt-PHP-Interpreter verwendet. Ich benutze Ubuntu 10.4. Mein Problem ist, dass ich in der Haupt-php.ini einen zusätzlichen Pfad für eine externe Bibliothek eingefügt habe, aber in der cli-Version ist dieser nicht vorhanden, und daher habe ich einen Pfadeinschlussfehler.

Vielen Dank


Antworten:


149

Fragen Sie einfach PHP:

php -i |grep php\.ini

Bessere Antwort als meine, da es für nicht standardmäßige und nicht Ubuntu-Anwendungen funktioniert.
Ceejayoz

Ich Configuration File (php.ini) Path => /usr/local/lib64verstehe, aber die php.ini befindet sich nicht in diesem Ordner.
Schwarz

Wenn Sie es nicht sehen php.ini, bedeutet es, dass es nicht existiert und PHP Standardwerte annimmt. Sie können eine neue php.iniDatei in diesem Verzeichnis erstellen .
Jsowa

67

Besser noch: $ php --ini

Dies zeigt auch alle zusätzlichen * .ini-Dateien an, die geladen wurden (normalerweise hängen sie in einem conf.d-Verzeichnis in debian herum):

Konfigurationsdatei (php.ini) Pfad: / etc / php5 / cli
Geladene Konfigurationsdatei: /etc/php5/cli/php.ini Suchen Sie
nach zusätzlichen INI-Dateien in: /etc/php5/cli/conf.d
Zusätzliche INI analysierte Dateien: /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/geoip.ini,
/etc/php5/cli/conf.d/imagick.ini,
/etc/php5/cli/conf.d/imap.ini,
/ etc / php5 / cli / conf.d / ldap.ini,
/etc/php5/cli/conf.d/memcache.ini,
/etc/php5/cli/conf.d/memcached.ini,
/etc/php5/cli/conf.d/ming .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,
/etc/php5/cli/conf.d/pdo_sqlite.ini,
/etc/php5/cli/conf.d/snmp.ini,
/ etc / php5 / cli / conf.d / sqlite.ini,
/etc/php5/cli/conf.d/sqlite3.ini,
/etc/php5/cli/conf.d/suhosin.ini,
/etc/php5/cli/conf.d /tidy.ini,
/etc/php5/cli/conf.d/xdebug.ini,
/etc/php5/cli/conf.d/xsl.ini

Beachten Sie, dass es sich um php-cli handelte, php-cgi hat dieses afaik nicht.


Ein Hinweis zu allen conf.dDateien - in Ubuntu ist dieser Ordner ein Symlink, sodass sie für alle PHP-Anwendungen freigegeben sind.
Ceejayoz

Wie in Debian standardmäßig vorausgesetzt, wird eines aus den normalen Repositorys installiert.
Wrikken

8

Bei meinem letzten Job habe ich mir angewöhnt, bei jeder Ausführung meine INI-Datei anzugeben ...

C:\php\cli\php.exe -c C:\php\php.ini myscript.php

Interessant. Ich mag das. Ich habe dies gerade für einen meiner Cron-Jobs mit einer benutzerdefinierten php.ini-Datei verwendet.
Mike

3

Sie finden php.ini mit dem folgenden Befehl. in LINUX

find / -name php.ini

oder

locate php.ini

Dies beantwortet nicht die Frage
Ninja

@ninja, warum nicht?
Schwarz


0

Interessant an Windows ist, dass in beiden Tests (auf Apache mit phpinfo () und in CLI mit php --ini) der Pfad der Konfigurationsdatei c: \ windows lautet. Mehr Infos hier


-3

Ich hatte das gleiche Problem. Überprüfen Sie einfach den Eigentümer und die Berechtigungen aller Dateien in /etc/php5/conf.d/. Es muss im Besitz von root sein und von jedermann lesbar sein.


Nein, es muss nur für den Prozess lesbar sein, der Besitzer kann jeder sein. Zumindest unter Linux.
Wrikken
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.