FTP Upload funciona a partir da linha de comando local / cliente GUI remoto, mas não do script PHP

1

Originalmente postei esta pergunta no StackOverflow, mas estou começando a pensar que é mais uma questão de servidor.

Instalei o ProFTPd em uma instância do EC2 executando o Ubuntu 10.10. Eu gerenciei meu arquivo proftpd.conf, bem como minhas permissões de servidor para poder conectar e fazer upload / mover arquivos usando FTP remotamente usando o Filezilla e no próprio servidor ao conectar-se ao 127.0.0.1.

O problema que estou encontrando é quando tento enviar / instalar um arquivo usando a interface do Joomla.

Dou ao Joomla as mesmas informações de login que dou ao Filezilla, e a conexão é feita da mesma maneira. O arquivo ftp.log realmente mostra que o Joomla é capaz de acessar o servidor:

localhost UNKNOWN nobody [17/Jan/2011:14:09:17 +0000] "USER ftpuser" 331 -
localhost UNKNOWN ftpuser [17/Jan/2011:14:09:17 +0000] "PASS (hidden)" 230 -
localhost UNKNOWN ftpuser [17/Jan/2011:14:09:17 +0000] "PASV" 227 -
localhost UNKNOWN ftpuser [17/Jan/2011:14:09:17 +0000] "TYPE I" 200 -
localhost UNKNOWN ftpuser [17/Jan/2011:14:09:17 +0000] "STOR /directory/store/location/file.zip" 550 -

Mas falha ao tentar o comando STOR. Eu tracei o problema no código do Joomla para o módulo FTP do PHP. O código (com minhas instruções de rastreamento adicionadas):

if (@ftp_put($this->_conn, $remote, $local, $mode) === false) {
    echo "\n FTP PUT failed.";
    echo "\n Remote: $remote ; Local: $local ; Mode: $mode - Either ASCII: ".FTP_ASCII." or Binary: ".FTP_BINARY;
    echo "\n The user: ".exec("whoami");
    JError::raiseWarning('35', 'JFTP::store: Bad response' );
    return false;
}

Saída de rastreio:

FTP PUT failed.
Remote: /directory/store/location/file.zip ; Local: /tmp/phpwuccp4 ; Mode: 2 - Either >ASCII: 1 or Binary: 2
The user: www-data

E no caso de você estar curioso, aqui está um exemplo do log FTP ao usar o Filezilla:

my_client_ip UNKNOWN nobody [17/Jan/2011:16:45:55 +0000] "USER ftpuser" 331 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:45:55 +0000] "PASS (hidden)" 230 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:45:55 +0000] "OPTS UTF8 ON" - -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:45:55 +0000] "PWD" 257 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:45:55 +0000] "TYPE I" 200 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:45:55 +0000] "PASV" 227 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:45:55 +0000] "MLSD" 226 3405
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:06 +0000] "CWD location" 250 3405
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:06 +0000] "PWD" 257 3405
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:06 +0000] "PASV" 227 3405
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:07 +0000] "MLSD" 226 3757
my_client_ip UNKNOWN nobody [17/Jan/2011:16:46:37 +0000] "USER ftpuser" 331 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:37 +0000] "PASS (hidden)" 230 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:37 +0000] "OPTS UTF8 ON" - -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:37 +0000] "CWD /location" 250 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:37 +0000] "PWD" 257 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:37 +0000] "TYPE I" 200 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:37 +0000] "PASV" 227 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:39 +0000] "STOR file.zip" 226 125317
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:39 +0000] "PASV" 227 -
my_client_ip UNKNOWN ftpuser [17/Jan/2011:16:46:39 +0000] "MLSD" 226 497

    
por MrOodles 17.01.2011 / 18:00

1 resposta

2

parece tentar se conectar como usuário "www-data" - pelo menos o erro mostra o usuário atual "exec (" whoami ")",

não tem certeza se o Joomla passa o nome de usuário correto para o servidor

se não - o www-data está conectado e não tem direitos para criar o arquivo /directory/store/location/file.zip no servidor

    
por 17.01.2011 / 18:49