2011-08-25 26 views
7

No puedo hacer una solicitud de curl de php con número de puerto, sin número de puerto recibo la respuesta correctamente.No se puede realizar la solicitud de curl de php con el número de puerto

A través de terminal cuando hago curl http://www.sample.com:8088 recibo la respuesta correctamente. Pero no a través de php rizo en hacer curl_inf() que estoy recibiendo

Array ([url] => http://www.sample.com:8088/ [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => 0 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0 [namelookup_time] => 0 [connect_time] => 0 [pretransfer_time] => 0 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [certinfo] => Array ()) 

Mi código

$url = "http://www.sample.com:8088/"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,$url); 
curl_setopt($ch, CURLOPT_TIMEOUT, 400); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, True); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, True); 
$report=curl_getinfo($ch); 
print_r($report); 
$result = curl_exec($ch); 
curl_close($ch); 
echo $result; 

este código me dan respuesta de ubuntu, pero no da respuesta de Cent OS si no se especifica el número de puerto .

Por favor, hágamelo saber el cómo solucionarlo.

gracias por adelantado.

Respuesta

3

fui a administrador del servidor con este problema y se cambió la configuración de centos

en la carpeta/etc/sysconfig/

editó el archivo selinux y cambió SELINUX = deshabilitado y lo actualizó.

# This file controls the state of SELinux on the system. 
# SELINUX= can take one of these three values: 
#  enforcing - SELinux security policy is enforced. 
#  permissive - SELinux prints warnings instead of enforcing. 
#  disabled - No SELinux policy is loaded. 
SELINUX=disabled 

y mi problema se resolvió.

+6

Desactivar todo el SE Linux solo para hacer que Curl acepte los números de puerto en la URL no puede ser una solución, una solución temporal en el mejor de los casos, pero absolutamente nada a largo plazo. – PvdL

3

Añadir

curl_setopt($ch, CURLOPT_PORT, 8088); 

Curl_setopt referencia

+0

he intentado con curl_setopt ($ ch, CURLOPT_PORT, 8088); también pero el mismo resultado. También lo intenté eliminando curl_setopt ($ ch, CURLOPT_PORT, 8088); – druveen

15

intenta establecer el puerto de la siguiente manera:

curl_setopt($ch, CURLOPT_PORT, $_SERVER['SERVER_PORT']); 

o:

curl_setopt($ch, CURLOPT_PORT, 8088); 
2

Asegúrese de que el puerto 8080 está habilitada en Cent OS

y probar este curl_setopt($ch, CURLOPT_PORT, 8088);

1

"setsebool httpd_can_network_connect en" resuelve el problema para mí

+1

Ok, pero ¿por qué? Agregue algún tipo de explicación a su respuesta para que otros sepan por qué esto funcionó para usted. – haindl

Cuestiones relacionadas