申し訳ありませんが、このようには機能しません。 ssh2_tunnel
fgets()
などのphp関数で使用されるリモートファイルポインタ(別名リソース)を作成します 、fwrite()
など。sshポートフォワーディングと同じではありません。
シェルからphpサーバーでsshトンネルを開こうと試みることができます:ssh [email protected] -i ./ssh_key -L 5555:localhost:5432
。セッションが生きている間、phpスクリプトからpg_connect("host=127.0.0.1 port=5555 dbname=dbname user=dbuser password=dbpass");
としてデータベースに接続できるはずです。
もちろん本番用ではありません。本番環境に必要なのは、phpアプリケーションサーバーからデータベースへのアクセスを許可することです。 postgresql.conf
の編集が必要になる場合があります サーバーが正しいインターフェイスにバインドされていることを確認し、pg_hba.conf
PHPホストからの接続を許可します。