Fatal error: Uncaught Error: Undefined constant "G5_CSS_VER"
개인서버가 고장나서 os,caddy,php,mysql+ 그누보드5최신버전 으로 설치했습니다.
그누보드5 기본테마는 잘돌아가는데, 자료실에 테마를 설치하고 첫페이지에
Fatal error: Uncaught Error: Undefined constant "G5_CSS_VER" ......./usr/local/www/sedora/theme/UXC_BaseCamp/head.sub.php on line 41
요런 메세지가 나옵니다.. 따른 테마를 설치해도 css_ver에러가 똑같이 나내요....
어디를 어떻게 손봐야 할지 도움부탁드립니다
답변 2개 / 댓글 2개
원인부터 말씀드리면, G5_CSS_VER은 그누보드5 코어에 있는 상수가 아닙니다. 예전 서버에서는 아마 config.php나 extend 폴더에 직접 define('G5_CSS_VER', ...)를 추가해 두셨거나 테마 설치 안내에 따라 넣어두셨을 텐데, 재설치하면서 그게 사라진 겁니다. 게다가 PHP 7에서는 정의 안 된 상수가 경고(Warning)만 뜨고 문자열로 대체돼서 그냥 돌아갔지만, PHP 8부터는 Fatal Error로 죽어버립니다. 그래서 다른 테마를 깔아도 같은 자리에서 똑같이 터지는 겁니다.
해결은 상수만 정의해주면 됩니다. 두 가지 중 하나 고르시면 되는데, 코어 파일을 안 건드리는 extend 방식을 추천합니다.
방법 1 (추천) — /usr/local/www/sedora/extend/css_ver.php 파일 생성:
<?php
if (!defined('_GNUBOARD_')) exit;
if (!defined('G5_CSS_VER')) define('G5_CSS_VER', '20260904');
if (!defined('G5_JS_VER')) define('G5_JS_VER', '20260904');
방법 2 — config.php 맨 아래(?> 위)에 같은 두 줄 추가.
값은 캐시 무력화용 버전 문자열이라 아무거나 넣어도 되고, css 수정할 때마다 숫자 바꿔주면 브라우저 캐시가 갱신되는 용도입니다. G5_JS_VER도 같이 넣어둔 이유는 그 테마들이 보통 head.sub.php에서 .css?ver=G5_CSS_VER, .js?ver=G5_JS_VER 식으로 짝으로 쓰기 때문이라, 다음 줄에서 또 터지는 걸 미리 막는 겁니다.
이거 고치고 나면 PHP 8 환경이라 테마 안에서 Undefined constant나 Deprecated 류가 더 나올 가능성이 높습니다(구형 UXC 테마들이 특히 그렇습니다). 다음 에러 메시지 나오면 파일명이랑 줄 번호 같이 주시면 봐드릴게요. 참고로 그누보드 자체가 PHP 버전을 몇으로 잡으셨는지도 알려주시면 좋습니다 — 8.2/8.3이면 구형 테마는 손볼 데가 좀 있습니다.
답변에 대한 댓글 1개
G5_CSS_VER 상수가 기존 버전까지는 extend 폴더 안 version.extend.php 파일에 포함되어 배포되었는데, 가장 최근 버전부터는 해당 파일이 제거되면서 css 갱신 방법을 파일 수정시간으로 자동 적용되는 방식으로 변경되었어요. 그러니, 가장 최근 basic 테마 참고하셔서 head.sub.php 파일 안의 css 및 js 부분의 코드를 수정해주셔야 할 겁니다. /lib/common.lib.php 파일도 업데이트 하셔야..
답변에 대한 댓글 1개
답변을 작성하려면 로그인이 필요합니다.