Désolé, cela ne fonctionnera pas de cette façon. ssh2_tunnel
crée un pointeur de fichier distant, alias ressource, à utiliser dans les fonctions php comme fgets()
, fwrite()
etc. Ce n'est pas la même chose avec la redirection de port ssh.
Vous pouvez essayer d'ouvrir un tunnel ssh sur votre serveur php depuis le shell :ssh [email protected] -i ./ssh_key -L 5555:localhost:5432
. Pendant que la session est active, vous devriez pouvoir vous connecter à la base de données à partir de votre script php en tant que pg_connect("host=127.0.0.1 port=5555 dbname=dbname user=dbuser password=dbpass");
Ce n'est pas pour une utilisation en production bien sûr. Ce dont vous avez besoin pour la production, c'est d'autoriser l'accès à la base de données à partir de votre serveur d'application php. Vous devrez peut-être modifier postgresql.conf
pour s'assurer que le serveur est lié à la bonne interface, et pg_hba.conf
pour autoriser les connexions depuis votre hébergeur php.