php支持ssh和sftp推送,原生不支持,需要装pecl的ssh2扩展。
- 扩展安装:
- SSH使用:
extension_loaded('ssh2') #检查是否安装ssh2扩展模块
$conn = ssh2_connect(IP, PORT) #连接远程服务器,看是否网络通,返回连接资源
ssh2_auth_password($conn, $username, $password) #通过账号密码认证登陆远程远程服务
$ssh2_sft = ssh2_sftp($conn);# 获取sftp连接资源
ssh2_sftp_mkdir($ssh2_sftp, $path, 0777, true)#创建远程目录
ssh2_scp_send($conn, $localfile, $filename, 0777)#上传文件
在一些特殊情况下,比如在内网,外网主机被映射为内网一个内网ip时,ssh2_scp_send可能推送不出文件,并且还会一直发送,长时间不会返回上传状态,这个时候需要用使用sftp方式推送