PHP 5.3에서 더 이상 사용되지 않는 오류 끄기


127

내 서버에서 PHP 5.3을 실행 중이고 WordPress 설치에서 이러한 오류가 발생하여 session_start ()가 중단되었습니다.

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 647

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 662

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 669

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 676

Deprecated: Assigning the return value of new by reference is deprecated in /home//public_html/hub/wp-settings.php on line 712

이것은 성가신 일이지만 화면 오류보고를 끄고 싶지 않습니다. 이러한 귀찮은 더 이상 사용되지 않는 경고를 어떻게 비활성화합니까?

WordPress 2.9.2를 실행 중입니다.


3.3.1이 현재 최신 버전의 워드 프레스가 아닙니까?
Shadur

그는 오래된 워드 프레스와 함께 오래된 PHP를 좋아하는 것 같습니다
Qchmqs

답변:


203

다음 함수를 호출하여 코드에서 수행 할 수 있습니다.

error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

또는

error_reporting(E_ALL ^ E_DEPRECATED);

감사합니다 Robus, PHP 오류보고도 중단됩니까?
atwellpub

6
아니요, 첫 번째 것은 기본적으로 PHP에게 ERROR / WARNING / PARSE / NOTICE 오류를 표시하도록 지시하고, 두 번째는 PHP에게 DEPRECATED 오류를 제외한 모든 표시를 지시합니다.
Robus

1
우분투에서 PHP 5.5.9 사용하기 "error_reporting = E_ALL & ~ E_DEPRECATED & ~ E_STRICT"효과가 없습니다 .... 그러나 제 예제에서는 "@mysql_connect ();" 트릭을 수행 :-(
molokoloco

@ molokoloco 당신은 두 번 잘못했습니다. 먼저 물건을 고치지 않았습니다. 당신은 방금 침묵했습니다. 두 번째로, 여전히 사용 mysql하는 것이 더 이상 사용되지 않습니다. mysqli
Marcin Orlowski

작동하지 않습니다. 어딘가에 덮어 쓰기 되었습니까? 이것을 어디에 두나요?
Alex

22

나는 이것을 적응시켜야했다.

error_reporting = E_ALL & ~E_DEPRECATED

21

응용 프로그램 작동을 중지시키는 오류 만 발생 시키려면 다음을 사용하십시오.

error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_DEPRECATED));

알림, 경고 및 더 이상 사용되지 않는 오류 표시가 중지됩니다.


13

이전의 모든 답변이 정확합니다. 아무도 PHP에서 모든 오류를 끄는 방법을 암시하지 않았으므로 여기에 언급하고 싶습니다.

error_reporting(0); // Turn off warning, deprecated,
                    // notice everything except error

누군가 유용하다고 생각할 수도 있습니다 ...


11

SEO 플러그인이 블로그 디스크 사용이 계획 한도를 초과한다는 경고가 많이 발생하는 비슷한 문제에 직면했습니다.

난 당신이 있음을 발견 한다 error_reporting를 명령을 포함 한 후 wp를-settings.php는 WP-config.php에 파일이 필요합니다

   require_once( ABSPATH .'wp-settings.php' );
   error_reporting( E_ALL ^ ( E_NOTICE | E_WARNING | E_DEPRECATED ) );

이 작업을 더 이상 수행하지 않으면 오류 또는 더 이상 사용되지 않는 줄이 오류 로그 파일에 추가됩니다!

WordPress 3.8에서 테스트되었지만 모든 설치에서 작동하는 것 같습니다.


9

wp-config.php 파일에서 상수 WP_DEBUG를 찾을 수 있습니다. 그것이 false로 설정되어 있는지 확인하십시오.

define('WP_DEBUG', false);

WordPress 3.x 용입니다.


7

PHP 구성 파일을 편집해야합니다. 줄 찾기

error_reporting = E_ALL

그것을 다음으로 대체하십시오 :

error_reporting = E_ALL ^ E_DEPRECATED

설정 파일에 접근 할 수 없다면 PHP WordPress 파일에 headers.php 파일을 추가하십시오 :

error_reporting(E_ALL ^ E_DEPRECATED);

이것을에 추가하는 것이 훨씬 좋습니다 wp-config.php. 구성 설정으로 편집하기위한 것입니다.
Nilpo

4

나는이 방법을 사용하는 경향이있다

$errorlevel=error_reporting();
$errorlevel=error_reporting($errorlevel & ~E_DEPRECATED);

이런 식으로 실수로 필요한 것을 끄지 않습니다.


1
통제력이 떨어집니다. 현재 구성된 것이 정확하다고 가정합니다. 구성이 겹치지 않도록 필요에 따라 직접 설정하는 것이 좋습니다.
Nilpo

이해하다. 모든 경우가 다릅니다.
realtebo

1
그럼에도 불구하고 이것이 가장 좋은 대답입니다. 그것은 질문에 직접 대답하는 유일한 것입니다. 부작용없이 E_DEPRECATED 만 비활성화하십시오.
Sygmoral

-2

이 오류는 PHP 버전을 변경할 때 발생합니다.이 오류 메시지를 억제하는 것은 매우 간단합니다.

DEPRECATED 오류 메시지를 표시하지 않으려면 index.php 파일에 아래 코드를 추가하십시오.

init_set ( 'display_errors', False);


감가 상각뿐만 아니라 모든 오류 메시지를 숨 깁니다.
tanaydin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.