Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /homepages/14/d213344623/htdocs/blog/wp-content/plugins/deans_code_highlighter/geshi.php on line 2146

Depuis quelques jours, les forums phpBB 3.x que j’administre ne bénéficiaient plus des fonctions « Recherche » et « Voir les nouveaux messages »…En effet, un message signifiant que « La recherche a été désactivé. Veuillez réessayer plus tard. » narguait les utilisateurs, quelle que soit la recherche effectuée.

Après que l’on m’a signalé (oui, je sais, on dirait que c’est une faute de français, et pourtant, non, après « après que », on met bien de l’indicatif !) ce problème à plusieurs reprises, j’ai décidé de me pencher sur ce dysfonctionnement. Je vous livre donc la solution pour retrouver les bénéfices de la recherche sur vos forums phpBB 3.x.

Rapidement, un petit topo sur l’investigation. J’ai choisi de débugger celà à partir de la fonction « Voir les nouveaux messages ». Lorsque l’on clique sur ce lien sur le forum (une fois identifié), on se rend compte que c’est la page search.php qui est appelée, avec pour paramètre « search_id=newposts ». En fouillant dans le fichier en question, on arrive rapidement à ces lignes de code :

  1. // Check search load limit
  2. ‘limit_search_load’‘limit_search_load’‘S_NO_SEARCH’‘NO_SEARCH_TIME’);
  3. }

On voit ainsi rapidement que si la valeur contenue dans « user->load » est supérieure au paramètre « limit_search_load » (stocké dans la base de données, dans la table « phpbb_config »), alors un message affichant que la recherche est désactivée est affiché.

En allant ainsi fouiller dans les paramètres de configuration de phpBB, via le panneau de contrôle d’administrateur, on peut jouer sur ce paramètre. Il se trouve dans l’onglet « Général », puis dans la section « Configuration du serveur », lien « Paramètres de la recherche ». L’information liée à ce paramètre indique :


Si la charge du système dépasse cette valeur pendant 1 minute, la recherche sera désactivée, 1.0 signifie ~100% d’utilisation du processeur. Ne fonctionne que sur les serveurs UNIX.

Toute valeur inférieure à 3 provoque sur le forum hébergé chez 1and1 (sur un serveur mutualisé Unix, plan Pack Perso) le message d’erreur comme quoi la recherche est désactivée. Avec une valeur supérieure ou égale à 2, tout fonctionne impeccable !

Conclusion : tenez-moi au courant, mais visiblement, mettre une valeur supérieure à 3 suffit pour faire fonctionner la recherche. La vitesse d’exécution me laisse penser que ce n’est pas une valeur qui provoque une surcharge du serveur. En fait, auparavant, je n’avais pas rencontré ce problème sur les versions plus anciennes. Ainsi, je me demande s’il ne s’agit pas d’un bug de conversion de la valeur. Si l’on réfléchit, avec « 3 », ça fonctionne, hors, d’après l’explication, cela signifierait que l’on autorise une charge de 300 % sur le(s) processeur(s) du serveur…ce qui est évidemment impossible (sauf si l’on parle de load sur une machine multiprocesseurs et non pas de pourcentage de charge). Bref, si vous avez une explication à fournir, n’hésitez pas à m’en faire part !