WP_DEBUG가 설정되지 않았지만 여전히 경고가 표시됩니다


14

WP_DEBUG가 설정되어 있지 않으면 알다시피 경고가 표시되지 않습니다. 그러나 일부 서버의 일부 사이트에서는 여전히 몇 가지를보고 있습니다. WP_DEBUG가 설정된 경우 표시되는 모든 경고가 아니라 일부 경고 만 표시됩니다.

php.ini에서 오류 수준을 변경하려고 시도했지만 경고 표시 여부에 영향을 미치지 않는 것처럼 보이지만 서버마다 다른 양으로 표시됩니다 (예 : 개발 경고, 준비 경고 및 생산에 대한 몇 가지 경고).


이것들은 반드시 경고입니까, 아니면 치명적인 오류입니까?
TheDeadMedic 2016 년

나는 똑같은 문제를 겪었습니다. 제 경우에는 GravityForms의 WARNINGS였습니다. 경고 출력은 다음과 같습니다. 경고 : "계속"타겟팅 스위치는 "break"와 같습니다. "계속 2"를 사용 했습니까? /plugins/gravityforms/common.php-아래의 Logic Digger의 답변은이 첫 번째 시도를 해결하기 위해 복사 / 붙여 넣기 작업을 수행했습니다. 감사합니다.
OG Sean

답변:


8

WP_DEBUG는 PHP 오류 출력에 영향을 미치지 않습니다. error_reporting 설정 외에도 php.ini 파일에서 display_errors = 0을 설정하십시오. 개발을 위해 기본적으로 활성화되어 있습니다. 그러나 프로덕션 서버에서는이를 원할 것입니다.


wp-includes / load.php를 바꾸려면 : if (WP_DEBUG) error_reporting (E_ALL). 그러나 아마도 여러 플러그인이 error_reporting 및 display_errors로 인해 방해해서는 안되는 것처럼 보입니다.
tomdxw 2016 년

1
아-맞아, php.ini에서 display_errors가 On으로 설정되었습니다. 방금 WP_DEBUG가 모든 오류를 처리했다고 가정했습니다. 감사합니다.
tomdxw 2016 년

22

바꾸다

define('WP_DEBUG', false);

이것으로 :

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);

4
답변에 설명을 추가하십시오.
fuxia

화면상의 오류는 꺼져 있지만 서버의 오류 로그에서 볼 수 있습니다.
user2060451

4

이 행이 이미 false로 설정되어있을 수도 있습니다. 이 경우 다음 코드가 표시됩니다.

define('WP_DEBUG', false);

두 경우 모두이 줄을 다음 코드로 바꿔야합니다.

ini_set('display_errors','Off');
ini_set('error_reporting', E_ALL );
define('WP_DEBUG', false);
define('WP_DEBUG_DISPLAY', false);

변경 사항을 저장하고 wp-config.php 파일을 서버에 다시 업로드하는 것을 잊지 마십시오.


1
덕분에 프런트 엔드에 경고가 표시되지 않았습니다. WP_DEBUG는 이미 false로 설정되었습니다.
OG Sean

1

(위)에 있는 모든 오류 경고 / 알림 을 비활성화 / 억제 하십시오 wp-config.php. 어쨌든 : 오류는 나쁘지 않습니다. 코드를 수정할 수있는 기회를 제공합니다.


error_reporting으로 인해 다른 사람들의 플러그인이 원인이라고 생각합니다.
tomdxw 2016 년

1

WordPress 환경의 경우 ini_setWordPress Core에서 제공하는 정의 된 상수가 이미 달성하고 있기 때문에 일반적으로 사용할 이유가 없습니다 . PHP가 작동하는 방식은 CMS (WordPress) 내에서, 개별 스크립트 내에서, 심지어 사용자 별 또는 디렉토리별로 (웹 호스트 및 에이전시의 좌절감에 따라 ) 특정 설정을 무시할 수 있다는 것입니다.

WordPress에서 오류가 페이지에 표시되지 않도록하려면 실제로 필요한 설정은 다음과 같습니다.

define('WP_DEBUG', false);

... WP_DEBUG가 비활성화되면 하위 옵션이 비활성화됩니다.

define('WP_DEBUG_DISPLAY', false);
define('WP_DEBUG_LOG', false);

혼란스러운 WP_DEBUG_LOG옵션 debug.log은 디렉토리 내에서 의 생성만을 나타내며 wp-content다른 로깅 설정 등에 영향을주지 않습니다.

다시 한 번 WordPress의 설정은 기본 PHP 설정을 무시할 수 있으므로 wp-config.php다른 WP 구성 요소보다 먼저로드되는 파일의 올바른 설정만큼 PHP 설정이 중요하지 않습니다 .

즉, 프로덕션 환경에서 아래와 같은 기본 설정을 구현하는 것이 좋습니다.

error_reporting = E_ERROR | E_WARNING | E_PARSE
display_errors = Off
display_startup_errors = Off
log_errors = On
error_log = /var/www/logs/error.log
log_errors_max_len = 1024
ignore_repeated_errors = On
ignore_repeated_source = Off
report_memleaks = On
xmlrpc_errors = 0
html_errors = Off

완전한 예 는 Nginx 및 PHP-FPM에 최적화 된 SlickStack php.ini 파일을 참조하십시오 .

한 시간 동안 조사한 결과 플러그인 (또는 테마)이 이전에 php.ini및 에서 설정 한 다양한 오류 처리 설정을 재정의하고 있음을 깨달았습니다 wp-config.php. 이를 방지하는 유일한 방법은 PHP 설정을 "해킹"하려는 WordPress 플러그인 또는 테마를 제거하거나 확장 프로그램이 CMS의 디버그 옵션을 재정의하는 것이 매우 좋지 않기 때문에 제거하도록 지시하는 것입니다.

SlickStack, 우리는 배쉬 스크립트를 생성하는 "플래그"어떤 ini_seterror_reporting에서 PHP 파일에서 라인 /themes//plugins/뮤 플러그인 (PHP 스크립트) 표시 WP 관리 대시 보드 등 "해킹"의 목록을 것을를 사용하여 이러한 경우를 강조 표시하여 디렉토리.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.