2009-10-17 5 views
2

웹 사이트를 시작하려고합니다. php.ini를 사용하여 프로덕션 환경의 모든 설정을 준비합니다.생산 환경에서 output_buffering을 설정 또는 해제해야합니까?

output_buffering을 On, Off로 설정하거나 버퍼 제한 (예 : 4096)으로 설정할지 여부는 논쟁 중입니다. output_buffer를 켜거나 끄는 데 프로 나 사기범이 있습니까? 버퍼를 끄면 성능이 약간 향상되지만 결정을 내리기 전에 알아둬야 할 부분이 있습니까?

왜 꺼 두어야합니까?
왜 계속 켜 놓으시겠습니까?
왜 버퍼 한계로 두어야합니까?

답변

2

register_globals 및 과 달리 설정 지시어이므로 논쟁의 여지가 없습니다 꺼져 있습니다. 당신이 필요로 할 때를 대비하여 그것을 가능하게하십시오 (그것은 내가하는 일입니다). 내가 아는 한, 어쨌든 이렇게하는 것으로부터 발생하는 현저한 보안 구멍은 없습니다.

2

항상 화면에 항상 출력되는 정보를 저장하려고 할 때 OB 만 필요합니다. 예를 들어 OB는 포함 된 파일의 구문 분석 된 출력을 저장하는 데 적합합니다.

OB를 사용하지 않는 경우 다른 방법보다 효율적으로 진행할 수 있습니다. 여기에서 해당 항목에 대해 문의해야합니다.

4

출력 버퍼링의 가장 일반적인 용도는 실제로 스크립트가 print/echo/etc를 통해 페이지 내용을 "쓰는"것을 허용하는 것입니다. 아직 실제 페이지 내용이 있기 전에 헤더 만 보낼 수 있기 때문에 나중에 스크립트의 header() 호출이 제대로 작동 할 수 있습니다. 스크립트가 그러한 스크립트를 사용한다면 스크립트가 제대로 작동하는 모든 header() 호출로 작동하도록 출력 버퍼링을 유지해야합니다. (그렇지 않으면 멋진 "header() : 경고, 헤더 정보를 수정할 수 없습니다. 이미 헤더를 보냈습니다"메시지).

+0

글쎄, 내 전체 개발 과정에서 OB Off를 테스트 해왔다. 출력을 시작한 후에 헤더 정보를 보낼 필요가 없기 때문에 OB를 사용하지 말 것을 권한다. – justinl

관련 문제