PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

PHP Verbinden Sie sich mit PostgreSQL über ssh2_tunnel

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.