2010-12-02 25 views
1

J'espérais que quelqu'un pourrait m'aider à comprendre pourquoi mon application ne cesse de temporiser. Il est construit en utilisant Zend Framework. J'essaie d'exécuter un script qui prend quelques minutes pour terminer. Cela fonctionne très bien sur ma machine locale (MAMP) mais expire sur le serveur prod (Ubuntu). Les paramètres php.ini pertinents sur les deux serveurs sont: max_execution_time = 600 = 600 max_input_time memory_limit = 512M post_max_size = 8ML'application Zend Framework expire avec un message étrange

Il devrait fonctionner pendant 10 minutes avant de mettre fin à droite? Sur le serveur Ubuntu, il ne fera que courir pendant 1-2 minutes et le temps, puis avec ce message imprimé au milieu du navigateur.

« serveur backend n'a pas répondu dans le temps serveur App est trop occupé et ne peut pas gérer les demandes à temps. "

Bien sûr que c'est un message Zend mais je ne trouve rien à ce sujet sur Internet.

Merci beaucoup pour votre aide.

+3

Ne semble pas être le message zend, appariements et des correspondances raisonnables sur google est ce: http://code.google.com/p/scalr/source/browse/scalarizr/tags/0.6.6/share/nginx/ html/502.html? r = 300 – ajreal

+0

D'accord avec ce qui précède. Ce n'est pas une erreur de Zend Framework. –

Répondre

0

Il s'avère que nginx était en cours d'exécution sur l'équilibreur de charge. L'erreur venait de nginx qui s'exécute sous scalr. D'où le "Le serveur principal n'a pas répondu à temps, le serveur d'applications est trop occupé et ne peut pas traiter les demandes à temps." - une erreur scalr. Une fois que le paramètre proxy_read_timeout a été déclenché dans la configuration de nginx, le script a cessé d'expirer.

Merci pour le lien scalr ci-dessus - m'a pointé dans la bonne direction.

1

Ce message semble provenir de mod_fastcgi. Lorsque vous exécutez PHP sous FastCGI (ou que vous exécutez quoi que ce soit sous FastCGI), le script PHP est une entité distincte du serveur Web. Vous avez configuré votre processus PHP pour qu'il s'exécute pendant 10 minutes, mais Apache/mod_fastcgi est configuré pour attendre seulement une période plus courte pour que votre script PHP commence à retourner les données.

L'idée est d'isoler le processus apache des processus externes qui vont loin dans les mauvaises herbes ne jamais revenir (par la suite, apache serait à court d'auditeurs)

Si vous avez accès à la section de configuration FastCGI de httpd. conf, consultez les valeurs de -appConnTimeout ou -idle-timeout.

Malheureusement (ou, heureusement, si vous êtes un administrateur système chez un hébergeur), vous ne pouvez pas remplacer ces paramètres via .htaccess ou même par virtualhost. Au moins, pas selon le documentation

+0

Merci pour la réponse. mod_fastcgi n'est pas installé sur le serveur. Assez sûr que ça vient de scalr. J'ai l'administrateur en charge de la question. – LaserWolf

+0

Si pas fastcgi, alors quoi? Comment apache parle-t-il à PHP? Étant donné ce message d'erreur, je serais très surpris d'apprendre que vous utilisez vanilla mod_php – timdev

+0

nginx qui exécute scalr sur l'équilibreur de charge. J'ai oublié de penser à l'équilibreur de charge. – LaserWolf