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; $ialert("'.$error.'");';
+ }
+
+ return $error;
+}
?>
\ No newline at end of file