No localhost o arquivo está sendo baixado corretamente do ftp, mas não no servidor Ubuntu

-1

Em localhost , tentei obter o arquivo ftp do servidor e o arquivo local foi criado com sucesso. Mas quando eu estou tentando no servidor Ubuntu está exibindo houve um problema e arquivo não está baixando no servidor. Aqui está o código. E arquivo de código criado neste local /var/www/html/ :

<?php
// define some variables
$local_file = 'local.csv';
$server_file = 'serverfile.csv';
$ftp_server="ip address";
$conn_id = ftp_connect($ftp_server)or die("Couldn't connect to $ftp_server");
$ftp_user_name="user anme";
$ftp_user_pass="pass";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
}
} else {
echo "There was a problem\n";
}
ftp_close($conn_id);
?>

Por favor me ajude a resolver este problema, no host local ele está funcionando bem, mas no arquivo local do servidor Ubuntu não está criando / baixando.

    
por Sri P 22.07.2016 / 12:05

2 respostas

0

Este parece ser um problema de permissão. O diretório /var/www/html provavelmente pertence a root :

mirek@testsrv-ubuntu:/var/www/html$ ls -al
total 24
drwxr-xr-x  3 root  root   4096 dec 23  2015 .
drwxr-xr-x  3 root  root   4096 dec 22  2015 ..
-rw-r--r--  1 root  root  11510 dec 22  2015 index.html

O usuário que está executando o PHP deve ter permissão para escrever nesse diretório. Se o PHP é executado pelo Apache, você precisa permitir que o usuário www-data escreva. O comando a seguir listará os processos do Apache em execução. O nome de usuário é a primeira coluna.

mirek@testsrv-ubuntu:/var/www/html$ ps -ef | grep apache
root      1605     1  0 jul20 ?       00:00:16 /usr/sbin/apache2 -k start
www-data  1963  1605  0 12:01 ?        00:00:04 /usr/sbin/apache2 -k start

Como root tem permissão para escrever em qualquer lugar, basta alterar o proprietário do diretório /var/www/html para www-data e os dois root e www-data poderão gravar lá.

sudo chown www-data:www-data /var/www/html

Mais informações sobre permissões e proprietários de arquivos:

por Melebius 22.07.2016 / 12:43
0

ftp_pasv ($ conn_id, true); é a solução para o meu problema

    
por Sri P 22.07.2016 / 15:00