我想创建一个php脚本,将文件放到远程服务器上。
下面一行将从CLI工作:使用PHP系统和cURL时的权限问题?
curl -u username:pass -T myfile.jpg sftp://my.domain.com/dir/
但是,如果我考虑到这个PHP,并尝试通过像“系统”来运行它:
<? system('curl -u username:pass -T myfile.jpg sftp://my.domain.com/dir/'); ?>
我得到一个错误:
curl: (7) Failed to connect to xxx.xxx.xx.xx: Permission denied
此外,使事情复杂化,这是从RHEL到Windows服务器。任何人有建议或修复?
以下是PHP cURL库的结果。
* About to connect() to my.domain.com port 22 (#0)
* Trying xxx.xxx.xx.xx... * connected
* Connected to my.domain.com (xxx.xxx.xx.xx) port 22 (#0)
* SSH authentication methods available: publickey,password
* Initialized password authentication
* Authentication complete
* Upload failed: Permission denied (3/-31)
* Connection #0 to host my.domain.com left intact
* Closing connection #0
它可能是你仍然ssh使用运行php脚本的用户,并且您使用的用户名和密码仅用于身份验证,其中“apache”(假设其运行php)用户未通过身份验证将文件上传到该远程文件夹 – 3emad
我认为这可能是问题,但我不知道如何解决此问题。即使我完全控制Windows服务器上的“每个人”(可怕的解决方案,我知道),它仍然失败。如果我在命令行“php myscript.php”中运行脚本,我的脚本就可以正常工作。但是,从网络浏览器运行它会失败。 – Corey