En este caso las características son las siguientes:
- Servidor CenOS 6 (origen).
- PHP 5.5.
- iptables activado.
El script (resumido) que se esta usando para subir el archivo es:
$connection = ftp_connect($hostname, 21); ftp_login($connection, $user, $password); ftp_put($connection, $ftp_path, $local_file, FTP_ASCII);
El problema es que el script se detiene en la tercera linea, no se corta ni muestra un mensaje de error y por tanto no se sube el archivo ni termina de procesarse todo el código.
El primer paso seria desactivar iptables y verificar el código:
service iptables stop
Y ahora si, el script funciona perfectamente.
En este caso el problema esta en iptables, probamos que activando el modo pasivo para ftp de la siguiente manera:
modprobe ip_conntrack_ft
Y volver a verificar el script, si funciona entonces agregar el modulo cada vez que se inicie iptables, editar el siguiente archivo:
nano /etc/sysconfig/iptables-config
Y agregar el modulo propiamente dicho:
IPTABLES_MODULES="ip_conntrack_ftp"
Y reiniciar el servicio:
service iptables start