PHP sftp 上傳文件失敗 但能夠建立目錄

最近一個項目須要使用 sftp 上傳文件,在網上找了段代碼,開發和測試都沒有問題,上線以後問題來了:ssh

不能上傳文件了,可是建立目錄能夠成功,非常費解;函數

因而嘗試 ssh2_exec() 用命令上傳,收到錯誤提示:This service allows sftp connections only.測試

因而恍然大悟,由於前面上傳使用的是 ssh2_scp_send()函數   這個函數至關因而用 scp 命令上傳文件,因此上傳不成功,而建立目錄是 ssh2_sftp_mkdir() 因此建立目錄沒有問題;開發

因而只能改用 fopen 上傳了;io

至於出現「This service allows sftp connections only.」的緣由應該是,登錄

服務端/etc/sshd_config文件的設置問題:ftp

AllowTcpForwarding 應該設置爲yes纔可。service

若是沒有設置爲yes的話,用戶就只能經過sftp訪問指定目錄,並且不能進行ssh登陸.項目

只有把 AllowTcpForwarding no 改成 AllowTcpForwarding yes ,用戶才能經過ssh登陸而後訪問目錄。di

相關文章
相關標籤/搜索