Lo sentimos, no va a funcionar de esta manera. ssh2_tunnel
crea un puntero de archivo remoto, también conocido como recurso, para ser utilizado en funciones php como fgets()
, fwrite()
etc. No es lo mismo con el reenvío de puertos ssh.
Puede intentar abrir el túnel ssh en su servidor php desde el shell:ssh [email protected] -i ./ssh_key -L 5555:localhost:5432
. Mientras la sesión está activa, debería poder conectarse a la base de datos desde su script php como pg_connect("host=127.0.0.1 port=5555 dbname=dbname user=dbuser password=dbpass");
Por supuesto, no es para uso en producción. Lo que necesita para la producción es permitir el acceso a la base de datos desde su servidor de aplicaciones php. Es posible que deba editar postgresql.conf
para asegurarse de que el servidor esté vinculado a la interfaz correcta y pg_hba.conf
para permitir conexiones desde su host php.