1.通过 system , Shell _ exec , exec函数直接在服务器上面运行,优点是简单方便,缺点是有些情况下权限受到限制导致某些命令不能执行。
<?php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
?>
2.通过ssh2扩展连接到服务器然后在执行相应的命令,优点是可以突破权限的限制执行一些root命令,缺点是有些情况下服务器未安装ssh2扩展或者当前版本php不太好安装ssh2扩展。
<?php
$connection = ssh2_connect(' shell .example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$stream = ssh2_exec($connection, '/usr/local/bin/php -i');
?>
3.可通过”Net/SSH2.php”链接到服务器,然后执行命令,优点是不依赖服务器扩展,缺点是需要引入第三方包
include ('Net/SSH2.php'); define ('NET_SSH2_LOGGING', NET_SSH2_LOG_COMPLEX); $ssh = new Net_SSH2(' www .domain.tld'); if (!$ssh->login('username', 'password')) { exit('Login Failed'); } echo $ssh->exec('pwd'); echo $ssh->getLog();
4.其实还有很多变通的办法这里就不在阐述了比如先通过shell_exec执行grunt然后通过grunt的ssh2来间接完成任务