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으로 바꾸니 이상 없이 되었다.

이 무슨 삽질인지.

우분투에서 이미지나 음성 등이 없다고 나올 때(404 not found)

기본적인 것이라 생각 못했던 부분이라서 좀 당황스러워하면서 해결했다.

정상적으로 동작하던 페이지에 이미지가 표시되지 않고, 연결해 두었던 음성이 출력되지 않아서 원인이 뭔가 찾다가 혹시나 싶어서 권한을 조정했더니 해결되었다.

워드프레스 플러그인 업데이트가 제대로 안 되고, 비주얼 편집기가 제대로 동작을 안 해서 권한과 소유자를 일괄 변경했던 것이 원인이되어서, 같은 폴더에 있던 일반 웹페이지에 연결되는 이미지와 소리 파일이 있던 하위 폴더까지 변경되어서 생긴 문제였다.

학습 사이트라서 이용자들로부터 엄청난 원성을 들을 수도 있었는데, 다행스럽게도 무료로 운영되는 사이트이고 개발 중이기에 일부 인원만 이용하는 사이트였기에 그런 일은 없었다.

처음에는 mime type 문제인가 싶어서 검색하다가 검색 결과 중에 그냥 단순히 권한 설정 문제일 수도 있다는 답변이 보였다.

해 보고는 얼마나 당황스럽던지.

혹시나 나 같은 사람이 있을까 싶어 글로 남긴다.