para - donde esta php.ini xampp
¿Cómo encontrar el archivo php.ini utilizado por la línea de comandos? (13)
Necesito habilitar pdo_mysql en mi entorno EasyPhp, así que fui al archivo php.ini y descomenté la siguiente línea:
extension=php_pdo_mysql.dll
Lamentablemente todavía tengo el mismo problema. Estoy usando la CLI, así que supongo que necesito localizar el archivo php.ini utilizado por la CLI. ¿Cómo puedo encontrarlo?
Algunas veces las cosas no siempre son 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 mediante un proceso.
¡Utilizo un programa de línea de comando muy poderoso y útil llamado strace para mostrarme lo que realmente está sucediendo detrás de mi espalda!
$ strace -o strace.log php --version
$ grep php.ini strace.log
Strace extrae las llamadas del kernel (sistema) que realiza su programa y descarga la salida en el archivo especificado por -o
Es fácil usar grep para buscar las apariciones de php.ini en este registro. Es bastante obvio mirar la siguiente respuesta típica para ver qué 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
De lo que recuerdo cuando solía usar EasyPHP, el archivo php.ini está en C:/Windows/
o C:/Windows/System32
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 más información, use help command php --help
Mostrará todas las opciones posibles.
En OSX Mavericks, ejecutando:
$ 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"
en la parte superior (justo debajo de [php]
), y el problema está resuelto.
(Al menos el mensaje de error se ha ido.)
En su archivo php.ini establezca su directorio de extensión, por ejemplo:
extension_dir = "C:/php/ext/"
Verás en tu carpeta de PHP hay una carpeta ext con todas las DLL y extensiones.
Hacer
find / -type f -name "php.ini"
Esto dará salida a todos los archivos llamados php.ini
.
Averigüe cuál está utilizando, generalmente apache2/php.ini
No hay php.ini utilizado por la línea de comandos. Debe copiar el archivo de ...EasyPHP-<<version>>/apache/php.ini
a ...EasyPHP-<<version>>/php/php.ini
que editar el archivo en el directorio php
Referencia:
- https://.com/a/1961355/339872
Puede usar get_cfg_var(''cfg_file_path'') para eso:
Para verificar si el sistema está utilizando un archivo de configuración, intente recuperar el valor de la configuración de 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 simplemente puede establecer la ubicación del php.ini . Está utilizando la versión de línea de comandos, por lo que al usar el parámetro -c
puede especificar la ubicación, por ejemplo
php -c /home/me/php.ini -f /home/me/test.php
Puedes obtener un phpinfo()
completo phpinfo()
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 Windows usa find
lugar:
php -i|find/i"configuration file"
Si necesita pasarlo a otra aplicación, puede hacer algo como:
php --ini | grep Loaded | cut -d" " -f12
solo devuelve el camino. php -c $(php --ini | grep Loaded | cut -d" " -f12)
pasará en el archivo de configuración (útil para fpm
)
Si quieres que todos los archivos de configuración estén cargados, esto te dirá:
php -i | grep "/.ini"
Algunos sistemas cargan cosas de más de un archivo ini. En mi sistema de 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
Solo ejecuta php --ini
php --ini
le dará todos los detalles sobre la ruta de uso y los posibles archivos ini