문제

정적 HTML 페이지를 반환하도록 Apache를 구성하는 방법을 아는 사람이 있는지 궁금합니다. Apache가 PHP가 종료되었음을 확인할 수 있어야 합니까?이는 개발자에게 실행되어야 하는 PHP 페이지의 소스 코드가 아닌(최악의 경우) 오류 페이지를 표시하는 우아한 솔루션을 제공합니다.

감사해요.

도움이 되었습니까?

해결책

PHP 소스 코드는 Apache가 PHP 파일을 처리하도록 올바르게 구성되지 않은 경우에만 표시됩니다.즉, 적절한 핸들러가 정의되지 않은 경우입니다.

오류가 발생하면 표시되는 내용은 주로 display_errors 변수로 php.ini에서 구성할 수 있습니다.프로덕션 환경에서는 off로 설정하고 log_errors를 on으로 설정해야 합니다.

PHP가 실제로 종료되면 Apache는 ErrorDocument 지시어에 의해 정의된 페이지와 함께 적절한 HTTP 상태 코드(보통 500)를 반환합니다.죽지는 않았지만 루프에 갇히게 된다면 제가 아는 한 할 수 있는 일이 별로 없습니다.

다양한 오류 코드에 대해 다른 페이지를 지정할 수 있습니다.

다른 팁

일반적으로 이로 인해 500 오류가 발생한다고 가정하고 정적 페이지를 표시하도록 Apache 500 핸들러를 구성할 수 있습니다.

오류문서 500 /500error.html

다음 페이지에서 오류 처리기에 대해 읽을 수도 있습니다. 아파치 문서 사이트

진짜 문제는 PHP의 치명적인 오류로 인해 Apache가 500 코드를 반환하지 않는다는 것입니다.다음을 제외한 오류 E_FATAL 그리고 E_PARSE 원하는 대로 처리할 수 있습니다. set_error_handler().

PHP와 Apache를 사용하는 방법에는 두 가지가 있습니다.

1. Install PHP as an Apache module: this way the PHP execution is a thread inside the apache process. So if PHP execution fails, then Apache process fails too. there is no fallback strategy.

2. Install PHP as a CGI script handler: this way Apache will start a new PHP process for each request. If the PHP execution fails, then Apache will know that, and there might be a way to handle the error.

PHP를 설치하는 방법에 관계없이 PHP 실행이 실패하면 다음에서 오류를 처리할 수 있습니다. php.ini 파일.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top