2011-10-20 2 views
2

PHP 5.2.17을 실행하는 가상 호스트가 여러 개 있습니다. 정기적으로 스크립트는 임의적으로 제대로 작동하지 않게됩니다. 스크립트가 자동으로 실패하고 브라우저가 파일을 다운로드하려고 시도합니다. 내가 찾은 유일한 해결책은 어리 석다.PHP 5.2 설명 할 수 없음 - 파일 실행이 제대로 실행되지 않습니다.

문제의 요청에 대해 실행 된 모든 파일을 검토해야합니다. 각 파일에서 빈 줄 또는 추가 공간과 같은 임의의 변경을 수행하고 파일을 저장합니다. 모든 저장 후 새로 고침을하고 결국에는 문제를 일으키는 파일을 찾았고 모든 것이 다음 번에 나타날 때까지 다시 나타납니다.

내 직감은 function_exists 함수와 관련이 있다는 것입니다. 엉망인 파일에서 공통 분모 인 것처럼 보이며 그 기능은 매우 드문 경우입니다. 내 추측을 뒷받침 할만한 것을 찾지 못했고 그 증거를 찾을 수 없다.

+1

PHP가 출력하는 Content-Type을 변경하는 이상한 오류 함수를 사용하고 있습니까? 브라우저는 파일을 렌더링 할 수없는 경우에만 파일을 다운로드합니다. Content-Type이 text/html이 아닌 다른 파일임을 제안합니다. – animuson

+0

다음 번에 제가 그런 식으로 다운로드하는 이유를 살펴 보겠습니다.하지만 그건 진짜 문제가 아닙니다. 이것은 수정되지 않고 몇 주 또는 몇 달 동안 올바르게 실행 된 파일에 발생합니다. – offtehcuff

답변

2

당신은 PHP 최적화/cacher/가속기 (젠드 최적화, eAccelerator, APC, XCache를, 이온 큐브 등)의 일종에 문제가

그 작은 양만큼 파일을 변경하는 유일한 시간이다

차이를 만들 것입니다.

일반적으로 PHP 파일에 액세스 할 때마다 바이트 코드로 변환 된 다음 PHP에 의해 처리됩니다.

액셀러레이터 (다른 것들 중에서)는 파일을 처음으로 액세스 할 때 바이트 코드를 저장하고 파일이 변경되었다고 생각하면 바이트 코드 캐시 만 새로 고칩니다.

+0

그건 의미가 있습니다. 필자는 include_once 대신 function_exists가 여러 번 포함 된 파일을 처리하는 방식과 관련이 있다고 생각합니다. 최악의 부분은 가난한 사람들이 함수 호출이나 여러 가지 목적으로 여러 번 포함되어 있다는 것입니다. – offtehcuff

+0

여기에 APC가 있습니다. 정말로 내가 할 수있는 일은별로 없다. 도와 주셔서 감사합니다. OT : 짧은 편집 시간은 어리 석다. – offtehcuff