Eu preciso habilitar o pdo_mysql no meu ambiente EasyPhp, então fui para o arquivo php.ini e descomentei a seguinte linha:
extension=php_pdo_mysql.dll
Infelizmente ainda tenho o mesmo problema. Estou usando a CLI, então suponho que preciso localizar o arquivo php.ini usado pela CLI. Como posso encontrá-lo?
Respostas:
Basta executar
php --ini
e procurarLoaded Configuration File
na saída o localphp.ini
usado pela sua CLIfonte
sudo find / -iname php.ini
e funda/etc/php/7.0/apache2/php.ini
o lugar certo do arquivo de configuração php.ini direito de minha máquina que não foi encontrado porphp --ini
ouphp -i | grep php.ini
(ambos encontrados/etc/php/7.0/cli/php.ini
)Você pode obter um total
phpinfo()
usando:E, lá, existe o
php.ini
arquivo usado:No Windows, use
find
:fonte
Configuration File
linha de phpinfo () mostra o último local em que o php procurou um arquivo ini. Esse pode ser o local em que ele encontrou esse arquivo ou a última opção, que é% SYSTEMROOT% no Windows.php -i | find "Configuration file"
deve funcionar no Windows. Definitivamente não é tão poderoso quanto o grep, masfind
fará uma pesquisa básica de strings por você. Obviamente, se o php -i despeja sua saída no stderr, você provavelmente é o SOL.find
faz distinção entre maiúsculas e minúsculas por padrão, portanto deve ser perfeito (php -i | find "Configuration File"
) ou diferenciar maiúsculas de minúsculas (php -i | find /i "Configuration file"
- observe a/i
sinalização).php --ini
como alternativa; disponível desde o PHP 5.2.3 :)Você pode usar get_cfg_var ('cfg_file_path') para isso:
Ao contrário do phpinfo (), ele dirá se não encontrou / usou o php.ini.E você pode simplesmente definir a localização do php.ini . Você está usando a versão da linha de comando; portanto, usando o
-c
parâmetro, você pode especificar o local, por exemplofonte
Execute
php --ini
no seu terminal, você obterá todos os detalhes sobre os arquivos iniPara mais, use o comando de ajuda.
php --help
Ele exibirá todas as opções possíveis.fonte
Às vezes, as coisas nem sempre são como parecem quando se trata de arquivos de configuração em geral. Então, aqui estou aplicando meus métodos usuais para explorar quais arquivos são abertos por um processo.
Eu uso um programa de linha de comando muito poderoso e útil chamado strace para me mostrar o que realmente está acontecendo nas minhas costas!
O Strace extrai as chamadas do kernel (sistema) que seu programa faz e despeja a saída no arquivo especificado por -o
É fácil usar o grep para procurar ocorrências do php.ini neste log. É bastante óbvio olhar para a seguinte resposta típica para ver o que está acontecendo.
fonte
php -i
me deu resultados incorretos, mas este está perfeitamente bem. Obrigado!Se você deseja que todos os arquivos de configuração sejam carregados, isso indica:
Alguns sistemas carregam coisas de mais de um arquivo ini. No meu sistema ubuntu, fica assim:
fonte
No OSX Mavericks, executando:
Devolvida:
No
/etc/
diretório estava:(bem como
php-fpm.conf.default
)Eu era capaz de copiar
php.ini.default
paraphp.ini
, adicionedate.timezone = "US/Central"
ao topo (logo abaixo[php]
), eo problema está resolvido.(Pelo menos a mensagem de erro se foi.)
fonte
Se você precisar passá-lo para outro aplicativo, poderá fazer algo como:
retorna apenas o caminho.
php -c $(php --ini | grep Loaded | cut -d" " -f12)
passará no arquivo de configuração (útil parafpm
)fonte
Pelo que me lembro quando costumava usar o EasyPHP, o arquivo php.ini está dentro
C:\Windows\
ouC:\Windows\System32
fonte
Faz
Isso produzirá todos os arquivos nomeados
php.ini
.Descubra qual você está usando, geralmente
apache2/php.ini
fonte
No seu arquivo php.ini, defina o diretório de extensão, por exemplo:
Você verá na sua pasta PHP uma pasta ext com todas as DLLs e extensões.
fonte
Salve a saída do phpinfo da CLI no arquivo local:
fonte
No contêiner do docker phpmyadmin / phpmyadmin, nenhum arquivo php.ini. Mas existem dois arquivos: php.ini-debug e php.ini-production
Para resolver o problema, simplesmente renomeie um dos arquivos para php.ini e reinicie o contêiner do docker.
fonte
Não há php.ini usado pela linha de comando. Você tem que copiar o arquivo de
...EasyPHP-<<version>>\apache\php.ini
para depois...EasyPHP-<<version>>\php\php.ini
editar o arquivo em php diretórioReferência:
fonte