Estou usando o Windows 10 e instalei o Apache2.4, PHP7.2 e MySQL. Estou tendo problemas para instalar o driver para pdo_mysql
Editei meu arquivo php.ini e na seção de extensões tenho:
extension=pdo_mysql
Também configurei a diretiva extension_dir para:
"C:\php72\ext"
No console de comando eu digito "php -m" e posso ver PDO e pdo_mysql listados.
Reiniciei o Apache, mas quando executo um arquivo .php incluindo print_r(PDO::getAvailableDrivers());
ou phpinfo();
vejo que não tenho nenhum driver instalado para o PDO.
No meu arquivo httpd.conf eu tenho
PHPIniDir “C:\php72\”
Eu tentei mudar isso para usar barras invertidas e incluir e remover a barra final, reiniciando o Apache após cada alteração. Ainda não consigo carregar o driver pdo_mysql.
Parece-me que o problema é do Apache e não do PHP (como o módulo pdo_mysql aparece quando executo php -m no console de comando), mas não entendo o que fiz de errado. Procurei outras pessoas com o mesmo problema mas a solução sempre pareceu ser o PHPIniDir, que acho que configurei corretamente.
A máquina que estou usando já estava executando o IIS, então tenho o Apache ouvindo a porta 8090, em vez do padrão. Não tenho certeza se isso é relevante ou não.
Qualquer ajuda seria apreciada!
Responder1
Desinstalei o serviço Apache, apaguei C:\Apache24 e instalei do zero, segui os passos para instalar o pdo_mysql como antes que funcionou.
Responder2
Eu tive esse mesmo problema, onde os módulos eram carregados ao executar via cli, mas não ao executar a mesma configuração do php via Apache.
No meu caso a solução foi definir o extension_dir
arquivo php.ini para o caminho absoluto da pasta de módulos (C:\php80\ext no meu caso).
Agora tanto o cli quanto o Apache estão carregando os módulos corretamente.
Responder3
Para mim, as instruções estúpidas que eu estava seguindo para configurar o Fast CGI com Apache me fizeram colocar o arquivo exe onde o arquivo ini deveria ir.
# Where is your php.ini file?
FcgidInitialEnv PHPRC "c:/Program Files/php/php.exe" // should be ini
Eu mudei para o ini e funcionou. Estou surpreso que o php me deixe definir o php.exe como o arquivo ini ...