За последние 24 часа нас посетили 17800 программистов и 1625 роботов. Сейчас ищут 1866 программистов ...

PHP + postgresql

Тема в разделе "PHP и базы данных", создана пользователем Dekabrio, 11 янв 2018.

  1. Dekabrio

    Dekabrio Активный пользователь

    С нами с:
    14 янв 2012
    Сообщения:
    26
    Симпатии:
    0
    База данных postgresql установлена на одном сервере.
    PHP установлена на другом сервере.

    Через Navicat подключаюсь к БД без проблем, даже из дома.

    Но вот PHP говорит "Fatal error: Call to undefined function pg_connect()"
    Вырезка из php.ini:
    Код (Text):
    1. ;extension=php_pdo_oci.dll
    2. ;extension=php_pdo_odbc.dll
    3. extension=php_pdo_pgsql.dll
    4. ;extension=php_pdo_sqlite.dll
    5. extension=php_pgsql.dll
    6. ;extension=php_shmop.dll
    На запрос:
    Код (Text):
    1. echo extension_loaded('pgsql') ? 'yes':'no';
    Отвечает no

    Папка расширений указана верно, так как mysql работает.

    Думаю это связано с тем что postgresql установлена совсем на другом сервере. Может я ошибаюсь

    из phpinfo()
    Код (Text):
    1. Server API - Apache 2.0 Handler
    2. Virtual Directory Support - enabled
    3. Configuration File (php.ini) Path - C:\Windows
    4. Loaded Configuration File - D:\web\php\php.ini
    Про postgresql там ничего нет. В папку C:\Windows пробовал класть php.ini
     
  2. Dekabrio

    Dekabrio Активный пользователь

    С нами с:
    14 янв 2012
    Сообщения:
    26
    Симпатии:
    0
  3. voral

    voral Активный пользователь

    С нами с:
    30 ноя 2017
    Сообщения:
    646
    Симпатии:
    104
    Расширение ни как не проверяет наличие/отсутствие БД. Так что дело не в этом однозначно.
    Проверьте dll точно ли есть в каталоге с раширениями
     
  4. Dekabrio

    Dekabrio Активный пользователь

    С нами с:
    14 янв 2012
    Сообщения:
    26
    Симпатии:
    0
    Конечно есть. я качал разные версии, пробовал все.
     

    Вложения:

  5. voral

    voral Активный пользователь

    С нами с:
    30 ноя 2017
    Сообщения:
    646
    Симпатии:
    104
    Еще вариант. В php есть два варианта php.ini. Один для работы в командной строки, другой для веб сервера. Точных путей не скажу (у меня нет windows). Может вы не там раскоментировали.
    В любом случае проблема однозначно в том, что при запуске php вебсревером это расширение не подключается. Либо конфиг не тот, либо нет доступа к dll.
     
  6. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Dekabrio, есть рецептик.
    On a Windows server, configured with Apache, adding the following line to httpd.conf to load libpq.dll can save you a lot of time :

    LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"

    Note that you will have to change your folder accordingly to the installation path and version of PostgreSQL you have installed. Also note that having Apache and PostgreSQL on the same server for production environments is not recommended.
    --- Добавлено ---
    Или файлик заменить файлик php_pgsql.dll: http://www.dlldll.com/php_pgsql.dll_download.html
     
    Dekabrio нравится это.
  7. Dekabrio

    Dekabrio Активный пользователь

    С нами с:
    14 янв 2012
    Сообщения:
    26
    Симпатии:
    0
    Помогло, но не так, я скачал дистрибутив php следующей версии, вставил, и волшебным образом все заработало =) месяц мучался.
     
  8. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    Обновления - "наше Всё"!
    А так: на скриншоте первое, что бросается в глаза - дата файла требуемой библиотечки...