Edit report at https://bugs.php.net/bug.php?id=47110&edit=1

 ID:                 47110
 Comment by:         abrender at elitehosts 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:

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.


Previous Comments:
------------------------------------------------------------------------
[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] j...@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

Reply via email to