ssh2_connect не определен в Debian

У меня есть несколько серверов в Debian 6.0.8 с версией php в 5.3.28-1~dotdeb.0.

Я сделал apt-get install libssh2-php для каждого. Когда вы сделали php -v, у меня есть openssl и ssh2 в списке на каждом. Я уже перезапустил Apache после этого.

Но когда я запускаю php-скрипт с вызовом ssh2_connect(), он не работает на 2 серверах, но работает на другом сервере.

У меня ошибка: "вызов неопределенной функции ssh2_connect()."

Я не понимаю, версия Debian и версия PHP одинаковы. Вы можете мне помочь? Благодарю.

2 ответа

Решение

В упакованных дистрибутивах, таких как Debian и EL, "неосновные" части PHP упакованы отдельно. В версиях Debian у вас должен быть установлен пакет php5-ssh2.

sudo apt-get установить php5-ssh2

Я бы просто использовал phpseclib, чистую реализацию PHP SSH. например.

<?php
include('Net/SSH2.php');

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('Login Failed');
}

echo $ssh->exec('pwd');
echo $ssh->exec('ls -la');
?>

У phpseclib есть ряд преимуществ перед libssh2. Вы также можете использовать phpseclib для эмуляции функций libssh2, если вы так склонны. например.

https://github.com/phpseclib/libssh2-compatibility-layer

Другие вопросы по тегам