Я пытаюсь использовать расширение pgsql в Windows 10 64-bit (WAPP).
Я имею:
php.ini
LoadFile
загрузить pgsql.dll
pgsql.dll
в Apache bin (я пробовал и DLL из папки php и из postgresql)Но до сих пор нет результата.
pgsql
виден только в php.exe -m
но не в phpinfo()
, extension_loaded()
, get_loaded_extensions()
,
Моя версия PHP 7.1.8
и PostgreSQL это 9.6
а апач это 2.4.27
,
мой php.exe -m
выход:
В чем может быть проблема?
Хорошо, после нескольких часов поиска я нашел проблему и смог решить проблему с модулями pdo_pgsql и pgsql, которые не отображаются в phpinfo ().
[РЕШЕНИЕ]Раскомментировав расширения в php.ini, перейдите в httpd.conf и добавьте вверху всех строк LoadModule следующее:
Загрузить файл «C: / Program Files / PostgreSQL / 9.6 / bin / libpq.dll»
(при условии, что вы используете последнюю версию PostgreSQL, в противном случае измените номер на версию, которую вы используете).
Сохраните и перезапустите Apache. Перейдите к phpinfo (), и вы увидите, что он загружен.
[Причина]Apache не может увидеть libpg.dll, даже если вы скопируете его в папку Apache / bin.
[СРЕДА]Обычно командная строка PHP не разделяет файл конфигурации с Apache или, другими словами, Apache php.ini
это другой, чем тот, который вы редактировали.
использование phpinfo()
работает через apache и искать php.ini
найти файл конфигурации, который был загружен.