无法从另一台服务器ftp php连接到服务器

时间:2015-11-09 10:10:13

标签: php ftp

我使用2台服务器,一台是我的生产服务器,另一台是我的资源服务器。

我无法通过ftp从我的生产服务器连接到我的资源服务器。 我可以从生产服务器连接到其他服务器。 我也可以从localhost或filezilla连接到我的资源服务器。

我使用此代码进行连接:

$conn_id = ftp_connect("resource server ip", "21", "5");
if ($conn_id) {
    echo "connected";
    ftp_close($conn_id);
}
print_r(error_get_last());

我在服务器上运行此脚本时没有任何输出(没有错误)。 在localhost上运行没问题。

这有什么问题?这是服务器管理员必须解决的问题吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您应首先从命令行检查是否是网络/操作系统问题。

因此,如果您已获得对生产服务器的shell访问权限,请尝试通过命令行ftp客户端连接到资源服务器。

如果这不起作用,您就会遇到网络/防火墙/访问控制问题,与php或您的软件无关,您应该与系统管理员联系。

如果它确实有效,那么问题在于你的东西,你应该将日志级别设置为高,并从命令行运行此脚本,还要检查php,php-error,syslog和资源服务器ftp的日志访问日志和系统日志。

注意:ftp是一个不太精确的野兽,服务器和客户端有很多内置的解决方法,以某种方式相互对待。可能存在主动(多个来回连接)和被动模式(类似于http)的问题,也有ls格式和时间戳,时区和端口。

另外一些服务器只支持ftps(带有ssl的ftp) - 这与sftp(通过ssh-port 22的文件传输)不同。

您的生产服务器可能有一些防火墙规则,并且您的连接被捕获,要进行调试,请使用命令行ftp客户端和/或nmap / netcat。