1

Bonjour, et merci pour cette superbe bibliothèque.

Je tente de l'utiliser pour générer des pages HTML d'un catalogue (avec mise en forme en HTML/CSS) j'ai retravaillé mon modèle de page pour que le HTML et les CSS soient compatibles avec HTML2PDF (suppression des float que j'avais un peu partout etc). J'ai essayé de ne pas trop imbriquer de table dans les tables, mais il me fallait aussi rester proche de ma maquette initiale.

Mon problème vient surement un pb de config serveur, mais si jamais quelqu'un avait déjà eu le cas, ca m'aiderait bien...

La génération d'une page sur un serveur OVH Kimsufi (PHP Version 5.3.10-1 ubuntu3.5, 2 Go Ram , celeron Atom 1,2+Ghz, Ubuntu, plesk + 2 petits sites qui tourne dessus) met entre 91 et 111 secondes et à très bon rendu.
Le serveur tourne par défaut en FastCgi (mais j'ai également tenté en module Apache pour voir s'il y avait une différence)
Je précise que je ne suis pas un grand expert en serveur, mais que j'ai tenté de parcourir un peu tout ce que j'ai pu regrouper comme infos à travers les différents forums.

Soucis, en dépassant 120 s, je me retrouve avec une erreur 324 du navigateur, le serveur ne me renvoit rien, et je n'ai rien dans les logs Apache pour me signaler une erreur.

J'ai pu voir dans d'autres post que ca pourrait venir des Mo alloués pour la mémoire, j'ai donc modifié tout un tas des paramètres du serveur, surement même certain qui n'avaient aucun rapport.

j'ai monté le memory_limit (j'ai monté progressivement, je suis même allé jusqu'à 512 Mo), le max_execution_time à 800, max_input_vars = 5000 , max_input_time= -1, j'ai modifié le fichier fcgid.conf (en découvrant que j'etais sous fastCGI et en découvrant ce fichier de onfig) pour augmenter toutes les valeurs, je suis maintenant à
FcgidProcessLifeTime 300
FcgidMaxProcesses 20
FcgidMaxProcessesPerClass 8
FcgidMinProcessesPerClass 0
FcgidConnectTimeout 300
FcgidIOTimeout 1200
FcgidInitialEnv RAILS_ENV production
FcgidIdleScanInterval 10
FcgidBusyTimeout 1200

(en redémarrant Apache bien sur après chacune de mes modifications)

Et rien n'y fait, passé 120 s, le script s'arrête, je ne sais plus quoi modifier comme paramètre.... si quelqu'un à une idée, je suis preneur !

Merci d'avoir lu jusque la déjà et encore bravo Spipu pour tout ce boulot smile

2

http://stackoverflow.com/questions/4333985/how-to-extend-the-request-connection-timeout-on-apache-fastcgi-php-application-u

sinon, comme mis dans les commentaires, lancer la génération depuis php-cli peut être pertinent, ton client javascript interrogerais à intervalle régulier un second script php qui lui regarderais si la génération est terminé
et la le mec il le pécho par le bras et il lui dit '

3

Merci robinHood pour ta réponse, ce que je ne comprends pas, c'est que même en module Apache (modifié dans Plesk et rajout d'un redemarrage Apache, je repasse bien en module Apache en faisant un Phpinfo) j'arrive tjrs à un blocage à 120 s malgré tous les changements de paramètres dans php.ini (ou parfois directement dans les parametres dans plesk qui met à jour le php.ini en direct).
Normalement les parametres de timeout sont la justement pour palier les manques en cas de besoin de plus de temps d'execution ou de ressources non ? confus

Normalement on est d'accord sur le fait que ce n'est pas HTML2PDF qui me crée mon pb mais ca viendrait d'un pb de config serveur ?

4

ben en fait ca ne viens pas de php mais plutôt d'apache directement, celui ci à des ressources limités (en terme de processus cgi "libre") et pour éviter d'attendre comme un con la réponse d'un cgi qui se tape une boucle infinie il met un timeout

de la même manière il peut redémarrer tout seul les processus cgi enfant pour remettre à 0 les fuite mémoire (php ... -__-)

je ne sais pas comment il se comporte quant php est en module plutôt qu'en fast cgi mais à mon avis le principe est le même

html2pdf lui, bosse "dur", tu ne peut faire autrement qu'augmenter le temps max alloué, moi ce qui me choque plus c'est des choses comme prestashop qui te force à augmenter beaucoup de limites pour "rien", genre la page de traduction demande d'avoir minimum 1200 entrées dans le POST, wtf ?!!, la génération des thumbs d'images (et/ou conversion de l'ancien nommage vers le nouveau) te demande d'augmenter les limites du cgi (comme ton blème) fragmenter c'etais trop cher -___-

pour le mode fast cgi, regarde cette page et va toucher les valeur dans ton vhost apache
et la le mec il le pécho par le bras et il lui dit '

5

Merci beaucoup pour ces infos, je vais me pencher sur tout ca !

top