Cómo encontrar el php.archivo ini utilizado por la línea de comandos?


Necesito habilitar pdo_mysql en mi entorno EasyPHP, así que fui a php.archivo ini y sin comentar la siguiente línea:

extension=php_pdo_mysql.dll

Desafortunadamente todavía tengo el mismo problema. Estoy usando el CLI así que supongo que necesito localizar el php.archivo ini utilizado por la CLI. ¿Cómo puedo encontrarlo?

 317
Author: Amokrane Chentir, 2010-05-01

13 answers

Simplemente ejecuta php --ini

 752
Author: Mchl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-19 07:11:40

Puedes obtener un phpinfo() completo usando:

php -i 

Y, allí, está el archivo php.ini utilizado:

$ php -i | grep 'Configuration File'
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini

En el uso de Windows find en su lugar:

php -i|find/i"configuration file"
 344
Author: Pascal MARTIN,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-16 10:50:14
php --ini

Le dará todos los detalles detalles sobre la ruta de uso y los posibles archivos ini

 32
Author: Lode,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-13 12:11:45

Puedes usar get_cfg_var ('cfg_file_path') para eso:

Para comprobar si el sistema está utilizando un archivo de configuración, intente recuperar el valor de la configuración cfg_file_path. Si está disponible, se está utilizando un archivo de configuración.
A diferencia de phpinfo() dirá si no encontró/usó un php.ini en absoluto.
var_dump( get_cfg_var('cfg_file_path') );

Y usted puede simplemente establece la ubicación del php.ini . Está utilizando la versión de línea de comandos, por lo que utilizando el parámetro -c puede especificar la ubicación, por ejemplo,

php -c /home/me/php.ini -f /home/me/test.php
 13
Author: VolkerK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-01 16:06:35

Ejecute php --ini en su terminal, obtendrá todos los detalles sobre los archivos ini

[root@tamilan src]# php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File:         /etc/php.ini
Scan for additional .ini files in: /etc/php.d
Additional .ini files parsed:      /etc/php.d/apc.ini,
/etc/php.d/bcmath.ini,
/etc/php.d/curl.ini,
/etc/php.d/dba.ini,
/etc/php.d/dom.ini,
/etc/php.d/fileinfo.ini,
/etc/php.d/gd.ini,
/etc/php.d/imap.ini,
/etc/php.d/json.ini,
/etc/php.d/mbstring.ini,
/etc/php.d/memcache.ini,
/etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini,
/etc/php.d/pdo.ini,
/etc/php.d/pdo_mysql.ini,
/etc/php.d/pdo_sqlite.ini,
/etc/php.d/phar.ini,
/etc/php.d/posix.ini,
/etc/php.d/sqlite3.ini,
/etc/php.d/ssh2.ini,
/etc/php.d/sysvmsg.ini,
/etc/php.d/sysvsem.ini,
/etc/php.d/sysvshm.ini,
/etc/php.d/wddx.ini,
/etc/php.d/xmlreader.ini,
/etc/php.d/xmlwriter.ini,
/etc/php.d/xsl.ini,
/etc/php.d/zip.ini

Para obtener más información, use helping command php --help Mostrará todas las opciones posibles.

 13
Author: Sathish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-03 07:29:39

Si desea cargar todos los archivos de configuración, esto le dirá:

php -i | grep "\.ini"

Algunos sistemas cargan cosas desde más de un archivo ini. En mi sistema ubuntu, se ve así:

$  php -i | grep "\.ini"
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
Scan this dir for additional .ini files => /etc/php5/cli/conf.d
additional .ini files parsed => /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
 6
Author: Reece45,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-01 17:13:27

Algunas veces las cosas no son siempre lo que parecen cuando se trata de archivos de configuración en general. Así que aquí estoy aplicando mis métodos habituales para explorar qué archivos se abren por un proceso.

Utilizo un programa de línea de comandos muy potente y útil llamado strace para mostrarme lo que realmente está pasando a mis espaldas!

$ strace -o strace.log php --version
$ grep php.ini strace.log

Strace extrae las llamadas del kernel (sistema) que realiza su programa y vuelca la salida en el archivo especificado por-o

Es fácil de usar grep para buscar ocurrencias de php.ini en este registro. Es bastante obvio mirar la siguiente respuesta típica para ver lo que está pasando.

open("/usr/bin/php.ini", O_RDONLY)      = -1 ENOENT (No such file or directory)
open("/etc/php.ini", O_RDONLY)          = 3
lstat("/etc/php.ini", {st_mode=S_IFREG|0644, st_size=69105, ...}) = 0
 6
Author: thomas-peter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-27 13:00:06

En OSX Mavericks, corriendo:

$ php -i | grep 'Configuration File'

Devuelto:

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

En el directorio /etc/ estaba:

php.ini.default

(así como php-fpm.conf.default)

Pude copiar php.ini.default a php.ini, agregar date.timezone = "US/Central" a la parte superior (justo debajo de [php]), y el problema está resuelto.

(Al menos el mensaje de error se ha ido.)

 6
Author: MikeiLL,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-28 22:25:13

Si necesitas pasarlo a otra aplicación, puedes hacer algo como:

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

Devuelve la ruta solamente. php -c $(php --ini | grep Loaded | cut -d" " -f12) pasará en el archivo de configuración (útil para fpm)

 4
Author: Mike Mackintosh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-31 02:52:27

Por lo que recuerdo cuando solía usar EasyPHP, el php.el archivo ini está en C:\Windows\ o C:\Windows\System32

 3
Author: Tim Cooper,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-05-01 15:57:02

En su php.archivo ini establezca su directorio de extensión, por ejemplo:

extension_dir = "C:/php/ext/"

Verá que en su carpeta PHP hay una carpeta ext con todas las dll y extensiones.

 1
Author: Marc Uberstein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-19 07:34:21

Do

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

Esto generará todos los archivos llamados php.ini.

Averigua cuál estás usando, normalmente apache2/php.ini

 1
Author: Han Van Pham,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-27 08:58:39

No hay php.ini utilizado por la línea de comandos. Tienes que copiar el archivo de ...EasyPHP-<<version>>\apache\php.ini a ...EasyPHP-<<version>>\php\php.ini que editar el uno en php directorio

Referencia:

 -4
Author: antitoxic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:20