From ee269c66adce350fca94dcad10c5b6d370433fda Mon Sep 17 00:00:00 2001 From: chicpro Date: Fri, 27 Dec 2013 11:01:17 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B8=EC=A6=9D=20=EB=AA=A8=EB=93=88=20?= =?UTF-8?q?=EC=8B=A4=ED=96=89=EA=B6=8C=ED=95=9C=20=EC=B2=B4=ED=81=AC=20?= =?UTF-8?q?=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/config_form.php | 12 ++------- lib/common.lib.php | 61 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 10 deletions(-) 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