Запрос PHP curl приводит к появлению белой страницы, когда URL содержит точки или двоеточия - PullRequest
0 голосов
/ 13 января 2019

Это происходит только на моем веб-сервере, а не в локальной системе. У меня есть запрос на скручивание, как это

ini_set('display_errors', 1);
error_reporting(E_ALL);

$url = 'http://***.***.***.***:8080/api_v1/oauth/token';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
$response = curl_exec($ch);

Это заставляет страницу загружаться некоторое время и просто возвращает белый экран. Это действительно невозможно показать ошибки, вывод или просто что-нибудь еще.

Всякий раз, когда я изменяю URL на другой URL (существующий или не существующий), я получаю правильные ошибки или вывод, если URL имеет смысл, если URL не содержит точек или двоеточий ...

Существуют ли какие-либо ограничения на использование или блокировку, которые я пропускаю? У меня нет контроля над целевым URL, мне нужно использовать API в структуре IP-порта.

UPDATE

  1. Проблема не связана с целевым URL-адресом или поступающими данными: та же проблема возникает, когда я ввожу URL, который вообще не имеет смысла , если он не содержит. или:
  2. Я полагаю, это настройка на веб-сервере, поскольку все мои тесты работают нормально на локальном хосте (MAMP)
  3. К сожалению, у меня нет доступа ни к каким журналам или файлам, кроме тех, которые я загружаю сам (веб-хостинг one.com)

ОБНОВЛЕНИЕ 2

Оказывается, мой хостер блокирует весь исходящий трафик на неявные IP-адреса и порты, отличные от 80 и 443. Отменили мою подписку и сейчас принимаем достойного провайдера. Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Оказывается, мой хостер блокирует весь исходящий трафик на неявные IP-адреса и порты, отличные от 80 и 443. Отменил мою подписку и сейчас принимаю достойного провайдера. Спасибо за помощь

0 голосов
/ 13 января 2019

Как подсказывает @Quasimodo, я бы посмотрел в лог-файл, если бы я был тобой. Если вы работаете на Ubuntu-сервере с Apache, посмотрите на /var/log/apache2/error.log. Аккуратный трюк - открыть терминал и написать:

tail -f /var/log/apache2/error.log

Это откроет текущий поток на терминал. После этого вы можете вызвать сбой запроса curl (в своем браузере), а затем вернуться в терминал и посмотреть, какие новые и сочные ошибки вы получили.

Скорее всего, это какой-то файл конфигурации на вашем сервере. Так что было бы полезно, если вы напишите пару спецификаций с этого сервера, таких как: - Какой веб-сервер вы используете (Apache, Nginx, другие) - версия PHP ... Вы можете легко найти всю эту информацию, используя phpinfo .

По-моему, вам нужно включить PHP_Curl для конфигурации вашего сервера, но это безумный ковбойский выстрел из бедра.

Дополнение 1

Я вижу, что вы только что отредактировали вопрос (который некоторое время думает, а затем выдает пустой экран). Я бы сказал, что ваш curl-запрос может пытаться загрузить большой объем данных, и что ваша PHP-конфигурация имеет ограничение в 128 Мб (или что-то в этом роде).

Я бы проверил PHPinfo для этих двух значений:

max_input_vars
memory_limit

Чтобы посмотреть, не подозрительно ли один из них.

...