Включить поддержку PHP для postgresql на сервере Ubuntu 11.04

Я установил Apache2 с поддержкой php5, и там все работает. Я установил PostgreSQL и могу подключиться к нему с помощью терминала и выполнить операторы SQL.

ПРОБЛЕМА: я не могу установить рабочее соединение между моими php-скриптами и базой данных PostgreSQL. Я установил пакет php5-pgsql из репозиториев, но соединение просто не работает.

Я получаю следующее сообщение об ошибке:

Неустранимая ошибка PHP: вызов неопределенной функции pg_connect() в /var/www/[myfile].php в строке [X]

Как включить поддержку соединений PostgreSQL в PHP5 в Ubuntu 11.04?

РЕДАКТИРОВАТЬ: проверил phpinfo() и не нашел записей для PostgreSQL. Я не знаю, почему это так, я установил пакет php5-pgsql для Ubuntu 11.04.

Вот что сработало: я установил phppgadmin из репозиториев Ubuntu. Теперь это не только делает доступным мне хороший инструмент, но и устанавливает необходимые пакеты для php для подключения к postgresql.

После этого все было в параметрах подключения. Он не будет подключаться к базе данных на локальном сервере, пока я не укажу узел подключения, порт, базу данных, пользователя и пароль в указанном порядке в pg_connect().

Я до сих пор не знаю, почему установка php5-pgsql самостоятельно не активировала подключения PostgreSQL из php. Любой вклад в это будет полезен.


person Adam    schedule 03.10.2011    source источник
comment
эхо phpinfo(); и посмотрите, включена ли база данных PostgreSQL   -  person salahy    schedule 04.10.2011


Ответы (3)


Установите пакет php5-pgsql, чтобы решить проблему. (в зависимости от версии... php4-pgsql для php4)

apt-get install php5-pgsql

Не забудьте перезапустить Apache.

/etc/init.d/apache2 restart

--Обратите внимание, что это может быть сложно, если вы не управляете своим сервером.

person Nicolaj Schweitz    schedule 30.10.2012
comment
в Fedora вы можете ввести dnf install php-pgsql - person Junior Mayhé; 27.08.2015
comment
Работал для Ubuntu 14.04, apache2, php5, postgres 9.11.3. Кажется странным, но я сделал: перезапуск службы apache2 раньше и пропустил метод перезапуска sudo /etc/init.d/apache2. Только что я использовал метод перезапуска sudo /etc/init.d/apache2 вместо использования службы, и внезапно я больше не получаю ошибки подключения к базе данных конфигурации PHP/postgress. Спасибо! - person TheHairyOne; 23.01.2016

В настоящее время я использую Ubuntu 16.04 LTS. Я тоже столкнулся с той же проблемой при извлечении значений базы данных Postgress с использованием Php, поэтому я решил ее с помощью приведенных ниже команд.

Моя версия PHP 7.0, поэтому я попробовал следующую команду.

apt-get install php-pgsql

Не забудьте перезапустить Apache.

/etc/init.d/apache2 restart

Ниже приведен мой код, может кому пригодится:

- testdb.php

<html> 
    <body> 
        <table border="0" cellspacing="0" cellpadding="0"> 
            <tr> 
                <td> 
                    Friend ID 
                </td> 
                <td> 
                     Name 
                </td> 

            </tr> 
        <?php 
        $db = pg_connect('host=localhost dbname=postgres user=postgres password=root port=5432'); 

        $query = "SELECT * FROM account"; //account is name of table 

        $result = pg_query($query); 
        if (!$result) { 
            echo "Problem with query " . $query . "<br/>"; 
            echo pg_last_error(); 
            exit(); 
        } 

        while($myrow = pg_fetch_assoc($result)) { 
            printf ("<tr><td>%s</td><td>%s</td></tr>", $myrow['id'], htmlspecialchars($myrow['name']));
        } 
        ?> 
        </table> 
    </body> 
</html> 
person MD Shahrouq    schedule 16.02.2017

Единственный вывод, который я могу сделать, это то, что phppgadmin установил все необходимые пакеты для подключения PHP5 к PostgreSQL. Я просмотрел зависимости и считаю, что либо вообще их не устанавливал, либо устанавливал неправильно.

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

person Adam    schedule 17.10.2011