Tut mir leid, so wird es nicht funktionieren. ssh2_tunnel
erstellt einen entfernten Dateizeiger, auch bekannt als Ressource, der in PHP-Funktionen wie fgets()
verwendet wird , fwrite()
usw. Es ist nicht dasselbe mit der ssh-Portweiterleitung.
Sie können versuchen, den SSH-Tunnel auf Ihrem PHP-Server über die Shell zu öffnen:ssh [email protected] -i ./ssh_key -L 5555:localhost:5432
. Während die Sitzung aktiv ist, sollten Sie in der Lage sein, sich von Ihrem PHP-Skript als pg_connect("host=127.0.0.1 port=5555 dbname=dbname user=dbuser password=dbpass");
mit der Datenbank zu verbinden
Es ist natürlich nicht für den produktiven Einsatz. Für die Produktion müssen Sie den Zugriff auf die Datenbank von Ihrem PHP-Anwendungsserver aus zulassen. Möglicherweise müssen Sie postgresql.conf
bearbeiten um sicherzustellen, dass der Server an die richtige Schnittstelle gebunden ist, und pg_hba.conf
um Verbindungen von Ihrem PHP-Host zuzulassen.