Неустранимая ошибка: вызов неопределенной функции pg_connect

Я использую Windows 7, php 5.3.5 и WAMP-сервер. У меня есть два php-файла: trigger.php и background.php.
Я хочу запустить background.php как фоновый процесс. Мне нужно вызвать этот файл из trigger.php. Для этого я использовал ниже метод. Я включил следующий код в trigger.php, чтобы сделать background.php для обработки в фоновом режиме.

$handle = popen('start /b C:\wamp\bin\php\php5.3.5\php.exe C:\wamp\www\email3.php','r'); 

in background.php У меня есть код для подключения к базе данных.

 $conn_string = "host=localhost port=5432 dbname=tagbase user=postgres password=postgres"; 

теперь, при разборе этой строки, я получаю следующую ошибку:

Неустранимая ошибка: вызов неопределенной функции pg_connect () в C: \ wamp \ www \ background.php в строке 3 Стек вызовов: 0,0002 322792 1. {main} () C: \ wamp \ www \ background.php: 0

При поиске в Интернете я нашел некоторые решения и внес изменения, как рекомендовано ниже в php.ini,

 uncommented, extension=php_pdo_pgsql.dll, uncommented, extension=php_pgsql.dll, uncommented, extension_dir = "c:/wamp/bin/php/php5.3.5/ext/", 

также у меня есть файлы php_pdo_pgsql.dll и php_pgsql.dll в папке c:/wamp/bin/php/php5.3.5/ext/ .

Любые предложения приветствуются.

Конфигурация Apache 2.2.X

Добавьте следующую строку в конфигурацию Apache 2.2.x httpd.conf:

 LoadFile "C:/Program Files/PostgreSQL/{version}/bin/libpq.dll" 

Над строкой должна быть введена перед следующей строкой.

LoadModule php5_module "c:/wamp/bin/php/php5.2.11/php5apache2_2.dll"

Конфигурация PHP 5.2.X

Включите следующие две строки в файле конфигурации php.ini. Под «Enable» я имею в виду, удалите трейлинг; (точка с запятой). Этим вы не комментируете строку.

 extension=php_pdo_pgsql.dll extension=php_pgsql.dll 

Перезапустить WAMP

Протестируйте, добавив это в свой index.php

 echo extension_loaded('pgsql') ? 'yes':'no'; 

(источник: http://www.plaatsoft.nl/wamp-postgresql-integration/ )

если мы установим WAMP-сервер, мы получим два файла php.ini. один в C: \ wamp \ bin \ php \ php5.3.5 и другой в C: \ wamp \ bin \ apache \ Apache2.2.17 \ bin.

если мы выполним php-файл из браузера, тогда будет передан файл php.ini в C: \ wamp \ bin \ apache \ Apache2.2.17 \ bin. если мы выполним файл php из командной строки, то будет передан файл php.ini в C: \ wamp \ bin \ php \ php5.3.5.

что когда-либо изменения, которые я включил / отключил dll в PHP-> PHP-расширениях, все изменения будут сохранены в файле C: \ wamp \ bin \ apache \ Apache2.2.17 \ bin \ php.ini. но файл C: \ wamp \ bin \ php \ php5.3.5 \ php.ini остается без изменений.

для моей проблемы я внес следующие изменения

 uncommented, extension=php_pdo_pgsql.dll, uncommented, extension=php_pgsql.dll, uncommented, extension_dir = "c:/wamp/bin/php/php5.3.5/ext/", 

в файле C: \ wamp \ bin \ php \ php5.3.5 \ php.ini. Теперь он работает хорошо. 🙂

В моем случае с Apache / 2.4.10 PHP версии 5.4.32 PostgeSQL 9.3 я добавил libpq.dll в Apache httpd.conf из каталога PHP, потому что Apache отказался начать с libpq.dll из PostgreSQL 9.3