PHP8.0에서 변경된 모듈 분법 관련해서 에러가 발생하는것 같습니다.
PHP8,0 + 라이믹스 2.0에서 스티커 모듈이 활성화되어있을 경우 사이트가 백지(500 Fatal error)발생하고
로그를 찍어보면 아래 로그를 확인할 수 있습니다.
현재 8.0을 서버에서 내려버려서 테스트는 불가능하나, 당시 500에러가 발생했던 사유는 이것입니다.
stderr: "NOTICE: PHP message: PHP Fatal error: Unparenthesized `a ? b : c ? d : e` is not supported. Use either `(a ? b : c) ? d : e` or `a ? b : (c ? d : e)` in sticker.controller.php on line 1416"
이 부분은 sticker.controller.php 파일의 하기 부분이 문제였고 (1411번째줄)
function insertStickerLog($obj, $sequence = false){
$logged_info = Context::get('logged_info');
$idx = $sequence ? $sequence : getNextSequence();
$sticker_srl = $obj->sticker_srl ? $obj->sticker_srl : 0;
$sticker_file_srl = $obj->sticker_file_srl ? $obj->sticker_file_srl : null;
$member_srl = $obj->member_srl ? $obj->member_srl : $logged_info ? $logged_info->member_srl : 0;
$type = $obj->type ? $obj->type : null;
$comment_srl = $obj->comment_srl ? $obj->comment_srl : null;
$document_srl = $obj->document_srl ? $obj->document_srl : null;
$content = $obj->content ? $obj->content : null;
$point = $obj->point ? $obj->point : $obj->use_point ? $obj->use_point : $obj->price ? $obj->price : null;
$ipaddress = $obj->ipaddress ? $obj->ipaddress : $_SERVER['REMOTE_ADDR'];
$regdate = $obj->regdate ? $obj->regdate : date("YmdHis");
위 부분만 어떻게 문법에 맞게 수정을 하면 돌아는 갈 것 같은데 문법을 잘 몰라서...
일단 다른 운영자님들께도 공유가 필요할 것 같아 공규합니다.
라인하고
$point = $obj->point ? $obj->point : $obj->use_point ? $obj->use_point : $obj->price ? $obj->price : null;
라인을 주석 처리하니 PHP 8.0에서도 사이트 접속은 가능해졌습니다. 확실히 해당 라인이 문제인 것 같습니다.