apache + php 에서 아무런 에러 없이 페이지가 죽는 현상. ERR_CONNECTION_RESET

URL 이 긴 경우(약 250글자 이상)
http 에러나 php 에러 없이

ERR_CONNECTION_RESET (크롬)
INET_E_DOWNLOAD_FAILURE (IE)

같은 에러가 나오는 경우

----=---------
원인
YII 1.1 에서
CHttpRequest.decodePathInfo()
메소드 속
preg_match('%^(?:
   [\x09\x0A\x0D\x20-\x7E]            # ASCII
| [\xC2-\xDF][\x80-\xBF]             # non-overlong 2-byte
| \xE0[\xA0-\xBF][\x80-\xBF]         # excluding overlongs
| [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}  # straight 3-byte
| \xED[\x80-\x9F][\x80-\xBF]         # excluding surrogates
| \xF0[\x90-\xBF][\x80-\xBF]{2}      # planes 1-3
| [\xF1-\xF3][\x80-\xBF]{3}          # planes 4-15
| \xF4[\x80-\x8F][\x80-\xBF]{2}      # plane 16
)*$%xs', $pathInfo)
부분이 있음


저 부분 preg 동작이 recursive 하게 동작하며
설정에는 100000 번 리커시브하게 돌 수 있음

문제는 처리되는 문자열이 길어지면
이게 아파치+php 조합시 저 부분이 계속계속 메모리로 쌓이고 그로 인해서 아파치쪽에 문제가 생기는 듯함.
그래서 http 나 php 에러가 나오지 않고, 그냥 페이지가 죽어버림.

해결법은 메모리 문제가 안 날 정도로 리커시브 동작을 제한 하는 것.

ini_set("pcre.recursion_limit", "100");
처럼 하면 에러 안 날 것임.

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📷 갤러리형
제목
[기본형] HTML (with 부트스트랩5.3 , jquery 3.7, vue.js)
유용한 리눅스(LINUX) 명령어
[공지] 기술 게시판
3.31
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.18
4.19
4.20
4.21
4.22
4.23
4.24
4.25
4.26
4.27
4.28
4.29
4.30
5.1
5.2
5.3
5.4