Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: ssh2_connect

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
tramX
Отправлено: 11 Августа, 2010 - 21:58:40
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Здравствуйте. ПО гуглил и понял что я не один такой. У PHP есть возможность работать с SSH протоколом, припомощи функций ssh2_connect и ssh2_exec, вродебы все нормально, к серверу подключаюсь, действия выполняю. Но после завершения работы функции, SSH сесия не закрывается, и скрипт какбы висит. Второй раз к нему не получается обратится. Как решить ету проблему?
 
 Top
Scalar
Отправлено: 11 Августа, 2010 - 22:17:08
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Авг. 2010  


Помог: 0 раз(а)




Гугл подсказывает что нужно закрыть поток, который вернули функции ssh2_exec или ssh2_shell.

 
 Top
tramX
Отправлено: 11 Августа, 2010 - 23:23:22
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Видел это, не помогает
 
 Top
JustUserR
Отправлено: 12 Августа, 2010 - 01:36:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




tramX пишет:
Но после завершения работы функции, SSH сесия не закрывается, и скрипт какбы висит
Если функция динамического расширения PHP которая обеспечивает работу по протоколу SSH не обеспечивает проверку удаления связанного ресурса в исполняемом PHP-коде - и таким образом продолжает поддерживать SSH-соединение даже когда полученные данные уже не могут быть возвращены в PHP-скрипт - по причине отсутсия соответствующей ресурсной переменной или окончани исполняемого PHP-кода Для решения этого вопроса можно попробовать прервать SSH-соединение не средствами PHP-скрипта а с помощью завершения самого сеанса взаимодейтсвия с удаленным сервером - ведь соеднение поддерживается для каждой конкретной инстанции терминального пользователя - и соответственно достаточно послать команду exit или ей подобную


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
tramX
Отправлено: 12 Августа, 2010 - 03:37:33
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Для решения этого вопроса можно попробовать прервать SSH-соединение не средствами PHP-скрипта а с помощью завершения самого сеанса взаимодейтсвия с удаленным сервером - ведь соеднение поддерживается для каждой конкретной инстанции терминального пользователя - и соответственно достаточно послать команду exit или ей подобную.

Если это будет выполняться не средствами PHP то такой вариант не подходит, так как все действия на сервере нужно выполнять только через веб браузер.
 
 Top
JustUserR
Отправлено: 13 Августа, 2010 - 00:37:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




tramX пишет:
Если это будет выполняться не средствами PHP то такой вариант не подходит, так как все действия на сервере нужно выполнять только через веб браузер.
Если вы осуществляете отправку и получение результатов работы SSH-команд через браузер - то в любом случае для реализации такого соединение используется учетная запись некоторого системного пользователя от имени которого будет запущен основной сеанс консоли типа /bin/sh Соответственно выход из него с помощью SSH-кодманы exit должен гарантировать и разрыв соединения по крайней мере с серверной стороны - посольку в таком случае получается что клиент уже не может отсылать команды ни от одной инстанции процесса


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
tramX
Отправлено: 17 Августа, 2010 - 17:15:07
Post Id


Новичок


Покинул форум
Сообщений всего: 48
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Я сделал так. PHP формирует запрос и добавляет его в базу. Также написал скрипт на perl который извлекает данные из базы, отправляет по ssh и удаляет из базы эту запись
 
 Top
JustUserR
Отправлено: 17 Августа, 2010 - 21:50:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




tramX пишет:
Я сделал так. PHP формирует запрос и добавляет его в базу. Также написал скрипт на perl который извлекает данные из базы, отправляет по ssh и удаляет из базы эту запись
Использование стороннего сервиса который выполняет опосредованную передачу информции межну PHP-скриптом и SSH-соединением явлеся весьма хорошим решением - однако для увеличения эффективности можно улучшить способ передачи данных между ними по локальному каналу - например за счет использования более быстрого сервиса memcached заместо сервера БД


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB