2012-03-15 10 views
7

Por razones fuera de mi control no puedo establecer display_errors = 0 y log_errors = 1 en php.ini en mi servidor de producción. Sé que puedo configurar error_reporting(0); para suprimir por completo todos los mensajes de error, pero esto afecta tanto a los errores de registro como a los errores mostrados. Esperaba que hubiera un equivalente a establecer display_errors = 0 y log_errors = 1 en tiempo de ejecución. es posible? Gracias.Configuración display_errors = 0 y log_errors = 1 sin php.ini

+0

Probablemente desee hacerlo en un .htaccess, por lo que las directivas están vigentes antes de que el script incluso comience a analizar. Eso mantendrá los errores fatales fuera de la vista también. –

+0

Esto solo se puede hacer a través de Apache como módulo. – erm3nda

Respuesta

11

Ambos son PHP_INI_ALL, por lo que solo puede usar ini_set en tiempo de ejecución.

ini_set('display_errors', 0); 
ini_set('log_errors', 1); 

Ver http://php.net/manual/en/ini.list.php

+0

¿Quiere decir que esto solo debería establecerse una vez para esa sesión y no en cada página? – keybored

+0

@keybored no, significa que está configurado cuando se ejecutan estas dos líneas de código y luego permanece activo mientras el script está activo, p. para esa única solicitud. no tiene nada que ver con las sesiones. – Gordon

+0

Ok, muchas gracias. :) – keybored

3

probar esto:

ini_set('display_errors', 0); 
ini_set('log_errors', 1); 
+0

Veo el doble: S – erm3nda

0

Si está utilizando PHP como módulo y no puede utilizar la directiva php.ini principal ni php.ini overrided en la carpeta deseada, y no lo habilitará en el archivo php, puede intentar usar las habilidades de .htaccess.

En la parte superior de la carpeta que contiene la aplicación, poner un archivo .htaccess con: php_flag display_errors 0

solo debe aplicarse a la pantalla de salida de PHP no los registros.

De todos modos, la solución provista sobre ini_set() se aplicará solo a las páginas que la contienen. Nota: si tiene includes, el valor display_error funcionará cuando lo analice. Pero si accede directamente, no funcionará.

Cuestiones relacionadas