드루팔에 매우 긴 본문(BODY)을 입력하면 보이지 않는다?!

드루팔에 매우 긴 본문(BODY)을 입력하면 보이지 않는다?

오늘 다소 황당한 일을 겪었다.

드루팔에 매우 긴 본문(BODY)을 입력했더니 본문이 표시되지 않았다.
그 본문을 조금씩 잘라나가니 어느 순간에 잘 보이기 시작했다.
입력하고자 했던 컨텐츠 본문의 길이는 대략 47만자(한글/일본어/숫자/영문 포함) 정도였는데,
본문을 아주 많이 줄이니까 그제서야 보였다. 문제다.

그래서 찾아보니 http://drupal.org/node/133188 에 같은 증상 및 해답이 있었다.
문제 제기한 사람도 영문 기준으로 3만자 이하로 되면 잘 보이기 시작한다는 것이다.
해당 기사의 댓글 중에 php.ini 설정 또는 Drupal의 settings.php 를 건드리면 해결된다는
것이 있어 적용해 보았다. http://drupal.org/node/133188#comment-536548

드루지기는 php.ini를 건드리기 싫어서, sites/default/settings.php 를 수정하기로 했다.

ini_set('pcre.backtrack_limit', 1000000);
ini_set('pcre.recursion_limit', 1000000);

이와 같은 코드를 추가하고 긴 본문을 넣었더니, 문제가 해결됐다!
주의) 기존에 썼던 긴 본문은 다시 한번 더 편집/저장을 해 주면 보이기 시작한다.

근데 pcre가 뭔가 싶어 더 공부해 보기로 했다.
놀랍게도 Perl Compatible Regular Expressions의 약자인 듯 했다.
아니 PHP로 만든 드루팔에 영향 미치는 펄 호환 환경설정이 있나? 처음 보았다.

(관련 자료)
http://drupal.org/node/225335
http://jp2.php.net/manual/en/book.pcre.php
http://www.php.net/manual/en/pcre.configuration.php

위 ini_set로 인해 긴 본문의 Line Break 처리에 영향을 주는 모양이다.
우리가 입력한 47만자도 개행 처리는 잘 했는데, 아무도 리눅스/윈도우즈 머신간의
개행(CRLF) 처리 차이로 인해 PCRE 환경 설정이 필요한 듯 했다.
정확한 원인 분석은 아니므로 누군가 더 잘 아시는 분이 댓글 주시면 고맙겠다.

여하튼 해결이 되서 다행이다.

Your rating: None 평균 : 4 (1 vote)