I He estado tratando de crear un script para descargar archivos a través de FTP desde mi servidor local Apache en CentOS y no puedo hacerlo funcionar.No se puede conectar a FTP con PHP ftp_connect de localhost
El código que estoy usando es el mismo utilizado por cualquier solicitud ftp básica:
<?php
$ip= FTP_IP_HERE;
$port='21';
$timeout='90';
$un='username';
$pw='password';
// Connect to ftp
$conn_id = ftp_connect($ip,$port,$timeout);
// Open a session to an external ftp site
$login_result = ftp_login ($conn_id, $un, $pw);
// Check open
if ((!$conn_id) || (!$login_result)) {
print "FTP connection failed!";
exit();
}
// turn on passive mode transfers
if (ftp_pasv($conn_id, true) == FALSE) {
print "Passive FTP connection failed!";
exit();
}
Probé la misma secuencia de comandos en el servidor remoto y funcionó! No estoy seguro de si se debe realizar alguna configuración de Apache, o una limitación de PHP en sí.
ACTUALIZACIÓN:
Aquí está el registro de errores:
Warning: ftp_login() expects parameter 1 to be resource, boolean given in /var/www/html/ftp/FTP.php on line 16
Warning: ftp_get() expects parameter 1 to be resource, boolean given in /var/www/html/ftp/FTP.php on line 22
Falha ao enviar o arquivo test.pdf<br />Array
(
[type] => 2
[message] => ftp_get() expects parameter 1 to be resource, boolean given
[file] => /var/www/html/ftp/FTP.php
[line] => 22
)
Warning: ftp_close() expects parameter 1 to be resource, boolean given in /var/www/html/ftp/FTP.php on line 30
Probé la descarga del archivo con wget y se descargó –
que ver su registro de errores, por lo ftp_connect devuelve FALSE en su caso. – Yuriy
Trate de reemplazar su servidor host/ip en el código con ftp.mozilla.org o cualquier otro servidor ftp público y vea si se abre. Entonces, ¿está usando 'ftp: //' frente a la IP de su servidor? No recuerdo si eso es necesario, pruebe ambos con y sin ese prefijo. – Yuriy