워드프레스 운영을 위해 다양한 커스텀 코드를 적용하다보면 PHP 에러를 만나게 됩니다.
이러한 PHP 에러중에는 치명적인 것도 있지만 대부분은 워드프레스 사이트가 다운될 정도로 심각한 경우가 아니므로 무시하게 마련입니다.
그러나 PHP 에러 대응이 적절하지 않으면, 서버에서는 끊임없이 서버 에러 메세지를 발송하면서 궁극적으로 시스템 자원을 약화시키는 경우가 있습니다.
여기에서는 대수롭지 않게 넘기기 쉽운 PHP 에러 중 PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback에 대해서 알아봅니다.
이 글은 PHP 에러 대응 사례-PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback를 기반으로 조금 내용을 수정한 것입니다.
PHP 에러 메세지 사례
오늘 소개하는 PHP 에러 대응 -PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback도 이러한 예의 하나인데요.
보통 이런 에러가 발생하면 아래와 같은 에러 메세지를 보냅니다. 이는 서버의 error.log에서 발견할 수 있습니다.
웹서버로 NGINX를 사용한다면 /var/log/nginx 폴더에 있는 error.log에서 확인할 수 있습니다. 하나의 실예를 들기 위해 에러 메세지를 그대로 가져와 봤습니다.
2020/07/04 13:33:50 [error] 2739157#2739157: *149426 FastCGI sent in stderr: "PHP message: PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback, function 'child_enqueue_styles' not found or invalid function name in /home/사이트 이름/wp-includes/class-wp-hook.php on line 287", client: 220.64.101.2, server: 사이트 이름.com, request: "GET /571441/ HTTP/1.1", host: "사이트 이름.com"
Code language: PHP (php)
에러 메세지의 원인
이러한 메세지가 나오는 것은 대부분 워드프레스 차이드 테마의 hunctions.php에 다음과 같은 형식의 커스텀 코드가 있는 경우가 발생한다고 합니다.
add_action( 'wp_enqueue_scripts', 'custom_scripts', 9999 );
Code language: PHP (php)
저의 경우에는 다음과 코드가 있었습니다.
add_action( 'wp_enqueue_scripts', 'child_enqueue_styles', 15 );
Code language: PHP (php)
문제 해결
오랜만에 서버가 제대로 작동하는지 확인하면서 NGINX 웹서버가 끊임없이 이런 메세지를 내고 있다는 것을 발견하고 토요일 오전 내내 구글링을 통해서 문제 해결 방법을 찾았습니다.
그러나 좀처럼 이 문제 해결 방안을 찾을 수 없었는데 근 5시간이상의 구글링끝에 이에 대한 해결책을 제시하는 글을 찾았습니다.
위 글에 따르면 문제 원인이 커스텀 코드에서 발생하고 있기 때문에 문제 해결은 이 커스텀 코드를 삭제함으로 가능합니다.
저의 경우 차일드 테마를 별도로 만들지 않고 MU-PLUGINS에서 별도 php 파일을 만들면서 상기 커스텀 코드를 적용했는데요. 굳이 필요한 컷텀 코드는 아니었나 봅니다.
이 커스텀 코드 삭제 후 별다른 이슈가 없었고, 오히혀 에러 메세지는 사라졌습니다.
새롭게 뉴스레터를 시작했습니다.
1️⃣ 주식 등 투자 정보 : 기업 분석, IB 투자의견 등 투자 관련 내용
..... 테슬라 실적 및 IB들의의 테슬라 투자의견
2️⃣ 사례 및 트렌드 : 사례연구와 트렌드 관련 괜찮은 내용
.....유튜브와 경쟁대신 구독 전환한 비디오 플래폼 비메오 사례