2013-03-04 1 views
3

다음과 같이 나의 현재의 php.ini 파일을 중단하고 엄격한 기준 이외의 모든 오류를보고 설정됩니다PHP 오류 억제는 무시되고

error_reporting = E_ALL & ~E_STRICT & ~E_DEPRECATED 

이 설정을 사용하는 이유는 우리가 시급히 수행해야한다는 것입니다 웹 사이트를 호스팅하는 리눅스 서버에서 PHP 업그레이드; 비난받는 기능과 엄격한 표준 권고가 매우 빨리 170 개가 넘는 웹 사이트에 대한 오류 로그 파일을 채울 문제가 있습니다. 오류는 주로 정적으로 선언되지 않는 기능과 같은 작은 기능으로 인해 발생합니다. 결국 모든 사이트를 통과하여 문제를 해결하지만 그 동안 오류를 억제해야합니다.

내가 로컬 테스트 환경에 필요 (PHP 우리가 업그레이드를 찾고있는 버전 실행 - 5.4.3)을하고있어 문제는 오류가 여전히이 전에 인쇄 된 다음에 표시하는 것이 :

SCREAM: Error suppression ignored for 

누구든지 내게 오류 억제가 무시되는 이유와 오류를 올바르게 억제하는 방법에 대한 통찰력을 줄 수 있습니까?

미리 감사드립니다.

+0

어쩌면 어리석은 질문 일지 모르지만 Apache를 다시 시작 했습니까? –

+0

어리석은 질문이 아니고, 얼마나 자주 간과했는지 놀랍습니다. 하지만 예, 모든 WAMP 서비스가 다시 시작됩니다. –

답변

6

비명 확장 기능을 사용하고있는 것으로 보입니다. 매뉴얼에서 :

scream 확장을 사용하면 모든 오류가보고되도록 사일런스 오류 제어 연산자를 비활성화 할 수 있습니다. 이 기능은 ini 설정에 의해 제어됩니다.

Scream은 가능한 한 많은 오류 메시지를 표시하기위한 디버깅을위한 확장 프로그램입니다. 이는 @ 연산자를 무시하고 항상 가장 높은 error_reporating 레벨을 사용할 수있게함으로써 수행됩니다. (error_reporting 설정과 관계 없음). 그래서 당신은 당신의 php.ini 파일의 확장자를 비활성화해야합니다 : BTW

scream.enabled = off 

을 : 나는 코드 오류가있는 170 개 웹 사이트를 갖는 서버를 업데이트하지 않을 것입니다. 지금 똑딱 거리는 폭탄이야. 사이트별로 사이트를 새로운 PHP 버전으로 마이그레이션하는 것이 좋습니다. 어쩌면 이주 프로세스 중에 두 개의 서버가 병렬로 연결되어있을 수 있습니다.

+0

scream.enabled = php.ini 파일에 추가해도 오류 억제가 무시되지 않습니다. 현재 그 라인을 추가하는 것은 아무 것도하지 않습니다. 나는 이것이 일을하는 아주 지저분한 방법이지만, 단지 일시적인 것이라고 생각한다. 다른 옵션을 찾고 있으므로 CGI로 다른 PHP 인스턴스를 설치하는 것에는 운이 없었습니다. 어떤 아이디어? –

+1

나는 서버에서 PHP의 두 번째 인스턴스를 만들 수있었습니다. 제안에 감사드립니다. –

+0

@WilliamStewart 죄송 합니다만, 귀하의 첫 번째 의견은 인정하지 않았습니다. 서버의 실제 설정을 살펴 보지 않고 스크립트별로 'error_reporting'수준을 설정할 수 있음을 지적 할 수 있습니다. 어쩌면 170 개 사이트 중 하나 이상이이 일을하고 있을까요? 그러나 일반적인 PHP 오류 메시지에는 'Scream :'접두어가 없어야합니다. 두 번째 댓글에 대해 : 나는 좋은 생각이라고 생각합니다! – hek2mgl

관련 문제