• Plesk Uservoice will be deprecated by October. Moving forward, all product feature requests and improvement suggestions will be managed through our new platform Plesk Productboard.
    To continue sharing your ideas and feedback, please visit features.plesk.com

PHP ftp functions don't work but lftp command does when psa-firewal enabled.

brainforge

Basic Pleskian
PHP ftp functions don't work but lftp command does when psa-firewall enabled.

Outgoing FTP from a PHP script - executed from command line.
With PHP 5.3.3 and PHP 5.5.10 script hangs on ftp_nlist() eventually returning an empty string.
ftp_pasv() function always returns false.

lftp works OK (out of box, empy .lftp directory).

Disabled firewall using:
service psa-firewall stop
PHP Script then works OK.

Any ideas?
I could always script lftp, but wanted to keep everything in PHP.

PHP Script looks like this:


$conn_id = @ftp_connect($this->_params->get('the_ftpserver'));
if ($conn_id === FALSE) {
$this->writeLog('Error: Cannot connect to FTP source', true);
return false;
}

$login = @ftp_login($conn_id, $this->_params->get('the_username'), $this->_params->get('tthe_password'));
if ($login === FALSE) {
$this->writeLog('Error: Cannot login to FTP source', true);
return false;
}

$contents = ftp_nlist($conn_id, ".");
if (empty($contents)) {
if (!ftp_pasv($conn_id, true)) {
ftp_close($conn_id);
$this->writeLog("No contents, cannot set PASV.", true);
return false;
}
$contents = ftp_nlist($conn_id, ".");
if (empty($contents)) {
ftp_close($conn_id);
$this->writeLog("No contents.", true);
return false;
}
}
 
Last edited:
Back
Top