Bug #47110 [Com]: Can not use ftp functions behind firewall
Edit report at https://bugs.php.net/bug.php?id=47110&edit=1
ID: 47110
Comment by: raffaele dot mancoletti at accenture dot com
Reported by: konix dot net at du dot t-com dot hr
Summary: Can not use ftp functions behind firewall
Status: Closed
Type: Bug
Package: FTP related
Operating System: Cent OS (Latest patch)
PHP Version: 5.2.8
Block user comment: N
Private report: N
New Comment:
the problem is that path of destination file is incorrect. use
ftp_chdir($conn_id, FTP_DIRECTORY_DEST); print_r(ftp_nlist($conn_id, "."));
to verify if path is correct.
Raffaele
Previous Comments:
------------------------------------------------------------------------
[2011-09-10 16:05:15] abrender at elitehosts dot com
If you're seeing 'failed: Operation now in progress (115)' and you've already
switched into passive FTP mode then either your firewall needs to be fixed OR the
ftp server is returning a private RFC1918 IP address in response to the PASV
command which PHP is then trying to connect to and timing out. I've detailed this
issue at http://www.elitehosts.com/blog/php-ftp-passive-ftp-server-behind-nat-
nightmare/ and posted an entry at bugs.php.net with a patch to fix the issue at
https://bugs.php.net/bug.php?id=55651 - please
vote for that feature fix if you
want it included in future PHP releases.
------------------------------------------------------------------------
[2009-01-15 17:41:20] konix dot net at du dot t-com dot hr
Fix firewall and it will work.
------------------------------------------------------------------------
[2009-01-15 17:21:22] konix dot net at du dot t-com dot hr
FYI for anyone else looking for answer:
- when behind firewall, you will surly set your ftp connection in PASV mode.
Be sure to configure your firewall in a right way as you will need port open in upper ranges (from
1024).
Once this is done, all PHP FTP function in PSV mode work as they should.
------------------------------------------------------------------------
[2009-01-15 12:47:50] jani@php.net
IIRC, it's just a buggy FTP server issue.
------------------------------------------------------------------------
[2009-01-15 08:39:14] konix dot net at du dot t-com dot hr
Description:
------------
I'm trying to connect to FTP server from a script.
Script is behind firewall.
Only FTP port is allowed (application/script is to be used in PCIDSS enviroment).
We tried same script on other servers and no problem accured at all. This could be a firewall / web
application firewall (mod_security) issue but we're not sure.
Reproduce code:
---------------
$ftp_array = array(
// Host, user, pass
);
$port = 21;
$network_timeout = 30;
echo "Connecting...\n";
// Connect
$ftp_connection = ftp_connect($ftp_array['host'], $port, network);
if ($ftp_connection) {
// Login
if ($login = ftp_login($ftp_connection, $ftp_array['user'],
$ftp_array['pass'])) {
// Pasive mode
ftp_pasv($ftp_connection, true);
// Change dir
ftp_chdir($ftp_connection, "in");
// Get dir listing
$contents = ftp_nlist($ftp_connection, ".");
// Echo list
echo '<pre>';
print_r($contents);
echo '</pre>';
} else {
echo "Can't login to remote server.";
}
ftp_close($ftp_connection);
} else {
exit("Can't connect to remote server.");
}
Expected result:
----------------
Array
(
[0] => .
[1] => ..
[2] => 11829_RATE_39.txt
)
Actual result:
--------------
Warning: ftp_nlist() [function.ftp-nlist]: php_connect_nonb() failed: Operation now in progress
(115) in /var/www/html/public_html/ftp_test.php on line 30
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=47110&edit=1
Thread (6 messages)