Я хотел бы установить туннель ssh через ssh на мой сервер mysql.Подключение к серверу MySQL через SSH в PHP
В идеале я бы вернул указатель mysqli db так же, как я был напрямую подключен.
Я нахожусь на общем хосте, который не имеет библиотек SSH2, но я мог бы установить их локально, используя PECL.
Если есть способ, который использует собственные команды, это было бы здорово.
Я думал об этом, но без этих библиотек он не будет работать.
$connection = ssh2_connect('SERVER IP', 22);
ssh2_auth_password($connection, 'username', 'password');
$tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307);
$db = new mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD',
'dbname', 3307, $tunnel)
or die ('Fail: ' . mysql_error());
У кого-нибудь есть идеи? Я запускаю общий хост CentOS linux на liquidweb.
Любые мысли о постоянстве туннеля? Можно ли установить его с помощью другого скрипта и просто воспользоваться его в PHP
?
Спасибо.
Вы понимаете, что все остальные на этом общем хосте также смогут напрямую подключаться к вашей базе данных? – Zoredache 2008-11-21 18:01:23
Для подключения все равно потребуется действующее имя пользователя и пароль, но это определенный риск. Будет ли это так, если туннель был создан для выполнения в php? – 2008-11-21 18:09:48
Я удалил свой предыдущий ответ, как я заметил, прочитав документацию, что это намного больше, чем я думал, чтобы заставить mysqli использовать SSL. – Powerlord 2008-11-21 18:20:38