글쓴사람 즐기자
글쓴시간2008년 9월 23일 오후 6시 22분 42초
    제목HPUX에서 오류가 발생합니다.
안녕하세요.

Template_를 아주 소중하게 사용하고 있는 사용자입니다.

컴파일에 관련한 오류가 발생하여 도움을 요청드립니다.

개발환경은 Linux/PHP 5.2.2 를 사용하여 개발하였고,

운영환경은 HPUX/PHP 5.2.2 입니다.

그런데 Linux환경에서는 잘되던 페이지가 HPUX환경에서는 특정페이지가

컴파일이 되지 않습니다.

HTML코드 상에서 디버깅 해봤더니 div 내에 어떤 일정한 내용을 초과할 때

발생하는것으로 파악되었습니다.

예) <div style="div의 style">
       <table>
          <tr>
             <td>내용1</td>
          </tr>
       </table>
     </div>
   => 위의 내용까지는 컴파일시 잘됩니다.

   그런데 <tr><td>내용2</td></tr>를 추가하면 컴파일 되지않습니다
   (위의 내용은 단지 현상을 설명드리기 위한 샘플코드이며 실제로는 이것보다 훨씬 많은 내용들이 들어갑니다.)

컴파일시 컴파일 log등을 쌓아서 디버깅 해볼 수는 없을 까요?

어떻게 디버깅해볼 수 있을까요?


부탁드리겠습니다.


좋은 하루 되십시오.

실제 내용을 올려드리겠습니다.

<table width=100% cellpadding=0 cellspacing=1 border=0 class=iborder>
 <tr>
   <td width=100% colspan=2 class=ititle height=22>
     <table width=100% cellpadding=0 cellspacing=0 border=0>
       <tr>
       <td align=center>검색할 항목을 체크하고 검색어를 입력하세요.</td>
       <td align=right><input type=button value="전체선택" class=buttonN></td>
       </tr>
     </table>
   </td>
 </tr>
 <tr>
   <td class=idata valign=top>
     <table cellpadding=0 cellspacing=0 border=1>
       <tr>
         <td><input type=checkbox name="s6834s" value="ss">CPU</td>
         <td style="padding-left:5px"><input type=text name="sdds" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="s886s" value="ss">CPU</td>
         <td style="padding-left:5px"><input type=text name="sfs" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="s77s" value="ss">CPU</td>
         <td style="padding-left:5px"><input type=text name="sgs" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="s647s" value="ss">CPU</td>
         <td style="padding-left:5px"><input type=text name="sasds" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="s6346s" value="ss">CPU</td>
         <td style="padding-left:5px"><input type=text name="sqers" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="s235s" value="ss">CPU</td>
         <td style="padding-left:5px"><input type=text name="sfds" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="s53s" value="ss">CPU</td>
         <td style="padding-left:5px"><input type=text name="sdfgws" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="s124s" value="ss">CPU</td>
         <td style="padding-left:5px"><input type=text name="seres" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
     </table>
   </td>
   <td class=idata valign=top>
     <table cellpadding=0 cellspacing=0 border=0>
       <tr>
         <td><input type=checkbox name="ss123" value="ss">RAM</td>
         <td style="padding-left:5px"><input type=text name="werwqss" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="nsdss" value="ss">RAM</td>
         <td style="padding-left:5px"><input type=text name="swe6s" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="sqwes" value="ss">RAM</td>
         <td style="padding-left:5px"><input type=text name="serys" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="ss123" value="ss">RAM</td>
         <td style="padding-left:5px"><input type=text name="werwqss" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="nsdss" value="ss">오류발생 Row</td>
         <td style="padding-left:5px"><input type=text name="swe6s" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
       <tr>
         <td><input type=checkbox name="sqwes" value="ss">오류발생 Row</td>
         <td style="padding-left:5px"><input type=text name="serys" value="ss" class=inputbox style="width:100px;"></td>
       </tr>
     </table>
   </td>
 </tr>
</table>

위의 테이블에서 오늘쪽 cell의 "오류발생 Row" 를 추가만 하면 컴파일 되지 않습니다. ㅠ.ㅠ

위의 코드는 template를 적용하지 않은 상태의 코드입니다.
template을 적용했을 경우는 오류가 발생하지 않는습니다만, 그래도 위와 같은 코드가 있을 수 있지 않을 까요?
관리자 내용을 보니 언더바 변환기가 해석 오류를 낼 이유는 없는데요..

php.ini 등에 설정된 메모리제한도 확인해 보시고.. php 가 출력하거나 로그로 남긴 오류메세지를 보여주시기 바랍니다.
08-09-23 21:57
즐기자 냉..혹시나 해서 메모리를 256M으로 설정했봤는데도 오류가 개선되지 않습니다. php의 error log를 파일로 쌓게 했는데 아무것도 않쌓입니다.
단지 apache의 error_log에는 다음과 같은 오류가 쌓입니다.
[Wed Sep 24 16:51:53 2008] [notice] child pid 2491 exit signal Illegal instruction (4)
08-09-24 16:51
관리자 메모리는 128이면 충분할거 같습니다.. 그 문제는 아닌가 보네요.

