Я не могу сделать запрос php curl с номером порта, без номера порта, я получаю ответ правильно.
Через терминал, когда я делаю завиток http://www.sample.com:8088, я получаю ответ обратно должным образом. Но не через php curl при выполнении curl_inf () я получаю
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 ( ) )
Мой код
$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;
этот код дает мне ответ от ubuntu, но не дает ответа от cent os, если указан номер порта.
Пожалуйста, дайте мне знать, как это исправить.
Заранее спасибо.
Попробуйте установить порт следующим образом:
curl_setopt($ch, CURLOPT_PORT, $_SERVER['SERVER_PORT']);
или:
curl_setopt($ch, CURLOPT_PORT, 8088);
Попробуйте установить
curl_setopt($ch,CURLOPT_PORT, 8088);
Дополнительная информация http://php.net/manual/en/function.curl-setopt.php
Я пошел к администратору сервера с этой проблемой, и он изменил конфигурацию в centos
в папке / etc / sysconfig /
он отредактировал файл selinux и изменил SELINUX = отключил и пересчитал его.
# 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
и моя проблема решена.
Добавить
curl_setopt($ch, CURLOPT_PORT, 8088);
Ссылка curl_setopt
Убедитесь, что порт 8080 включен в Cent OS
и попробуйте этот curl_setopt($ch, CURLOPT_PORT, 8088);
«setsebool httpd_can_network_connect on» решает проблему для меня