web-dev-qa-db-fra.com

"L'allocation de la mémoire JIT a échoué, PCRE JIT sera désactivé" avertissement dans PHP 7

Je passe mon site Web de PHP v.5 installé sur un compte d'hébergement Web partagé (chez DreamHost) pour fonctionner sur PHP 7.3.11. Après transition, j'ai commencé à remarquer que de temps en temps je reçois ces avertissements:

Avertissement: preg_match_all (): L'allocation de la mémoire JIT a échoué, PCRE JIT sera désactivé. Cela est probablement dû à des restrictions de sécurité. Accordez PHP permission d'allouer de la mémoire exécutable, ou définissez pcre.jit = 0

Le dernier provenait de cette ligne de code qui était censée remplacer les balises spéciales dans mon HTML publié pour la page:

if(preg_match_all("/\[".$tagBegin."(\S)+\]/U", $html, $matches, PREG_OFFSET_CAPTURE) !== false)

Existe-t-il quelque chose que je dois faire différemment dans la v.7.3 pour éviter cet avertissement?

2
c00000fd

Pour moi, j'ai ajouté pcre.jit=0 au fichier php.ini dans [Pcre] et cela a très bien fonctionné.

2

Vous devriez pouvoir conjurer cet avertissement en utilisant ini_set pour changer la valeur de configuration suggérée par le message d'avertissement lui-même:

ini_set("pcre.jit", "0");

Assurez-vous d'exécuter cette ligne de code avant toute utilisation d'expressions régulières.

0
Alan H.