从PHP连接到安全的FTP服务器
这个问题是符合
this question的,我试图连接到安全的FTP服务器,它是不能连接,wierd部分是我可以做ssh和连接到服务器,但是当我尝试从PHP代码使用几种不同的方法,但它不工作
处理办法: > FTP Wrappers 方法1代码: $ftp_server = "ftp://username:password@192.168.1.1:21/{$log_file_name}"; $opts = array('ftp' => array('overwrite' => TRUE)); $context = stream_context_create($opts); $put_file = file_put_contents($ftp_server,$response,LOCK_EX,$context); 这里也无法连接到安全的FTP服务器,任何建议,为什么它不能连接? 方法2代码: ftp_server = 'www.server.com'; $conn_id = ftp_connect($ftp_server) or die ("Cannot connect to host"); //Program dies out here and give error message "Cannot connect to host",//but why ftp_login does not work here,Any Suggestions ? $ftp_user_name = "login"; $ftp_user_pass = "password"; // login with username and password $login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass); // check connection and login result if ((!$conn_id) || (!$login_result)) { echo "FTP connection has encountered an error!"; echo "Attempted to connect to $ftp_server for user $ftp_user_name...."; //exit; } else { echo "Connected to $ftp_server,for user $ftp_user_name"."....."; } 方法3代码: 这里使用与方法1相同的代码,而不是ftp_connect,我使用ftp_ssl_connect 方法4: $connection = ssh2_connect('www.server.com',22); ssh2_auth_password($connection,'login','password'); $sftp = ssh2_sftp($connection); //exit(); $stream = fopen("ssh2.sftp://$sftp/path/to/file",'r'); 任何人都可以建议为什么我无法使用上述方法连接到安全的FTP服务器,但仍然可以使用ssh? 有没有其他方法连接到安全FTP服务器使用php? 更新: Q1.我再次尝试使用ftp_connect,但它刚刚死了,为什么它会消失,ftp_connect死亡的情况是什么? Q2.我们只有这种方法才能连接到服务器,还有其他可以实现的方法吗? Q3.这个php语言是否涉及到不支持安全的FTP连接?或者有其他方式使用php,如果是,提供不同的方法,因为这将是非常有益的. 更新1: 我正在尝试google更多的问题,似乎如果ftp_connect不工作,防火墙可能是其原因之一.我不完全确定是否这样,但是我正在研究更多信息,并在这里发布更新,如果我发现有用的话. 可能的解决方案: 问题 如果我删除“或死”,那么你会得到错误: 从网页运行时: 后续代码var_dump($conn_id);返回bool(false). 从命令行/usr/bin/php /var/www/ftp_test.php 后续代码var_dump($conn_id);返回类型为(FTP缓冲区)的资源(4). 脚本完成. 解决方案1 这可能是一个解决方案: 尝试关闭 解决方案2 如果您不想完全关闭selinux,只需使用setsebool命令设置httpd_can_network_connect即可获得所需的内容. 验证它以前设置为“关闭”: 将其设置为“开”: 转回selinux: 检查确保php ftp_connect在httpd下运行时仍然工作. 将策略(-P)设置为“on”,以使其持续重新启动: 解决方案3 公司防火墙也可能出现问题.确保它已正确配置,并且访问权限设置正确. 解决方案4 另一种方法是使用cURL : libcurl,因为它可以用于连接和通信到具有许多不同类型的协议的许多不同类型的服务器 解决方案5 有一个名为PHP Secure Communication Library (phpspeclib)的开源项目,也可以用来建立与FTP服务器的安全连接. 注释: 我已经尝试过google / bing,但没有任何成果,所以如果SO读者可以帮助,肯定会感激:-) 真的很期待答案.
这个页面有你想要的(我想)
http://kevin.vanzonneveld.net/techblog/article/make_ssh_connections_with_php/ 这里是手册页 http://php.net/manual/en/book.ssh2.php (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |