O PostgreSQL corre nos nossos servidores, o cPanel tem as ferramentas dele, e um site em PHP pode falar-lhe. Há duas coisas a saber antes de começar, e nenhuma delas é óbvia: o controlador do PHP vem desligado e liga-se num ecrã do painel, e de fora não se entra directamente, entra-se por um túnel. Este artigo trata das duas.
O que existe, e em que estado
| Peça |
Estado |
| O serviço PostgreSQL |
Existe e está a correr. |
| Criar bases e utilizadores |
No cPanel, no ecrã das bases de dados PostgreSQL. Funciona como o do MySQL: uma base, um utilizador, e a ligação entre os dois. |
| Uma ferramenta pelo navegador |
O phpPgAdmin, também no cPanel. É o equivalente ao phpMyAdmin. |
| O controlador no PHP do site |
Existe, mas vem desligado. Está na lista de extensões do Select PHP Version, e liga-se com uma caixa. Ver a secção seguinte. |
| Ligação directa da internet à porta da base |
Não. O serviço só atende dentro da própria máquina, e a porta não está aberta ao exterior. |
| Uma lista de endereços autorizados, como a do MySQL |
Não existe no ecrã do PostgreSQL. Não está escondida: não há. |
Ligar o controlador, para o seu site em PHP lhe falar
Se o que quer é que uma aplicação em PHP leia e escreva na base, o passo é este, e não demora dois minutos. Não precisa de nos pedir nada.
| 1 |
No cPanel, abra o Select PHP Version, na secção de software.
|
|
| 2 |
Confirme primeiro a versão de PHP que está escolhida. As extensões ligam-se por versão: se mudar de versão depois, a lista volta ao que era e tem de marcar outra vez. É a causa número um de «funcionava e deixou de funcionar».
|
|
| 3 |
Na lista de extensões, marque o controlador do PostgreSQL e grave. Há normalmente dois nomes na lista, um para a ligação directa e outro para a camada genérica de acesso a bases: se a sua aplicação usa a camada genérica, marque os dois.
|
|
|
Se o seu projecto ainda está por decidir, pense duas vezes. Tudo o que está à volta de um site aqui, das cópias às ferramentas, foi desenhado à volta do MySQL, que é o que a esmagadora maioria usa. O PostgreSQL funciona; só tem menos rede de segurança à volta. Se não há uma razão concreta para o escolher, o MySQL dá-lhe menos trabalho.
|
Chegar à base de fora: o túnel SSH
Para o pgAdmin, o DBeaver ou o psql no seu computador, a ligação directa não serve, porque a base só atende dentro da máquina. Um túnel SSH resolve: liga-se à máquina pela porta de SSH, que aqui é a 2299, e faz com que uma porta do seu computador passe a apontar para a base lá dentro.
| 1 |
Confirme que a sua conta tem SSH. No cPanel, procure Terminal ou SSH Access. Se não houver nenhum dos dois, o seu plano não tem shell ligada e tem de nos pedir.
|
|
| 2 |
Crie a base e o utilizador no cPanel, e ligue um ao outro. Sem essa ligação o utilizador entra e não vê nada.
|
|
| 3 |
Abra o túnel a partir do seu computador: ssh -p 2299 -L 5433:localhost:5432 utilizador@servidor . Deixe a janela aberta: enquanto ela viver, o túnel vive.
|
|
| 4 |
Ligue a ferramenta ao seu próprio computador. Servidor 127.0.0.1 e porta 5433. O utilizador e a palavra-passe são os da base, os que criou no cPanel.
|
|
|
O 5433 não tem nada de especial. É só uma porta livre no seu computador, escolhida para não chocar com um PostgreSQL que possa ter instalado localmente. Se não tiver nenhum, use 5432 dos dois lados. O número da esquerda é o seu; o da direita é o do servidor.
|
O pgAdmin também sabe fazer o túnel sozinho, no separador de SSH da ligação. É mais cómodo e poupa-lhe a janela aberta. Os campos são os mesmos: máquina, porta 2299, utilizador do cPanel.
|
Não repita tentativas falhadas de SSH. O firewall conta as falhas e ao fim de algumas tranca o endereço de onde vêm, o que lhe corta também o site e o e-mail. Se errar duas vezes, pare e confirme os dados. Se já ficou trancado: como desbloquear o seu endereço de IP.
|
E se só quero consultar uma coisa?
Então nem precisa de túnel. Entre por SSH e use o psql lá dentro, que está instalado e vê-se da sua conta. Para uma consulta rápida ou para correr um ficheiro de comandos, é o caminho mais curto de todos. E para olhar para as tabelas sem escrever SQL, o phpPgAdmin resolve, sem instalar nada.
Cópias: confirme, não presuma
As cópias de segurança da conta foram pensadas à volta do que a maioria dos sites usa. Se pôs dados a sério numa base PostgreSQL, exporte-a também você, com regularidade, e guarde a exportação fora do servidor. O hábito está em fazer e guardar a sua própria cópia. E confirme connosco o que está mesmo a ser copiado antes de depender disso.