jeremyzilar
Estoy tratando de deshabilitar el informe de errores ESTRICTO en WordPress 3.7 a través de mi archivo php.ini después de actualizar mi computadora a OS X 10.9. Estoy ejecutando la versión 5.4.17 de PHP, la que viene con Mavericks.
En mi archivo wp-config.php, he habilitado define('WP_DEBUG', true);
que funcionaba bien antes de actualizar mi sistema operativo y, como resultado, PHP.
En el archivo php.ini, intenté configurar error_reporting en:
error_reporting = E_ALL
o
error_reporting = E_ALL & ~E_STRICT
o
error_reporting = E_ALL & ~E_DEPRECATED
incluso
error_reporting = 0
Pero los errores siguen apareciendo.
display_errors está desactivado:
display_errors = Off
Después de cada cambio en el archivo, reinicio apache y httpd con estos dos comandos:
httpd -k restart
apachectl restart
El archivo php.ini que estoy editando es el mismo que se indica en phpinfo() Y solo para asegurarme de que se están realizando los cambios, he estado editando el valor de error_prepend_string:
error_prepend_string = "<span style="color: #ff0000">ERROR: "
y esos cambios están llegando en el error.
Cualquier idea sobre cómo depurar esto sería muy apreciada.
adelval
En WordPress 3.7, la función wp_debug_mode
(definido en wp-includes/load.php
y llamó desde wp-setings.php
) conjuntos error_reporting( E_ALL )
.
Ya que wp-settings.php
se carga al final de wp-config.php
no puede cambiar esta configuración de wp-config.php
(o más bien, puede, pero será anulado).
Una solución es crear un “complemento de uso obligatorio”, es decir, un archivo .php ubicado en el /wp-content/mu-plugins/
carpeta que contiene:
<?php
if (WP_DEBUG && WP_DEBUG_DISPLAY)
{
ini_set('error_reporting', E_ALL & ~E_STRICT & ~E_DEPRECATED);
}
-
Esto funciona parcialmente, porque ocurre algún error antes de que se cargue functions.php. +1 por la idea sin embargo 🙂
– frnhr
15 de noviembre de 2013 a las 18:55
-
No vi ningún error en mi prueba (limitada), aunque supongo que puede suceder al cargar complementos. Mirando a Orden de carga de WordPresstal vez una solución sea crear un complemento muy simple para configurar error_reporting, asegurándose de que se cargue antes que cualquier otro complemento (por defecto, se cargan en orden alfabético).
– adelval
16 de noviembre de 2013 a las 20:16
-
Para mejores resultados, use la solución provista por adelval, pero colóquela en un archivo .php como:
/wp-content/mu-plugins/errorreporting.php
. “mu” significa “must-use” y se cargará antes que el tema y los complementos, pero después de que se haya configurado el informe de errores. Tampoco hace falta que lo actives, ya que son de “uso obligatorio”.– Radley Sustaire
28 de enero de 2014 a las 20:17
-
Gracias @Alexandre por la edición, mejora la respuesta al incorporar el comentario de RadGH
– adelval
28 de agosto de 2015 a las 17:26
-
Esto tampoco me ayudó, ya que el mensaje de error obsoleto se realiza incluso antes de que llegue al complemento mu. En mi caso el problema está en wp-db.php, donde el error es: Obsoleto: mysql_connect()
–Kim Steinhaug
11 de febrero de 2018 a las 15:28
jacob
Encontré que solo
error_reporting = off
funciona, ya que los errores ESTRICTOS se han convertido en parte de TODOS a partir de PHP 5.4, lo cual es molesto.
Si establece WP_DEBUG en ‘falso’ en el archivo wp-config.php. Estos no afectan a su sitio web.
Bot el problema es que arriba no funciona en algún momento. Eso puede suceder en alojamientos baratos/compartidos que obligan a mostrar ERRORES, advertencias y avisos de PHP. En ese caso, puede eliminar esta línea de su archivo wp-config.php:
define('WP_DEBUG', false);
y coloca esto:
ini_set('log_errors','On');
ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
en mi caso esta funcionando.
Dentro de phpinfo() ¿cuál es el valor de error_reporting?
– Jacobo
25 de octubre de 2013 a las 1:36
phpinfo()
también mostrará los valores de tiempo de ejecución locales y maestros reales paraerror_reporting
ydisplay_errors
en el Centro sección, por favor comparte lo que muestran.– Niels Keurentjes
25 de octubre de 2013 a las 1:37
@Jack El Valor local es ‘32767’. los Valor maestro es ‘sin valor’.
– jeremyzilar
25 de octubre de 2013 a las 1:37
Creo que es… error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT si mi memoria no me falla
– xlordt
25 de octubre de 2013 a las 1:38
También,
error_reporting(0);
no va a funcionar, por supuesto, en php.ini, eso debería sererror_reporting = 0
. Pero32767
ciertamente incluye E_STRICT (2048). O no está editando el archivo de configuración php correcto, o su código restablece el valor en algún lugar antes delphpinfo()
llamar.– Niels Keurentjes
25 de octubre de 2013 a las 1:39