I Ho cercato di creare script per scaricare file tramite FTP dal mio localhost Apache in CentOS e non riesco a farlo funzionare!Impossibile connettersi a FTP con PHP ftp_connect da localhost
Il codice che sto usando è proprio quello utilizzato da qualsiasi richiesta ftp di base:
<?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();
}
ho provato lo stesso script sul server remoto e ha funzionato! Non sono sicuro se sia una configurazione apache da fare, o una limitazione PHP stessa.
UPDATE:
Ecco il log degli errori:
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
Ho provato a scaricare il file con wget e scaricato –
vedo i tuoi log degli errori, in modo da ftp_connect restituisce FALSE nel tuo caso. – Yuriy
Provare a sostituire l'host del server/ip nel codice con ftp.mozilla.org o qualsiasi altro server FTP pubblico e vedere se si apre. Quindi stai usando "ftp: //" davanti all'IP del tuo server? Non ricordo se è necessario, prova sia con che senza quel prefisso. – Yuriy