Je suis en train de faire tourner un site sur php 5.4, avant cela, je courais mon site sur 5.3.8. Malheureusement, php 5.4 combine E_ALL
et E_STRICT
, ce qui signifie que mon réglage précédent pour error_reporting
ne fonctionne pas maintenant. Ma valeur précédente était E_ALL & ~E_NOTICE & ~E_STRICT
Devrais-je uniquement activer les valeurs une par une?
J'ai trop d'erreurs et les fichiers contiennent trop de code pour que je puisse les réparer.
Comme les commentateurs l'ont déclaré, l'option la meilleure consiste à corriger les erreurs, mais avec un temps ou des connaissances limités, cela n'est pas toujours possible. Dans votre changement php.ini
error_reporting = E_ALL
à
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
Si vous n'avez pas accès au php.ini, vous pouvez potentiellement le mettre dans votre fichier .htaccess:
php_value error_reporting 30711
C'est la valeur E_ALL (32767) et la suppression des valeurs E_STRICT (2048) et E_NOTICE (8).
Si vous n'avez pas accès au fichier .htaccess ou s'il n'est pas activé, vous devrez probablement le placer en haut de la section PHP de tout script chargé depuis un appel du navigateur:
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
Un de ceux-ci devrait vous aider à utiliser le logiciel. Les avis et les règles strictes sont des indicateurs de problèmes réels ou potentiels et vous constaterez peut-être qu'une partie du code ne fonctionnera pas correctement dans PHP 5.4.
J'espère que cela t'aides.
.htaccess php_value ne fonctionne que si vous utilisez PHP API de serveur en tant que module du serveur Web Apache. Utilisez la syntaxe IfModule:
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_value error_reporting 30711
</IfModule>
Si vous utilisez PHP utilisation de l'API serveur CGI/FastCGI
ini_set('error_reporting', 30711);
ou
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
dans votre code PHP ou PHP fichiers de configuration .user.ini | php.ini modification:
error_reporting = E_ALL & ~E_STRICT & ~E_NOTICE
sur votre hôte virtuel, niveau serveur.
Si vous devez également désactiver E_DEPRACATED, utilisez:
php_value error_reporting 22527
Dans mon cas, CMS Made Simple se plaignait "E_STRICT est activé dans le rapport sur les erreurs" ainsi que "E_DEPRECATED est activé". L'ajout de cette ligne à .htaccess a résolu les deux problèmes de configuration.
Cela a fonctionné pour moi, quand j'ai mis error_reporting à deux endroits en même temps
quelque part dans PHP code
ini_set('error_reporting', 30711);
et dans le fichier .htaccess
php_value error_reporting 30711
Attention, vous devrez peut-être redémarrer LAMP, Apache ou ce que vous utilisez pour que cela prenne effet. Nous avons eu la cervelle pendant un moment sur celui-ci, ne semblant avoir aucun effet jusqu'à ce que les services soient redémarrés, probablement parce que le site Web était en cache.