> 백엔드 개발 > PHP 튜토리얼 > eaccelerator PHP54로 인해 스마트 업데이트 템플릿 500 오류가 발생합니다.

eaccelerator PHP54로 인해 스마트 업데이트 템플릿 500 오류가 발생합니다.

WBOY
풀어 주다: 2016-07-29 08:49:02
원래의
1441명이 탐색했습니다.

문제 배경

game.37.com 비즈니스의 smarty 템플릿을 업데이트한 후 서버에 여러 항목이 나타납니다. 500오류 기록입니다. PHP오류 로그에 보고된 오류는 다음과 같습니다.

[16-May-2016 15:46:01 Asia/Shanghai] PHP Fatal 오류: 67행의 /*/template_c/6aede77242b285842c628673e93d8bf1bd4bc6b0.file.server_list.htm.php에서 정의되지 않은 함수 content_57397470478e99_59376883() 호출

현상: 템플릿을 업데이트한 후 첫 번째 액세스 보고서는 5 00 오류, 접속이 다시 정상화되었습니다.

문제 해결

smarty의 일반적인 사용 경험에 따르면, 템플릿 업데이트 후 가 발생하지 않습니다. PHP500 오류를 보고했습니다. 따라서 서버의 환경적인 문제일 수 있다고 추측되며, 문제 해결을 위해 특별한 구성 환경이 나열되어 있습니다.

사전 출시 환경에서는 먼저 eAccelerator 가속기를 확인하세요. eAccelerator 가속기는 PHPopcode를 캐시하기 때문에 다음이 발생할 수 있습니다. 문제 .

테스트 환경에서 테스트

디버그 페이지: http://game.37.com/server_list_275.html
디버그 템플릿: main.htm
생성 smarty컴파일 파일:/*/template_c/6aede77242b285842c628673e93d8bf1bd4bc6b0.file.server_list.htm.php

marty 확인 🎜 > 템플릿을 업데이트한 후

의 컴파일된 파일과 2개 편집된 파일을 비교한 결과, PHP오류가 발생하는 이유는 이전 템플릿의 함수가 호출되었기 때문입니다. PHP의 예외 오류 메시지

PHP 치명적인 오류: /*/template_c/6aede77242b285842c628673e93d8bf1 bd4bc6b에서 정의되지 않은 함수 content_573a944d7a2608_39051073()에 대한 호출 0.file.server_list.htm.php 온라인 67smarty

작동 원리 다이어그램:

eaccelerator PHP54导致smarty更新模板500报错
smarty

template , smarty가 새로운 컴파일된 파일을 생성했지만 이전 파일의 내용은 템플릿 파일에서 호출된 함수의 이름을 포함하는 가속기에 의해 여전히 캐시됩니다. 액셀러레이터의 히트 로그를 열면 관련 기록을 볼 수 있습니다.

eaccelerator PHP54导致smarty更新模板500报错
솔루션

1) 구성 accelerator

filter

매개변수, smarty의 컴파일된 파일은 캐시되지 않습니다. eaccelerator.filter="!/*/template_c/*.php" 그러나 성능을 평가해야 합니다. 영향
2) 가속기
APC

로 변경 이유: 현재 사용되는 eaccelerator는 정식 출시 버전이 아닌 1.0-dev
버전입니다. . APC는 공식 소스에서 제공되며 stable 버전으로 다운로드할 수 있습니다. 위 내용을 포함하여 스마트 업데이트 템플릿 500 오류를 일으키는 eaccelerator PHP54를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