Рейтинг:0

Неперехваченная ошибка: вызов неопределенной функции pg_connect()

флаг us

У меня следующая конфигурация сервера:

  • Убунту 20.04.3 ЛТС
  • PHP 7.4.13 (кли)
  • psql (PostgreSQL) 12.9 (Ubuntu 12.9-0ubuntu0.20.04.1)

Я перенес свой веб-сервис на основе WordPress с сервера Windows на сервер Linux. В настоящее время, когда я пытаюсь загрузить одну из веб-страниц, мой сервер nginx сообщает

24 FastCGI отправлено в stderr: «Сообщение PHP: Неустранимая ошибка PHP: не поймано Ошибка: вызов неопределенной функции pg_connect()

Одна из рекомендаций, которые я нашел, заключалась в том, чтобы удалить точки с запятой (;) из php.ini и включить два расширения:

расширение = pdo_pgsql
расширение = pgsql

К сожалению, это вызвало дополнительное предупреждение при инициализации php о том, что эти библиотеки не могут быть загружены, поскольку запрошенные файлы (pdo_pgsql, pdo_pgsql.so, pgsql и pgsql.so) не существуют.

Вы не знаете, что сделать, чтобы мои веб-страницы снова стали видны?

raj avatar
флаг cn
raj
Расширения PHP обычно поставляются в отдельных пакетах от основного пакета PHP; вам, вероятно, придется установить пакет `php-pgsql`, который предоставит эти файлы.
Darek avatar
флаг us
Спасибо @raj за ваш ответ. Я попытался установить php7.4-pgsql, но получил комментарий с неудовлетворенными зависимостями: php7.4-pgsql : зависит: php7.4-common (= 7.4.3-4ubuntu2.8), но необходимо установить 7.4.13-1+ubuntu18.04.1+deb.sury.org+1 E: Невозможно исправить проблемы, у вас есть сломанные пакеты.
raj avatar
флаг cn
raj
Похоже, вы перепутали репозитории. `php7.4-pgsql`, вероятно, будет установлен из стандартного репозитория Ubuntu, а ваши базовые пакеты PHP, вероятно, были установлены из репозитория Ondrej Sury, который содержит неофициальные порты PHP. Похоже, что этот репозиторий не содержит `php-pgsql`, поэтому вам следует удалить установленные вами пакеты PHP, отключить этот сторонний репозиторий и переустановить PHP из стандартных репозиториев Ubuntu. Лучше избегать использования сторонних репозиториев без крайней необходимости, так как это может привести к конфликтам с системными пакетами (с которыми вы столкнулись).

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.