Модуль '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 решило проблему.

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