Desculpe, não vai funcionar desta forma.
ssh2_tunnel
cria um ponteiro de arquivo remoto, também conhecido como recurso, para ser usado em funções php como fgets()
, fwrite()
etc. Não é o mesmo com o encaminhamento de porta ssh. Você pode tentar abrir o túnel ssh em seu servidor php a partir do shell:
ssh [email protected] -i ./ssh_key -L 5555:localhost:5432
. Enquanto a sessão estiver ativa, você poderá se conectar ao banco de dados a partir de seu script php como pg_connect("host=127.0.0.1 port=5555 dbname=dbname user=dbuser password=dbpass");
Não é para uso em produção, é claro. O que você precisa para produção é permitir o acesso ao banco de dados do seu servidor de aplicativos php. Você pode precisar editar
postgresql.conf
para garantir que o servidor esteja vinculado à interface correta e pg_hba.conf
para permitir conexões do seu host php.