Невозможно заставить Apache найти драйвер PDO

Невозможно заставить Apache найти драйвер PDO

Я использую Windows 10 и установил Apache2.4, PHP7.2 и MySQL. У меня возникли проблемы с установкой драйвера для pdo_mysql

Я отредактировал файл php.ini, и в разделе расширений у меня есть:

extension=pdo_mysql

Я также установил директиву extension_dir следующим образом:

"C:\php72\ext"

В командной консоли я ввожу «php -m» и вижу в списке PDO и pdo_mysql.

Скриншот командной консоли, показывающий php -m

Я перезапустил Apache, но когда я запускаю файл .php, включающий или print_r(PDO::getAvailableDrivers());, phpinfo(); я вижу, что у меня не установлены драйверы для PDO.

В моем файле httpd.conf есть

PHPIniDir “C:\php72\”

Я пробовал изменить это, чтобы использовать прямые и обратные слеши, а также включать и удалять конечный слеш, перезапуская Apache после каждого изменения. Я все еще не могу загрузить драйвер pdo_mysql.

Мне кажется, что проблема в Apache, а не в PHP (поскольку модуль pdo_mysql появляется, когда я запускаю php -m в командной консоли), но я не понимаю, что я сделал не так. Я искал других людей, у которых была такая же проблема, но решение всегда было в PHPIniDir, который, как я думаю, я установил правильно.

На машине, которую я использую, уже запущен IIS, поэтому Apache прослушивает порт 8090, а не порт по умолчанию. Я не уверен, относится ли это к делу или нет.

Любая помощь будет оценена по достоинству!

решение1

Я удалил службу Apache, удалил C:\Apache24 и установил с нуля, затем выполнил шаги по установке pdo_mysql, как и раньше, и это сработало.

решение2

У меня была такая же проблема: модули загружались при запуске через cli, но не загружались при запуске той же конфигурации PHP через Apache.

В моем случае решением было указать extension_dirв файле php.ini абсолютный путь к папке модулей (в моем случае C:\php80\ext).

Теперь и cli, и Apache загружают модули правильно.

решение3

Для меня глупые инструкции, которым я следовал при настройке Fast CGI с Apache, заставляли меня поместить exe-файл туда, где должен был находиться ini-файл.

# Where is your php.ini file?
FcgidInitialEnv PHPRC "c:/Program Files/php/php.exe" // should be ini

Я изменил его на ini и это сработало. Я удивлен, что php позволил мне установить php.exe как ini-файл...

Связанный контент