HTTP requests (file_get_contents, curl) times out when calling same server listener
Personne n'a encore pris cette issue.
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.1k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
Issue
When a script makes a HTTP call on Windows to the same host/server listener - it will time out.
Steps to reproduce:
- Install PHP 8.2.8 for Windows
- Create
bug/test.phpfile with following code:
<?php
echo $_GET['say'] ?? file_get_contents('http://localhost/test.php?say=hello');
cd bugand start a php server in that folder:php -S localhost:80- Try to run the script, it will time out:
php test.php
The script will time out, as the file_get_contents never responds.
Expected result
It should echo hello to the console
Further testing
This issue extends further than file_get_contents and php web server - it also affects:
- curl functions
curl_execetc not justfile_get_contents - Using
php-cgi.exeand nginx on Windows withfastcgi_pass - Also tested with Caddy web server, using proxy pass, same issue
Linux/Unix
This doesn't affect linux. Trying the above reproduction steps in Linux will echo hello. It also works as expected when using WSL/Windows Sub System for Linux.
PHP Version
PHP 8.2.8
Operating System
Windows 10
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par la reproduction sous Windows dans bug/test.php et comparez file_get_contents('http://localhost/test.php?say=hello') avec les cas documentés de curl_exec. Reproduisez le problème avec PHP 8.2.8 et php -S localhost:80 sous Windows, puis vérifiez que la requête se termine et renvoie hello sans provoquer de régression dans le comportement de Linux/WSL.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- backend, networking
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100