2017-02-16 1 views
0

Je rencontre cette erreur de serveur interne 500 vraiment bizarre (sortie de fin de manuscrit avant des en-têtes). Cela arrive quand j'essaie d'exécuter un fichier .php qui prend assez de temps à s'exécuter. J'ai pris des précautions en ajoutant set_time_limit(120); ini_set('max_execution_time', 120); au fichier. 2 minutes devraient suffire. J'ai également déclaré header('Content-Type: text/plain');.Erreur de serveur de PHP Odd 500

Maintenant, la chose étrange est - la plupart du temps, le code exécute réellement entièrement, tout jusqu'à la dernière exit(); a définitivement exécuté (je ne peux pas vérifier si cette dernière sortie fait quoi). Cependant, je reçois toujours une erreur 500 Server interne (le journal indique End of script output before headers).

Encore plus bizarre, si j'exécute le fichier une seconde fois en 5-10 minutes, tout fonctionne parfaitement bien. Et parfois, le code s'arrête juste au milieu des choses et jette l'erreur. Si cela est important, lorsque le script s'arrête au milieu, il est généralement dans une boucle foreach lors de la lecture des éléments d'un fichier XML et de les écrire dans un fichier CSV. C'est toujours quand une boucle est faite. Je n'ai vraiment aucune idée de la raison de cette situation.

Toute aide serait appréciée.

Merci beaucoup,
fraeckey

+0

Sans code réel, il est plutôt difficile de dire ce qui pourrait avoir mal tourné. Vous devez d'abord faire votre propre débogage et limiter le problème à des sections particulières du code, puis partager ces sections avec nous. – Shadow

Répondre

0

Vous êtes plus que de courir probablement dans des problèmes avec votre serveur Web. Si c'est apache, alors il y a le Timeout Directive. Vous pouvez également rencontrer des problèmes de mémoire, qui a de nouveau des paramètres dans php.ini et apache. Mais sans plus de détails .. J'ai peur que ce soit autant que je peux offrir.

-1

Si vous utilisez Wordpress, Probablement une erreur de syntaxe. exécutez le code en mode développement. vous verrez l'erreur. Sinon, il continue à afficher 500 erreur.