2017-08-29 2 views
0

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 pour get-php.php et index.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?

+0

Les scripts fictifs sont-ils complets? Vous n'utilisez pas de sessions (elles peuvent aussi bloquer) – Mark

+0

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

+0

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

Répondre

0

Je ne l'ai pas mis PHP_FCGI_CHILDREN ce qui est en défaut 1.
Quand j'ai appelé dans le script PHP un autre script PHP de mon serveur apache sur il a échoué car il n'a pas été en mesure de créer une autre instance PHP FCGI.

Proper settings of PHP_FCGI_CHILDREN