У меня возникла проблема с 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"
Дайте мне знать, если вам нужно больше информации.
У вас есть настроенная отладка (xdebug f.e.). Если да, необходимо настроить его для поддержки одновременных потоков.
Задавать 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