Estoy creando una aplicación PHP para una sala de cine que, cuando un usuario accede, obtiene un documento XML externo y lo guarda en nuestro servidor. Ese archivo XML luego se usa para cargar los horarios y otra información de la película. Si el archivo en nuestro servidor tiene más de 15 minutos, se sobrescribirá; de lo contrario, cargará el existente. Ya casi terminé la aplicación y funciona perfectamente en mi servidor de prueba XAMPP, sin embargo, no funciona en el servidor en vivo.
El archivo XML externo se encuentra en esta URL: http://45502.formovietickets.com:2235/showtimes.xml . Nuestro servidor en el que estoy tratando de guardar el archivo está en uno de los servidores basados en Linux de HostGator. Usando las funciones curl de PHP, he podido cargar con éxito el archivo XML solo en el servidor de prueba XAMPP. En el servidor en vivo, simplemente no se conecta.
Siento que podría ser algún tipo de restricción de acceso en el servidor formovietickets.com, pero la gente detrás insiste en que no hay ningún tipo de restricción. ¿Alguien sabe una solución para este problema?
<?php $url = 'http://45502.formovietickets.com:2235/showtimes.xml'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if(curl_exec($ch) === false) { echo 'Curl error: '.curl_error($ch); } else { echo 'Retrieved file with no errors!'; } curl_close($ch); ?>¿Qué he probado?
NOTA: Si carga la URL más de un par de veces desde la misma dirección IP en menos de 15 minutos, obtendrá un error que dice "Demasiadas solicitudes de esta dirección IP". Solo digo en caso de que intentes probarlo.
Supongo que su servidor está bloqueando el acceso saliente a puertos no estándar como 2235 en su firewall. Si ese es el caso, debe pedirles que abran ese puerto y esperar que estén dispuestos a hacerlo. Si no lo son, tendrá que encontrar otra solución para obtener el archivo en el servidor, como usar un proxy o enviar el archivo al servidor en lugar de buscarlo.
¿Revisó el archivo /etc/hosts? En Windows está en C:\Windows\System32\Drivers\etc\hosts, podría estar causando que formovietickets.com se resuelva en una IP diferente y tiene prioridad sobre el servidor DNS, hablando de eso, intente cambiar su servidor DNS.