Tyvärr, det kommer inte att fungera på det här sättet. ssh2_tunnel
skapar en fjärrfilpekare, aka resurs, som ska användas i php-funktioner som fgets()
, fwrite()
etc. Det är inte samma sak med ssh port forwarding.
Du kan försöka öppna ssh-tunneln på din php-server från skalet:ssh [email protected] -i ./ssh_key -L 5555:localhost:5432
. Medan sessionen är vid liv bör du kunna ansluta till databasen från ditt php-skript som pg_connect("host=127.0.0.1 port=5555 dbname=dbname user=dbuser password=dbpass");
Det är naturligtvis inte för produktionsbruk. Vad du behöver för produktion är att tillåta åtkomst till databasen från din php-applikationsserver. Du kan behöva redigera postgresql.conf
för att säkerställa att servern är bunden till korrekt gränssnitt och pg_hba.conf
för att tillåta anslutningar från din php-värd.