Je rencontre un problème avec la demande PHP sur moi-même. Dans l'exemple, je vais utiliser file_get_contents()
mais même pour arriver exec('wkhtmltopdf [*SELF*]')
ou curl()
Demande PHP sur moi-même
- permet de nommer mon serveur example.com
- apache2 installé
- FastCGI (plusieurs versions de PHP 5.3, 5.4, 5.5, 5.6, 7.0)
- maintenant j'ai 2 scripts factices
1er scénario
//get-html.php
file_get_contents('http://example.org/index.html')
2ème scénario
//get-php.php
file_get_contents('http://example.org/index.php')
Test
1) de ligne de commande: php get-html.php
// Succès
2) navigateur: example.org/get-html.php
// Succès
1) ligne de commande: php get-php.php
// Succès
2) navigateur: example.org/get-php.php
// Délai d'attente
Ce que j'ai essayé à côté
- créer un sous-domaine comme
subdomain.example.org/index.php
avoir differet version PHP pourget-php.php
etindex.php
- modifier/etc/hosts
- demande sur d'autres sites (comme google.com) // Succès
- session_write_close() avant file_get_contents() et session_start() droite ne fonctionne pas après aussi
Donc, mon suspect est mod_fastcgi. Il semble que l'apache ne soit pas capable d'exécuter 2 instances de ceci pour gérer les requêtes PHP qui viennent de lui-même. Comme l'exécution du script à partir de la ligne de commande fonctionne comme prévu.
Quelqu'un a-t-il des conseils?
Les scripts fictifs sont-ils complets? Vous n'utilisez pas de sessions (elles peuvent aussi bloquer) – Mark
Bon point Mark. Oublié de mentionner. J'ai également essayé session_write_close(); file_get_contents ('http://example.org/index.php'); session_start(); Mais cela n'a pas réussi non plus. Mise à jour de la section "What I tried next" maintenant. – Nedvajz
Veuillez ne pas commencer la session (ou l'utiliser du tout) pour l'instant et réessayer, cela répondrait à notre question si le problème est causé par une session de blocage ou autre chose. – Mark