Necessário para executá-lo no modo passivo
ftp_pasv ($ conn_id, true);
Eu configurei uma instância do m1.large EC2 e quero usá-la para baixar os logs do servidor de um cdn. Eu tinha o código funcionando muito bem no meu laptop Ubuntu, mas uma vez carregado para o servidor a função ftp_rawlist () parou de funcionar. Tanto quanto eu posso dizer o código ainda está entrando no servidor ftp mas rawlist não está retornando nenhum arquivo.
aqui está o código de exemplo:
<?php
$FTP_USERNAME = 'username';
$FTP_PASSWORD = 'pass';
$FTP_SERVER = 'cdn.server';
$FTP_LOGDIR = 'logs';
$conn_id = ftp_connect($FTP_SERVER) or die('Couldn\'t connect to '.$FTP_SERVER);
if(!ftp_login($conn_id, $FTP_USERNAME, $FTP_PASSWORD)) {
die('Couldn\'t connect as '.$FTP_USERNAME);
}
ftp_chdir($conn_id, $FTP_LOGDIR);
$rawlist = ftp_rawlist($conn_id, '.');
ftp_close($conn_id);
var_dump($rawlist);
?>
e a saída é esta:
bool(false)
mesmo sabendo que o diretório não está vazio.
Ao configurar o servidor, estes são os comandos que eu usei para instalar tudo:
sudo yum install php
sudo yum install php-mysql
sudo yum install php-pear
sudo pear channel-discover pear.amazonwebservices.com
sudo pear install aws/sdk
Eu até abri todas as portas para o grupo de segurança, mas mesmo assim a saída ainda estava bool (false). E php -i mostra que o ftp está ativado.
Qualquer ajuda seria muito apreciada, estive quebrando meu cérebro o dia todo tentando descobrir isso.