curl — Windows php file_get_contents возвращает 504 на локальный хост

У меня возникла проблема с PhP, когда он прерывался, когда делал что-то вроде

file_get_contents("http://127.0.0.1/test.php")

Я также пытался использовать CURL и прочее, все работает нормально, когда я пытаюсь получить данные откуда-то еще, но когда это локальный хост, я получаю 504.

Я на Windows 10 x64
Php версия 7.0.18
версия nginx — 1.8.0

До сих пор я пробовал разрешения на настройки для всех каталогов, я пробовал разные пользовательские агенты и т. Д., Я даже пытался повторить тот же запрос, что и мой браузер chrome, но мне не повезло.

Я получаю эту ошибку nginx в error.log.

2017/05/04 10:26:33 [error] 7732#5384: *5 upstream timed out (10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) while connecting to upstream, client: 127.0.0.1, server: _, request: "GET /test.php HTTP/1.0", upstream: "fastcgi://[::1]:9123", host: "127.0.0.1"

Это то, что я получаю из своего access.log.

127.0.0.1 - - [04/May/2017:10:25:33 +0200] "GET /indexsss.php HTTP/1.1" 504 584 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36"127.0.0.1 - - [04/May/2017:10:25:33 +0200] "GET /favicon.ico HTTP/1.1" 404 570 "http://127.0.0.1/indexsss.php" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36"127.0.0.1 - - [04/May/2017:10:26:33 +0200] "GET /test.php HTTP/1.0" 504 182 "-" "PHP"

Это ошибки php, которые я получаю из php_errors.log

[04-May-2017 10:26:33 Europe/Copenhagen] PHP Warning:  file_get_contents(http://127.0.0.1/test.php): failed to open stream: HTTP request failed!  in C:\Servers\nginx-1.8.0\html\local\indexsss.php on line 208
[04-May-2017 10:26:33 Europe/Copenhagen] PHP Fatal error:  Maximum execution time of 30 seconds exceeded in C:\Servers\nginx-1.8.0\html\local\indexsss.php on line 208

http://127.0.0.1/test.php работает нормально при использовании браузера для доступа к нему. Так что я довольно невежественна, надеюсь, кто-нибудь может мне помочь.

indexsss.php содержит много закомментированного кода (отсюда и номер строки выполнения)
Единственный незакомментированный код — это.

$test = file_get_contents("http://127.0.0.1/test.php");

test.php

"Hello, this is a test"

Дайте мне знать, если вам нужно больше информации.

0

Решение

У вас есть настроенная отладка (xdebug f.e.). Если да, необходимо настроить его для поддержки одновременных потоков.

0

Другие решения

Задавать maximum_execution_time (по умолчанию 30 секунд) на большее значение, например 60 секунд из вашего файла php.ini. Или лучше оптимизировать свой indexsss.php скрипт — как это вызывает эту ошибку.

ОБНОВИТЬ:

<?php
$options = ['http'=>[
'method'=>"GET",
'header'=>"Accept-language: dk\r\n"]
];

$ctx = stream_context_create($options);

$test = file_get_contents('http://127.0.0.1/test.php', false, $ctx);
?>

http://php.net/manual/en/info.configuration.php#ini.max-execution-time

http://php.net/manual/en/function.stream-context-create.php

0

По вопросам рекламы [email protected]