Parse error: syntax error, unexpected end of file in

무들 최신 버전(3.7.2) 알림 메일을 받고, 설치를 하려고 보니 PHP 7.1 이상에서 돌아간다고 알림이 되어 있어서 7.0이던 것을 7.3으로 올렸다.

같은 사이트에서 워드프레스도 문제 없었고, 무들도 문제가 없었다.

별도로 구축하고 있는 학습 페이지가 실행이 되지 않는 문제가 발생하였다. 워드프레스와 무들이 이상없이 돌아가서 7.0을 지운 뒤라서 좀 난감했지만 다행스럽게도 작업 직전에 스냅샷을 만들어두었기에 복구에는 큰 어려움이 없었다.

하지만 학습페이지가 안 되는 것은 문제가 컸다. 비공개이기는 하지만 대학교 교양과목 학습 페이지이기에 200명 가까이 되는 학생들이 이용하고 있었기 때문이다. 방학 중이었다면 복구에 큰 부담이 없었겠지만 이미 학기가 시작되어 학습페이지를 통해 학생들이 예습을 하고 복습을 하고 있었기에 부담이 밀려왔다.

일단 해당 학습 페이지에서 뱉어낸 오류 메시지는 Parse error: syntax error, unexpected end of file in ···on line 160였다. 나와 같은 실수를 한 사람이 있….었다.

하지만 코드를 보며 곰곰히 생각해보니 예상되는 부분이 있었다. 워드프레스 사용자 로그인 시스템을 이용해 학습 페이지 접근을 제어하는데, 로그인한 사용자 중 특정 등급의 사용자가 맞는지 검사하는 function을 if문에 넣어 중간에 페이지의 내용(Body 태그 안의 모든 내용)을 감싸도록 해 두었던 부분이 의심이 되었다.

<?php if(user_access_auth()) { ?>
Body Contents
<?php } ?>

역시나 다음과 같이 바꾸니 이상 없이 실행되었다.

<?php if(user_access_auth()) {
echo<<<LOL
Body Contents
LOL;
} ?>

이렇게 황당할 때가 없다. 하지만 7.0에서는 이상 없이 돌아가다가 7.3에서는 오류가 발생했다고 보고하는 것이 이해가 가지 않았다. 이렇게 해결하려고 했는데, 창을 닫다가 위의 링크 아래 부분에 무슨 얘기들이 더 오가는지 궁금해서 보다가 short_open_code를 바꾸라는 답변을 보고 나서야 php7.0 환경설정 파일에서 바꿔서 사용했다는 것을 기억해 냈다. php7.3 환경 설정 파일에서 Off로 되어 있는 것을 On으로 바꾸니 이상 없이 되었다.

이 무슨 삽질인지.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다