diff --git a/adm/config_form.php b/adm/config_form.php index 20226d6ae..6dec4a4d5 100644 --- a/adm/config_form.php +++ b/adm/config_form.php @@ -1118,22 +1118,14 @@ if($config['cf_cert_use']) { $exe = G5_OKNAME_PATH.'/bin/oknamex64.exe'; } - if(!is_executable($exe)) { - echo ''.PHP_EOL; - } + echo module_exec_check($exe, 'okname'); } // kcp일 때 if($config['cf_cert_hp'] == 'kcp') { $exe = G5_KCPCERT_PATH.'/bin/ct_cli'; - if(!is_executable($exe)) { - echo ''.PHP_EOL; - } + echo module_exec_check($exe, 'ct_cli'); } } diff --git a/lib/common.lib.php b/lib/common.lib.php index 9d9299335..fdb650f59 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -2426,4 +2426,65 @@ if (!function_exists("get_sock")) { return $buffer; } } + +// 인증, 결제 모듈 실행 체크 +function module_exec_check($exe, $type) +{ + $error = ''; + $is_linux = false; + if(strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN') + $is_linux = true; + + // 모듈 파일 존재하는지 체크 + if(!is_file($exe)) { + $error = $exe.' 파일이 존재하지 않습니다.'; + } else { + // 실행권한 체크 + if(!is_executable($exe)) { + if($is_linux) + $error = $exe.'\n파일의 실행권한이 없습니다.\n\nchmod 755 '.basename($exe).' 과 같이 실행권한을 부여해 주십시오.'; + else + $error = $exe.'\n파일의 실행권한이 없습니다.\n\n'.basename($exe).' 파일에 실행권한을 부여해 주십시오.'; + } else { + // 바이너리 파일인지 + if($is_linux) { + $search = false; + exec('whoami', $out); + if(empty($out)) { + $error = 'exec 함수의 실행권한이 없습니다. 서버관리자에게 문의해 주십시오.'; + } else { + switch($type) { + case 'ct_cli': + exec($exe.' -h 2>&1', $out); + for($i=0; $i&1', $out); + for($i=0; $i'; + } + + return $error; +} ?> \ No newline at end of file