Включить поддержку PHP для postgresql в сервере Ubuntu 11.04
Я установил Apache2 с поддержкой php5, и все работает там. Я установил PostgreSQL и могу подключиться к нему с помощью терминала и выполнять инструкции SQL.
ПРОБЛЕМА: я не могу получить рабочее соединение между моими php-скриптами и базой данных PostgreSQL. Я установил php5-pgsql, упакованный из репозиториев, но соединение просто не будет работать.
Появляется следующее сообщение об ошибке:
PHP Fatal Error: вызов функции undefined 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. Любой вход на этом будет полезен.
Ответы
Ответ 1
Установить пакет php5-pgsql решает проблему. (в зависимости от версии... php4-pgsql для php4)
apt-get install php5-pgsql
Не забудьте перезапустить Apache.
/etc/init.d/apache2 restart
- Обратите внимание, что это может быть сложно, если вы не администрируете сервер.
Ответ 2
В настоящее время я использую Ubuntu 16.04 LTS.
Мне тоже приходилось сталкиваться с такой же проблемой, в то время как выборка значений Postgress Database с использованием 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>
Ответ 3
Единственный вывод, который я могу придумать, заключается в том, что phppgadmin установил все необходимые пакеты, чтобы PHP5 подключился к PostgreSQL. Я посмотрел на зависимости, и я считаю, что я либо не устанавливал их вообще, либо не устанавливал их правильно.
Я не нуждаюсь в дополнительной помощи на этой арене, так как у меня есть рабочая настройка и знаю хотя бы один способ добраться до этой точки.