Я делаю приложение на основе laravel, которое позволяет ему связываться с Linux-сервером через SSH, я обычно использую phpseclib для связи с серверами, такими как перезагрузка и другие, но когда я создаю приложение с Laravel я не мог или не хотел бы видеть способ, как интегрировать с Laravel я попытался включить руководство по PHP, но до сих пор не может ошибка «phpseclib \ Net \ Net_SSH2» класс не найден, мой текущий кодКак использовать phpseclib на laravel 5 php
public function store(Request $request)
{
// create ssh account and inserted into database here
if(Auth::check()) // make sure user has been logging on
{
if($dump = DB::table('servers')->where('key', $request->_key)->get())
{
if($prices = DB::table('app_data')->get())
{
$price = $prices[0]->prices;
if(DB::table('ssh_users')->where('name', $request->sshname)->where('on_server', $dump[0]->ip)->count() > 0)
{
return view('create')->with('userexist', $request->sshname);
}
else
{
include(app_path() . "/lib/phpseclib/phpseclib/phpseclib/Net/SSH2.php");
$command = new \phpseclib\Net\Net_SSH2($dump[0]->ip);
$valid = array(
'sshuser' => $request->sshname,
'sshpass' => $request->sshpass,
'sshcreated' => date('d/m/Y'),
'sshexpired' => $request->sshexpired,
'onserver' => $dump[0]->name,
'serveruser' => $dump[0]->user,
'serverpass' => $dump[0]->password,
'sshprice' => $price,
'command' => $command
);
if(DB::table('ssh_users')->insert([
'name' => $request->sshname,
'password' => $request->sshpass,
'created_at' => date('d/m/Y'),
'expired_on' => $request->sshexpired,
'on_server' => $dump[0]->ip,
'reseller' => Auth::user()->name
])) {
return view('create')->with('valid', $valid);
}
}
}
else
{
return view('create')->with('error', $request->sshname);
}
}
else
{
return view('create')->with('serverabort', $request->sshname);
}
}
}
Большое спасибо: D это работа после того, как я проверил SSH2.php имя класса SSH2, а не Net_SSH2 hehehe, но на http://phpseclib.sourceforge.net есть Net_SSH2 X_X, в любом случае +1 hehe –
@RizalFakhri - это SSH2, если вы используете phpseclib 2.0. Если вы используете phpseclib 1.0, это Net_SSH2. phpseclib 2.0 - это пространство имен, а 1.0 - нет. В этом отношении ответ Танеркука кажется немного смущенным. Пример кода, который он дал вам, использует пространства имен, но он просит вас убедиться, что имя класса является именем, отличным от имени пространства имен ... Я думаю, что я отредактирую его ответ. – neubert
@neubert спасибо, что это потрясающе: D в любом случае не волнуйтесь, что это сработало, и мой проект уже завершен, вы можете проверить https://github.com/rizalio/sshpanel hehehe спасибо: D –