Модуль 'ssh2' уже загружен в Unknown в строке 0
Я использую функции ниже для копирования файлов с одного сервера на другой. Это работает большую часть времени, но иногда я начинаю получать эту ошибку в файлах журнала:
Module 'ssh2' already loaded in Unknown on line 0
И это перестает копировать. Позже по какой-то причине ошибка прекратится, и копирование снова начнет работать. В чем здесь проблема?
function getConn($server,$username,$password)
{
$connection = 0;
if (function_exists("ssh2_connect"))
{
$connection = ssh2_connect($server, 3817);
if($connection)
{
if(ssh2_auth_password($connection, $username, $password))
{
return $connection;
}
}
}
return 0;
}
function scp($server,$username,$password,$remotepath,$localpath)
{
$connection = 0;
$connection = $this->getConn($server,$username,$password);
if($connection)
{
$ret = ssh2_scp_send($connection, $localpath, $remotepath, 0644);
ssh2_exec($connection, 'exit');
}
}
3 ответа
Сообщение об ошибке Module 'ssh2' already loaded in Unknown on line 0
означает, что что-то не так в вашей конфигурации PHP. Проверьте, есть ли строка, которая говорит extension=ssh2.so
в вашем php.ini. Если это так, удалите его и проверьте, все ли еще работает. Возможно, расширение = ssh2.so загружается дважды, то есть PHP будет жаловаться, что модуль уже загружен.
Удачи.
В моем случае я закомментировал одну строку в ssh2.ini
находится здесь: /etc/php5/mods-available/ssh2.ini
Содержимое этого файла теперь выглядит следующим образом:
;extension=ssh2.so
Спасибо!
Если вышеперечисленное не работает, загляните внутрь /etc/php5/conf.d
Если вы видите дубликаты файлов ssh2.ini, удалите все лишние.
В моем случае у меня были 50-ssh2.ini и ss2.ini. Оба файла содержали строку:
extension=ssh2.so
Для меня удаление 50-ssh2.ini решило проблему.