[php 에러] Call to undefined function get_magic_quotes_runtime() 에러 문제 해결 방법

Updated on 2021-01-26 by

뉴스레터를 운영하기 위해 여러 설정하던 중 만난 php 에러 Call to undefined function get_magic_quotes_runtime() 에러 문제 해결 방법에 대해서 살펴봅니다.

뉴스레터 운영을 위해서 메일스터라는 뉴스레터 플러그인을 사용하고 있습니다. 그런데 자동으로 메일 보내기가 자꾸 작동이 안되는 문제가 있여 몇주동안 문제 해결을 위해서 고민에 고민을 거듭했습니다.

이메일 마케팅에서 특정 상황, 예를들어 신규 회원이 가입하면 자동으로 환영 메일을 보내는 것과 같은 자동화된 동작을 하도록 설계하곤 합니다. 그래야 효율적이고 효과적인 마케팅이 가능하기 때문이죠.

문제는 수동으로 메일을 보내면 잘 가는데 자동으로 메일 보내기가 작동이 안되었습니다. 보아하니 특정 상황 발생 시 트리거를 격발시키기 위해서 크론 명령을 주는데 이 크론 동작이 제대로 작동하지 않아 메일이 자동으로 보내지지 않는 것이었습니다.

그 원인을 파악하고자 log도 살펴보고 이런 저런 실험을 하다가 php 명령를 내리면 이상한 메세지를 보여주는 것을 발견했습니다.

PHP Fatal error: Uncaught Error: Call to undefined function get_magic_quotes_runtime() 라는 에러 메세지인데요.

PHP Fatal error:  Uncaught Error: Call to undefined function get_magic_quotes_runtime() in /html/mysite/wp-content/plugins/mailster/classes/libs/phpmailer/class.phpmailer.php:2697
Stack trace:
#0 /html/mysite/wp-content/plugins/mailster/classes/libs/phpmailer/class.phpmailer.php(2668): PHPMailer_mailster->encodeFile()
#1 /html/mysite/wp-content/plugins/mailster/classes/libs/phpmailer/class.phpmailer.php(2300): PHPMailer_mailster->attachAll()
#2 /html/mysite/wp-content/plugins/mailster/classes/libs/phpmailer/class.phpmailer.php(1277): PHPMailer_mailster->createBody()
#3 /html/mysite/wp-content/plugins/mailster/classes/mail.helper.class.php(115): PHPMailer_mailster->preSend()
#4 /html/mysite/wp-content/plugins/mailster-amazonses/classes/amazonses.class.php(142): mailster_mail_helper->PreSend()
#5 /html/mysite/wp-includes/class-wp-hook.php(287): MailsterAmazonSES->dosend()
#6 /html/mysite/wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters()
#7 /html/mysite/wp-includes/plugin.php(484): WP_Hook->do_action()
#8 /html/mysite/wp-content/plugins/mailster/classes/mail.class.php(583): do_action()
#9 /html/mysite/wp-content/plugins/mailster/classes/campaigns.class.php(4306): MailsterMail->send()
#10 /html/mysite/wp-content/plugins/mailster/classes/queue.class.php(1178): MailsterCampaigns->send()
#11 /html/mysite/wp-includes/class-wp-hook.php(287): MailsterQueue->progress()
#12 /html/mysite/wp-includes/class-wp-hook.php(311): WP_Hook->apply_filters()
#13 /html/mysite/wp-includes/plugin.php(551): WP_Hook->do_action()
#14 /html/mysite/wp-cron.php(138): do_action_ref_array()
#15 {main}
  thrown in /html/mysite/wp-content/plugins/mailster/classes/libs/phpmailer/class.phpmailer.php on line 2697Code language: PHP (php)

엄청난 구글링 결과 “get_magic_quotes_runtime()”, “set_magic_quotes_runtime()”과 같은 phpMailer에서 사용하는 기능은 php 5에서 사용하던 기능으로 php 7이상에서는 사용하지 않는 기능이라고 합니다. 그러니 php 7.4에서 계속 에러를 냈던 것 같습니다.

그러면 이문제를 어떻게 해결해야 할까요? 아마 플러그인 개발자는 php 5,php 7, php 8 모두에서 플러그인 작동해야 하므로 이 기능 명령을 아직도 사용하는지도 모르겠습니다. 이 mailster 플러그인 기술 지원 기간이 끝났기 때문에 구글링을 거듭해서 해결 방법을 찾았습니다.

결국 위대한 구글신께서 정답을 알고 있더군요. stackoverflow에서 이에 대한 질문이 올라왔고 해결 방법도 제시되어 있엇습니다.

Call to undefined function set_magic_quotes_runtime()

해결 방법은 php 7에서 이러한 기능 요청을 받으면 더미 기능을 하도록 만들어서 이 이슈를 회피할 수 있다고 합니다. 저도 적용해 보니 작동하더군요. 저는 functions.php 파일에 다음의 코드를 추가했습니다.

if (!function_exists('set_magic_quotes_runtime')) {
    function set_magic_quotes_runtime($new_setting) {
        return true;
    }
}Code language: PHP (php)

참고하시길 바래요..

전 이 문제 해결하느라 3주나 걸렸습니다. 틈틈히 테스트하느라 긴 시간이 걸렸지요.

새롭게 뉴스레터를 시작했습니다.

1️⃣ 주식 등 투자 정보 : 기업 분석, IB 투자의견 등 투자 관련 내용
..... 테슬라 실적 및 IB들의의 테슬라 투자의견
2️⃣ 사례 및 트렌드 : 사례연구와 트렌드 관련 괜찮은 내용
.....유튜브와 경쟁대신 구독 전환한 비디오 플래폼 비메오 사례

서울에 생긴 Vultr 서버 100$ 프로모션

안녕하세요?
새로운 사이트 구축을 위한 신규 서버를 고민하신다면 , 서울 리젼이 생겨 더욱 빨라진 Vultr 서버를 Vultr 100$ 프로모션으로 이용해 보세요.

아래 프로모션 코드 링크를 통해 Vultr에서 서버 구축 후 1달 이상 사용 및 $25이상 결제 時 추가 100$을 주는 프로모션입니다.

Vultr는 서울에도 리젼이 있어 매우 빠르고, 아마존 웹 서비스(AWS)보다 성능이 높으며 가장 가성비가 뛰어납니다.

거기다 사용자 UI도 좋고, 15개까지 스냅샷을 무료로 제공하기 때문에 관리하기 좋습니다. 그리고 지금 100$ 프로모션처럼 가격적인 메리트도 있습니다.

우분투 20.04와 PHP 8 기반 워드프레스 설치 방법

가상 서버를 운영하고픈 勇者에게 전하는 가상 서버 운영 입문 노하우 – Vultr 가상서버호스팅(VPS)를 중심으로

워드프레스 최적화를 위한 18개월간의 고민, 그 노하우를 담다.

도쿄 리젼과 비교해 본 Vultr 서울 리젼 사용기

가성비가 뛰어난 Vultr 가상서버호스팅(클라우드호스팅,VPS) 사용기

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments