• Debian 11 is approaching its end-of-life (vendor EOL date - August 31, 2026). Plesk Obsidian 18.0.80 will be the last release to support it.
    If you are running Plesk Obsidian on Debian 11, we recommend you upgrade those servers to Debian 12 using our dist-upgrade tool.
  • We plan to deprecate and remove the support for XML RPC protocol versions earlier than 1.6.9.1 in Plesk Obsidian 18.0.82. We strongly recommend that you update all existing integrations using earlier versions of the XML RPC protocol to comply with the version 1.6.9.1 specification.

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