PostgreSQL no cPanel: criar uma base e ligar a partir de PHP

Na hospedagem partilhada o PostgreSQL 13.23 está activo e tem ferramentas no cPanel. Crie a base e o utilizador em PostgreSQL Databases, ligue um ao outro e, para falar com ele em PHP, ligue o módulo pgsql em «Select PHP Version». O módulo existe mas vem desligado por omissão, e é essa a razão de o erro Call to undefined function pg_connect() aparecer.

Passo a passo

1 No cPanel, abra PostgreSQL Databases. Em criar nova base, escreva um nome. O cPanel acrescenta o prefixo da conta, como nas bases MySQL.
2 Na secção de utilizadores, crie um utilizador com palavra-passe forte (o gerador de senhas serve).
3 Na secção de ligar utilizador e base, junte os dois e escolha os privilégios (para uma aplicação, todos, nessa base).
4 Abra Select PHP Version, escolha a versão da pasta do site e marque a extensão pgsql. Se a lista tiver também pdo_pgsql, marque-a para usar o PDO. Veja ligar e desligar extensões.
5 Crie um ficheiro de teste na pasta do site:<?php
$lig = pg_connect('host=localhost port=5432 dbname=conta_base user=conta_utilizador password=a-sua-palavra-passe');
echo $lig ? 'Ligado' : 'Falhou';
6 Abra o ficheiro no navegador, confira o Ligado e apague o ficheiro.
Dado Valor
Servidor (host) localhost
Porta 5432
Nome da base e do utilizador Com o prefixo da conta, escritos por inteiro.
Ligar de fora Não. A porta 5432 não está aberta à internet. Use um túnel SSH.
Se o pg_connect continua a dar «undefined function», a versão de PHP escolhida em «Select PHP Version» não é a da pasta onde está o ficheiro. A versão escolhe-se por pasta. Confira em qual está e se a extensão foi gravada. Veja ver e ajustar a configuração do PHP.

Usar o PostgreSQL com uma aplicação

Muitas aplicações têm um ecrã de instalação que pergunta o tipo de base. Escolha PostgreSQL, com servidor localhost e porta 5432, e use o nome completo da base e do utilizador. Deixe a base vazia: o instalador cria as tabelas. Se for pedido um esquema (schema), o habitual é public. Atenção a um ponto: o módulo pgsql do PHP só conta para aplicações em PHP. Para Node e Python não faz falta, porque usam as suas próprias bibliotecas. Veja ligar a partir de Python e Node.js. Se a instalação falhar a dizer que não encontra a base, a causa mais comum é o nome sem o prefixo da conta.

Para ligar de casa a um cliente como o DBeaver ou o psql, use um túnel SSH. Veja o túnel SSH, passo a passo. E se a sua aplicação aceita MySQL ou PostgreSQL, veja qual escolher.

Criou a base e a aplicação não a encontra? Diga-nos a versão de PHP da pasta e o erro exacto e vemos consigo.

Abrir um pedido de suporte

VEJA TAMBÉM

Ligar e desligar uma extensão do PHP em Select PHP Version

Acesso remoto ao PostgreSQL: o que funciona e o que não

PostgreSQL ou MySQL: qual escolher

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 5.940,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?