Включить поддержку PHP для postgresql на сервере Ubuntu 11.04 - PullRequest
21 голосов
/ 04 октября 2011

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

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

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

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

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

EDIT: проверил phpinfo () и не нашел записей для PostgreSQL. Я не знаю, почему это так, я установил пакет php5-pgsql для Ubuntu 11.04.

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

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

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

Ответы [ 3 ]

49 голосов
/ 30 октября 2012

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

apt-get install php5-pgsql

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

/etc/init.d/apache2 restart

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

4 голосов
/ 16 февраля 2017

В настоящее время я использую 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> 
0 голосов
/ 18 октября 2011

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

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

...