log에 있는 메세지로 구글링을 해보니 pcre 등등 php 모듈 설치상태에 따라 그런 에러가 생긴다고 하는데.. 관련 Q&A 는 많은데 정확한 원인을 모르겠네요.

HPUX 는 제가 테스트를 해볼 수 없고

http://coding.derkeiler.com/Archive/PHP/php.general/2008-07/msg00757.html

여기서는 freebsd7 apache2.2 php5.2.6 에서 같은 문제가 있다고 해서, 제가 같은 환경을 만들고 테스트해봤는데 잘 됩니다.

Q&A 들을 좀 더 읽어봐야 겠네요.

변환기 클래스의 _compile_template() 메소드에 전체 변환 플로우가 있고 주석이 달려 있는데.. 주석 있는 곳마다 echo 1;,echo 2; 해서 문제가 생기는 위치를 찾을 수 있을 겁니다. 언더바 소스의 문제라기 보다는 언더바가 사용하는 php 모듈의 문제일 가능성이 많구요.. APM을 재설치해보면 어떨까 싶네요.
08-09-24 18:13
즐기자 네.. 친절한 답변 감사드립니다. 지금은 시간이 없어 다음에 시간나면 차근차근 trace를 해서 결과보고 드리겠습니다.

제가 보기에는 php모듈과 HPUX 그리고, 언드바의 궁합이 일단 의심스럽습니다 (다른 환경에서는 되니까요. window에서도 테스트했는데 잘됩니다.)

그럼 수고하십시오.
08-09-25 18:57
관리자 단지 언더바를 작동시키니 문제가 생긴다거나 궁합문제라고 보는 것은 피상적인 진단이구요.

언더바는 php4.1 부터 php6 까지 문제 없이 작동하는 정상적인 php 코드로 만들어져 있습니다.

정확히 증명을 해드리지 못했지만 해당 운영체제상에서 젠드 플랫폼이 잘 세팅되지 못한 문제일 가능성이 많고, 언더바를 제거하더라도 개발하다 보면 마찬가지 문제를 겪게 될 거라는 것입니다.

출력이 느린것에 대해 언더바를 사용했기 때문이라고 강하게 짐작했다가, 네트워크 대역폭 문제로 밝혀졌다거나 하는 사례들이 많습니다.

어쨌든 문제가 쉽게 해결되길 바랍니다.
08-09-25 21:22
즐기자 제가 여러가지 테스트를 해본 결과는 다음과 같습니다.

1) shell상에서 php를 수행시켰더니 잘됩니다.
   즉 언더바와는 상관없다는거겠죠?

2) 위의 HTML코드의 위치를 문서의 상,중,하 등등
  으로 이동시켜 웹브라우저에서 접근해봤습니다.
  이상하게도 문서의 상,하의 경우는 잘됩니다.
  그런데 문서의 중간에다 문제의 코드를 위치시켰을때는 오류가 발생하더군요.
08-09-26 13:57
관리자 2번은 신기한 문제네요. 정확한 이유를 알면 좋겠습니다.

처음 리플에 php 가 어떤 오류메세지도 내지 못하고 해당 프로세스가 죽는 것 같은데, 그렇다면 apm 설치상태나 시스템 문제입니다. 재설치 해보시고요. 프비나 젠투리눅스는 소스컴파일 설치가 용이한데 hpux 에서는 어떤지 모르겠네요.

혹시나 echo 찍어서 trace하는게 가능하다면 정확히 어떤 라인에서 죽는지 확인해 주시기 바랍니다.
08-09-26 16:56
즐기자 네.. 신기하긴 합니다. 첨부터 어떤 시스템 문제인것으로 추측했지만...
암튼, 어떤 원인에 의해서 발생했는지는 꼭 찾을겁니다.
shell상에서는 잘되버린게 단순 echo 로 trace를 할 수없다는거구요..그래서 fwrite를 이용해서 trace해볼까 합니다.
(하지만 지금은 프로젝트 마무리하는게 우선이라 일단 PJT완료한 후, 그 결과를 보고드리겠습니다.)

성의있는 답변 감사드립니다.
08-09-26 21:18
관리자 fwrite 가 뭔가 알려줄 수 있을지 모르겠네요.

별볼일 있는 답변은 못하고 일거리만 드린거 같아 안타깝습니다.

좋은 주말 되세요.
08-09-26 22:29
    이름
비밀번호
 
Since 2003-03-03 hosted on vultr.com