Existem algumas maneiras de localizar o arquivo php.ini
por linha de comando no Linux Ubuntu, Linux Mint e outras distribuições Linux. Algumas das opções mostradas aqui também são compatíveis com o Windows, especialmente usnado WSL.
O que é php.ini
O php.ini
é o arquivo de configuração que é lido quando o PHP é iniciado. Para as versões do módulo de servidor do PHP, isso acontece apenas uma vez quando o servidor da Web é iniciado. Para as versões CGI e CLI, isso acontece em cada invocação.
É o local principal em que você declara alterações nas configurações do PHP. O servidor já está configurado com configurações padrão para PHP, que seu site ou aplicativo usará por padrão.A menos que você precise alterar uma ou mais configurações, não há necessidade de criar ou modificar um arquivo php.ini.
onde está localizado por padrão o arquivo php.ini
O arquivo php.ini
é pesquisado nesses locais (nesta ordem):
Localização específica do módulo SAPI (Diretiva Phpinidir na opção Apache 2, -C de linha de comando na CGI e CLI)
A variável de ambiente PHPRC.
A localização do arquivo php.ini pode ser definida para diferentes versões do PHP. A raiz das chaves do registro depende do sistema operacional de 32 ou 64 bits e php instalado.
Para PHP de 32 bits em um sistema operacional de 32 bits ou um PHP de 64 bits em um sistema operacional de 64 bits [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] porém para uma versão de 32 bits do PHP em um uso operacional de 64 bits [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP]].
Para a mesma instalação de bits, as seguintes chaves de registro são examinadas nesta ordem: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] e [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x], onde x, y e z significam as versões maiores, menores e de liberação do PHP.
Para versões de 32 bits de PHP em um sistema operacional de 64 bits, as seguintes chaves de registro são examinadas nesta ordem: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z], [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] e [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x], onde x, y e z significam as versões maiores, menores e de liberação do PHP.
Se houver um valor para o IniFilePath em qualquer uma dessas chaves, a primeira encontrada será usada como localização do php.ini (somente Windows).
[HKEY_LOCAL_MACHINE\SOFTWARE\PHP] ou [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP], valor de IniFilePath (somente Windows).
Diretório de trabalho atual (exceto CLI).
O diretório do servidor web (para módulos SAPI), ou diretório do PHP (caso contrário no Windows).
Diretório do Windows (C:\windows ou C:\winnt) (para Windows), ou opção de tempo de compilação –with-config-file-path.
Se php-SAPI.ini
existir (onde SAPI é o SAPI em uso, então, por exemplo, php-cli.ini
ou php-apache.ini
), ele é usado em vez de php.ini
. O nome SAPI pode ser determinado com php_sapi_name()
(retorna o tipo de interface entre servidor web e PHP).
Observação:
O servidor web Apache altera o diretório para root na inicialização, fazendo com que o PHP tente ler php.ini
do sistema de arquivos root, se ele existir.
Como posso encontrar o arquivo php.ini na linha de comando
php ini
Existe uma opção simples chamada --ini
que você pode usar ao executar o comando php
:
php --ini
A saída mostrará onde está o php.ini
usado pela linha de comando, bem como os arquivos de condição adicionais escaneados:
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
você pode listar apenas o caminho onde o arquivo de configuração principal do PHP está localizado:
php-config --ini-dir
A saída é algo como:
/etc/php/7.4/cli/conf.d
php -i and grep
O comando php -i
mostra um resultado phpinfo()
completo. Você pode encontrar todas as configurações e aplicar o comando grep
para filtrar apenas o arquivo de configuração .ini
:
php -i | grep 'Configuration File'
Ou no Windows você pode usar find
:
php -i | find/i"configuration file"
O resultado para ambos os comandos será semelhante a:
Configuration File (php.ini) Path => /etc/php/7.4/cli
Loaded Configuration File => /etc/php/7.4/cli/php.ini
Finalmente você pode usar grep
para filtrar todas as linhas do phpinfo()
que mostra .ini
:
php -i | grep "\.ini"
A saída será semelhante ao 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
Conclusões
Existem várias maneiras de encontrar o arquivo php.ini
e outros arquivos de configuração de sua instalação do PHP usando comandos nativos no terminal.
Comentários