Hay algunas maneras de localizar php.ini
archivo por línea de comandos en Linux Ubuntu, Linux Mint y otras distribuciones
de Linux. Algunas de las opciones que se muestran aquí también son compatibles con Windows, especialmente usin WSL.
¿Qué es php.ini
El archivo php.ini
es el archivo de configuración que se lee cuando se inicia PHP. Para las versiones del módulo de
servidor de PHP, esto sucede solo una vez cuando se inicia el servidor web. Para las versiones CGI y CLI, sucede en cada
invocación.
Es el lugar principal donde declaras cambios en tu configuración de PHP. El servidor ya está configurado con la configuración estándar para PHP, que su sitio o aplicación usará de forma predeterminada. A menos que necesite cambiar una o más configuraciones, no es necesario crear o modificar un archivo php.ini.
¿Dónde se encuentra el archivo php.ini por defecto
El archivo php.ini
se busca en estas ubicaciones (en orden):
Ubicación específica del módulo SAPI (directiva PHPIniDir en Apache 2, opción de línea de comandos -c en CGI y CLI)
La variable de entorno PHPRC.
La ubicación del archivo php.ini se puede establecer para diferentes versiones de PHP. La raíz de las claves de registro depende de 32 o 64 bits del sistema operativo instalado y PHP. Para PHP de 32 bits en un sistema operativo de 32 bits o un PHP de 64 bits en un sistema operativo de 64 bits, use [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] para la versión de 32 bits de PHP en un sistema operativo de 64 bits, use [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]] en su lugar. Para la misma instalación de bitness se examinan las siguientes claves de registro en orden: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] y [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], donde x, y y z significan las versiones principales, secundarias y de lanzamiento de PHP. Para las versiones de 32 bits de PHP en un sistema operativo de 64 bits, las siguientes claves de registro se examinan en orden: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] y [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x], donde x, y y z significan las versiones principales, secundarias y de lanzamiento de PHP. Si hay un valor para IniFilePath en cualquiera de estas claves, el primero encontrado se usará como la ubicación del php.ini (solo Windows).
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP] o [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP], valor de IniFilePath (sólo Windows).
Directorio de trabajo actual (excepto CLI).
El directorio del servidor web (para módulos SAPI), o directorio de PHP (de lo contrario en Windows).
Directorio de Windows (C:\windows o C:\winnt) (para Windows), o –with-config-file-path opción de tiempo de compilación.
Si php-SAPI.ini
existe (donde SAPI es el SAPI en uso, así, por ejemplo, php-cli.ini
o php-apache.ini
),
se usa en lugar de php.ini
. El nombre SAPI se puede determinar con php_sapi_name()
(devuelve el tipo de interfaz entre
el servidor web y PHP).
Nota:
El servidor web Apache cambia el directorio a root al inicio, haciendo que PHP intente leer php.ini desde el sistema de archivos raíz si existe.
¿Cómo puedo encontrar el archivo php.ini desde la línea de comandos?
php ini
Hay una opción simple llamada --ini
que puede usar cuando ejecuta el comando php
:
php --ini
La salida mostrará dónde está el php.ini
utilizado por la línea de comandos, así como archivos de configuración escaneados
adicionales:
Configuration File (php.ini) Path: /etc/php/7.4/cli
Loaded Configuration File: /etc/php/7.4/cli/php.ini
Scan for additional .ini files in: /etc/php/7.4/cli/conf.d
Additional .ini files parsed: /etc/php/7.4/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.4/cli/conf.d/10-pdo.ini,
/etc/php/7.4/cli/conf.d/15-xml.ini,
/etc/php/7.4/cli/conf.d/20-bcmath.ini,
/etc/php/7.4/cli/conf.d/20-exif.ini,
/etc/php/7.4/cli/conf.d/20-gd.ini,
/etc/php/7.4/cli/conf.d/20-gettext.ini,
/etc/php/7.4/cli/conf.d/20-iconv.ini,
/etc/php/7.4/cli/conf.d/20-intl.ini,
/etc/php/7.4/cli/conf.d/20-json.ini,
/etc/php/7.4/cli/conf.d/20-mbstring.ini,
/etc/php/7.4/cli/conf.d/20-mysqli.ini,
/etc/php/7.4/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.4/cli/conf.d/20-pdo_pgsql.ini,
/etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini,
/etc/php/7.4/cli/conf.d/20-pgsql.ini,
/etc/php/7.4/cli/conf.d/20-redis.ini,
/etc/php/7.4/cli/conf.d/20-simplexml.ini,
/etc/php/7.4/cli/conf.d/20-sockets.ini,
/etc/php/7.4/cli/conf.d/20-sqlite3.ini,
/etc/php/7.4/cli/conf.d/20-xmlreader.ini,
/etc/php/7.4/cli/conf.d/20-xmlwriter.ini,
/etc/php/7.4/cli/conf.d/20-xsl.ini,
/etc/php/7.4/cli/conf.d/20-zip.ini,
/etc/php/7.4/cli/conf.d/xdebug.ini
php-config ini-dir
Usando php-config
puede listar solo la ruta donde se encuentra el archivo de configuración principal de PHP:
php-config --ini-dir
El resultado es algo así como:
/etc/php/7.4/cli/conf.d
php -i y grep
El comando php -i
muestra un resultado phpinfo()
completo. Puede encontrar todas las configuraciones y aplicar
el comando grep
para filtrar solo el archivo de configuración .ini
:
php -i | grep 'Configuration File'
O en Windows puede usar find
en su lugar:
php -i | find/i"configuration file"
El resultado de ambos comandos será similar a:
Configuration File (php.ini) Path => /etc/php/7.4/cli
Loaded Configuration File => /etc/php/7.4/cli/php.ini
Finalmente puedes usar grep
para filtrar todas las líneas del phpinfo()
que muestra .ini
:
php -i | grep "\.ini"
La salida será similar al comando php -i
:
Configuration File (php.ini) Path: /etc/php/7.4/cli
Loaded Configuration File: /etc/php/7.4/cli/php.ini
Scan for additional .ini files in: /etc/php/7.4/cli/conf.d
Additional .ini files parsed: /etc/php/7.4/cli/conf.d/10-mysqlnd.ini,
/etc/php/7.4/cli/conf.d/10-pdo.ini,
/etc/php/7.4/cli/conf.d/15-xml.ini,
/etc/php/7.4/cli/conf.d/20-bcmath.ini,
/etc/php/7.4/cli/conf.d/20-exif.ini,
/etc/php/7.4/cli/conf.d/20-gd.ini,
/etc/php/7.4/cli/conf.d/20-gettext.ini,
/etc/php/7.4/cli/conf.d/20-iconv.ini,
/etc/php/7.4/cli/conf.d/20-intl.ini,
/etc/php/7.4/cli/conf.d/20-json.ini,
/etc/php/7.4/cli/conf.d/20-mbstring.ini,
/etc/php/7.4/cli/conf.d/20-mysqli.ini,
/etc/php/7.4/cli/conf.d/20-pdo_mysql.ini,
/etc/php/7.4/cli/conf.d/20-pdo_pgsql.ini,
/etc/php/7.4/cli/conf.d/20-pdo_sqlite.ini,
/etc/php/7.4/cli/conf.d/20-pgsql.ini,
/etc/php/7.4/cli/conf.d/20-redis.ini,
/etc/php/7.4/cli/conf.d/20-simplexml.ini,
/etc/php/7.4/cli/conf.d/20-sockets.ini,
/etc/php/7.4/cli/conf.d/20-sqlite3.ini,
/etc/php/7.4/cli/conf.d/20-xmlreader.ini,
/etc/php/7.4/cli/conf.d/20-xmlwriter.ini,
/etc/php/7.4/cli/conf.d/20-xsl.ini,
/etc/php/7.4/cli/conf.d/20-zip.ini,
/etc/php/7.4/cli/conf.d/xdebug.ini
Conclusiones
Hay varias formas de encontrar archivos php.ini
y otros archivos de configuración de su instalación PHP utilizando
comandos nativos en la terminal.
Comentarios