it-swarm-ko.tech

PHP 오류를 어떻게 방지합니까?

Drupal의 모든 PHP 오류, 경고 및주의 사항을 침묵시키는 방법이 있습니까?) 이들은 개발 된 사이트에서 유용하지만 보안 상 위험이 크며 사이트를 실제로보기에 좋지 않게 만듭니다.

Drupal 6 admin/settings/error-reporting 페이지에서 Drupal 오류가 화면에 기록되는 것을 막을 수 있음)를 알고 있습니다. Drupal 7?없는 것 같습니다.

32
drupal_stuff_alter

Drupal 7)에서와 같이 경로는 admin/settings/error-reporting에서 볼 수있는 것과 동일한 페이지가 이제 admin/config/development/logging에 있습니다.

screenshot

29
kiamlaluno

제안한대로 Administration » Configuration » Development (/admin/config/development/logging)에서 오류 메시지를 표시하지 않도록 설정 할 수 있지만 오류/알림을 완전히 비활성화하지 않습니다.

Drupal 7은 E_ALL을 시행하므로 여전히 syslog에 기록되며 최근 로그에서 볼 수 있습니다 웹 사이트 성능에 영향을주기 때문입니다.

통지를 완전히 비활성화하려면 settings.php 또는 php.ini 파일에 다음 줄을 추가해야합니다.

ini_set('error_reporting', E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);

통지 및 코딩 표준 경고를 제외한 모든 오류를 표시하십시오.

권장하지 않는 모든 PHP 오류를 모두 없애려면 설정 파일을 추가하려고 할 수 있습니다.

error_reporting(0); // Disable all errors.

참조 : error_reporting()


책임 Drupal 7 개의 E_ALL 로깅 핵심 코드 (파일 : includes/bootstrap.inc)) :

// Enforce E_ALL, but allow users to set levels not part of E_ALL.
error_reporting(E_ALL | error_reporting());

또한보십시오:

18
kenorb

사람들이 아는 것이 도움이 될 수 있다고 언급하지 않은 한 가지는 Drupal 7은 모든 로컬 시스템 오류보고 수준을 무시하므로 .htaccess 또는 php.ini를 사용하여 설정할 수 없음) Drupal의 PHP 오류보고 수준.

D8에는이를 위해 제안 된 패치가 있지만 현재 D7에서는 관리자 페이지 kiamlaluno에 설정된 3 개의 오류 마스크 (모두, 없음 또는 오류 및 경고)로 제한되어 있습니다.

4
forest

설정은 항상 admin/config/development/logging :)에 있습니다.

3
Remon

왜 Drush 메소드가 문서화되지 않았는지 모르겠지만 빌드 스크립트에 있습니다.

drush vset error_level 0

... 오류 메시지를 로그에 저장하지만 화면에는 표시하지 않습니다.

2
Matt Fletcher

위에 게시 된 솔루션 kenorb에 따옴표를 추가해야 할 수도 있습니다.

ini_set('error_reporting', 'E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR');
1
Greg Lund-Chaix

이를위한 모듈이 있습니다 :

https://www.drupal.org/project/errorlevelpermission

프로젝트 페이지에서 :

그래서 당신은 할 수 있습니다

  • 사이트 빌더 역할 (또는 특수 디버거 역할)이 오류 및 알림을 볼 수 있습니다
  • 다른 사람들이 오류와 통지를 보지 못하게하십시오.
0
geek-merlin