OkEr

웹호스팅 PHP exec() 차단 시 영카트5 KCP(pp_cli) 결제 먹통 원인과 점검 팁

최근 카페24, 가비아, 닷홈 등 주요 웹호스팅에서 보안 패치 이후 disable_functions에 exec, shell_exec, popen이 일괄 추가되면서, 구형 영카트5의 NHN KCP(pp_cli 바이너리 호출 방식) 승인 및 부분취소가 갑자기 멈추는 사례가 자주 발생하고 있습니다.

당장 결제가 안 될 때 서버 환경부터 10초 만에 확인하는 코드와 점검 포인트를 정리해 공유합니다.


1. 호스팅 exec() 차단 및 cURL 대체 가능 여부 확인 코드

루트 경로에 임시 파일(확인 후 즉시 삭제)로 아래 코드를 올려 실행하면, 실제로 pp_cli 바이너리 실행이 막힌 것인지 바로 판별할 수 있습니다.

<?php
header("Content-Type: text/plain; charset=utf-8");
$disabled = array_map("trim", explode(",", (string)ini_get("disable_functions")));
$exec_ok = function_exists("exec") && !in_array("exec", $disabled, true);
$curl_ok = function_exists("curl_init");

echo "PHP Version : " . PHP_VERSION . "\n";
echo "exec() 가능 여부 : " . ($exec_ok ? "가능 (바이너리 권한/경로 점검 필요)" : "차단됨 (pp_cli 실행 불가)") . "\n";
echo "cURL 확장 활성 : " . ($curl_ok ? "정상 (HTTPS API 통신 대체 가능)" : "비활성") . "\n";
?>

2. 영카트5 내 pp_cli 호출 지점 점검 목록

단순히 결제 승인 파일 하나만 고치면 관리자 취소에서 다시 막히는 경우가 많습니다. 아래 3개 구간을 함께 확인해야 합니다.

  • PC/모바일 승인 허브: shop/kcp/pp_cli_hub.php (구형 스킨은 c_PayPlusCli.php 내부 exec() 호출)
  • 관리자 전체/부분취소: adm/shop_admin/orderformupdate.php 및 orderpartcancel.inc.php
  • 현금영수증 발급 연동 구간(사용 중인 경우)

3. 파일 업로드 없이 브라우저에서 pp_cli 호출 라인 정적 진단하기

외주 작업자에게 FTP 계정이나 g_conf_site_key가 들어 있는 설정 파일을 넘기기 부담스러울 때 바로 점검할 수 있도록, 브라우저 메모리(서버 전송 0 Byte)에서만 PHP 코드 내 exec() / pp_cli 의존 지점을 찾아주는 정적 진단 도구를 만들어 두었습니다.

샘플 버튼이나 본인 pp_cli_hub.php 소스를 붙여넣으면 서버 업로드 없이 차단 호출 라인과 교체 방향을 바로 확인할 수 있으니 급하게 점검하실 때 참고하시기 바랍니다.

댓글을 작성하시려면 로그인이 필요합니다.
+
제목 글쓴이 날짜 조회
14:36 조회 5
05-20 조회 308
04-22 조회 511
04-14 조회 441
03-22 조회 550
03-21 조회 602
02-26 조회 712
02-21 조회 1,001
02-20 조회 806
02-19 조회 789
02-17 조회 1,328
02-13 조회 1,430
02-13 조회 834
02-03 조회 976
01-29 조회 1,210
25-12-17 조회 1,541
25-12-07 조회 1,460
25-11-30 조회 1,547
25-11-15 조회 1,749
25-10-26 조회 1,930
25-10-25 조회 1,476
25-10-14 조회 1,747
25-10-11 조회 1,802
25-10-10 조회 1,630
25-10-05 조회 2,239
25-10-01 조회 1,734
25-09-25 조회 1,827
25-09-21 조회 1,627
25-09-19 조회 1,628
25-09-09 조회 1,813