2017-05-04 4 views
0

Je vais avoir un problème avec PhP où il temps quand faire quoi que ce soit commePHP pour Windows file_get_contents retourne 504 sur localhost

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

J'ai aussi essayé d'utiliser CURL et d'autres choses, cela fonctionne très bien quand je suis essayer de recevoir les données d'un autre endroit, mais quand il est l'hôte local j'obtenir un 504.

Je suis sur Windows 10 x64 Version Php est 7.0.18 version nginx est 1.8.0

jusqu'à présent, je 'ai essayé les autorisations de paramètres pour tous les sinistres Ctories, j'ai essayé différents user-agents etc, j'ai même essayé de répliquer la même demande que mon chrome dans le navigateur, mais je n'ai pas de chance.

Je reçois cette erreur nginx dans 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" 

C'est ce que j'obtiens de mon 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" 

Ce sont les erreurs php je reçois de 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 fonctionne bien lorsque vous utilisez le navigateur pour y accéder. Donc, je suis assez désemparé, j'espère que quelqu'un peut m'aider.

indexsss.php contient beaucoup de code commenté (D'où le numéro de ligne d'exécution) Le seul code non mis en commentaire est celui-ci.

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

test.php

"Hello, this is a test"

Laissez-moi savoir si vous avez besoin de plus d'informations.

Répondre

0

Définissez maximum_execution_time (par défaut sur 30 secondes) sur une valeur supérieure, par ex. 60 secondes depuis votre fichier php.ini. Ou mieux optimiser votre script indexsss.php - car il provoque cette erreur.

MISE À JOUR:

<?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

Salut, indexxx n'est pas le problème avec cela. Le fichier contient juste beaucoup de code qui est commenté, la seule ligne non commentée est '$ test = file_get_contents (" http://127.0.0.1/test.php ");' Et tout test.php est sortir une chaîne, donc rien de compliqué. Ne devrait pas prendre plus de 30 secondes. –

+0

Qu'est-ce qu'il y a dans test.php alors? – marmeladze

+0

J'ai posté la ligne ci-dessus juste maintenant. '' Bonjour, ceci est un test '' –

0

Avez-vous des debug configuré (xdebug F.E.). Si oui, vous devez le configurer pour prendre en charge les threads simultanés.

+0

Rien de tout ça, j'ai un chargeur ioncube, mais je ne l'utilise pas dans ce cas-là. –