como alterar o caminho do php ini windows

12

Eu baixei o php, adicionei no meu caminho e estou tentando ativar o openssl

php --ini me diz que o arquivo de configuração é c: \ windows que não havia nada lá, eu não quero copiar o php no c / windows.

Como faço para mudar isso para apontar para a minha pasta php?

Hóspede
fonte

Respostas:

10

Você não precisa colocar nada a ver com o PHP em qualquer lugar perto da c:\windowspasta.

Se você fizer isso, isso servirá apenas para atrapalhar você quando você atualizar o PHP para uma nova versão.

Se você colocar o CD na pasta em que o PHP está instalado e fizer php --iniisso, ele lerá o arquivo php.ini na pasta em que você está.

D:\wamp\bin\php\php5.5.12>php --ini
Configuration File (php.ini) Path: C:\Windows
Loaded Configuration File:         D:\wamp\bin\php\php5.5.12\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)

Eu acho que também é uma má idéia colocar a pasta de instalação do PHP no PATH do Windows também.

Tudo o que você precisa é de um pequeno arquivo em lotes que configurará seu PATH durante a janela de comando que você está usando e coloque-o em uma das pastas que já estão no Windows PATH.

Então, assumindo que você instalou o PHP C:\phpnesse é o arquivo em lotes

phppath.cmd

PATH=%PATH%;C:\php
php --ini
php -v

E você simplesmente executa esse arquivo em lote sempre que abrir uma janela de comando e desejar executar algum código PHP e seu ambiente for configurado. Você também pode adicionar outras coisas a esse arquivo em lotes quando precisar adicionar outras coisas ao seu ambiente, como o Composer etc.

RiggsFolly
fonte
Sim! Isso funciona para mim. O PHP.ini é melhor com o PHP.exe na mesma pasta, para que o PHP da Web e da CLI possa se referir ao mesmo PHP.ini.
Scott Chu
@ScottChu Na verdade, eles são dois ambientes diferentes e, na vida real, você muitas vezes deseja configurações diferentes para os dois.
RiggsFolly
4

De acordo com a documentação:

O arquivo de configuração (php.ini) é lido quando o PHP é iniciado. Para as versões do módulo do servidor do PHP, isso acontece apenas uma vez quando o servidor da web é iniciado. Para as versões CGI e CLI, isso acontece em todas as chamadas.

O php.ini é pesquisado nesses locais (em ordem):

  • Local específico do módulo SAPI (diretiva PHPIniDir no Apache 2, opção de linha de comando -c em CGI e CLI, parâmetro php_ini na variável de ambiente NSAPI, PHP_INI_PATH em THTTPD)
  • A variável de ambiente PHPRC. Antes do PHP 5.2.0, isso era verificado após a chave do registro mencionada abaixo.
  • A partir do PHP 5.2.0, a localização do arquivo php.ini pode ser definida para diferentes versões do PHP. As seguintes chaves do Registro são examinadas em ordem: [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xyz], [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ xy] e [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP \ x]], em que x, ye z significam o PHP maior, versões secundárias e de lançamento. Se houver um valor para o IniFilePath em qualquer uma dessas chaves, a primeira encontrada será usada como o local do php.ini (somente Windows).
  • [HKEY_LOCAL_MACHINE \ SOFTWARE \ PHP], valor do IniFilePath (somente Windows).
  • Diretório de trabalho atual (exceto CLI).
  • O diretório do servidor da web (para módulos SAPI) ou o diretório do PHP (caso contrário, no Windows).
  • Diretório do Windows (C: \ windows ou C: \ winnt) (para Windows) ou a opção de tempo de compilação --with-config-file-path.

Você deve tentar a PHPRCvariável de ambiente ou a chave do registro [HKEY_LOCAL_MACHINE\SOFTWARE\PHP].

Cornelius
fonte
0

Eu tentei de tudo sem sucesso. alterou o apache httpd.conf, php.ini e várias outras tentativas, sempre resultou em Loaded Configuration File - (nenhum). Por fim, copiei todos os arquivos do diretório php para o diretório C: \ Arquivos de Programas (x86) \ Apache Software Foundation \ Apache2.2 \ bin e tudo começou a funcionar. Perfeitamente. Infelizmente, não é a solução perfeita, mas funcionou.

Gunther
fonte