Setting에 closerServer, openServer를 통합. 서버 업데이트시 자동 폐쇄 상태로
This commit is contained in:
@@ -12,10 +12,6 @@ $session = Session::requireLogin(null);
|
|||||||
// $_POST['notice'] : 공지
|
// $_POST['notice'] : 공지
|
||||||
// $_POST['server'] : 서버 인덱스
|
// $_POST['server'] : 서버 인덱스
|
||||||
|
|
||||||
function escapeIPv4($ip){
|
|
||||||
return str_replace('.', '\\.', $ip);
|
|
||||||
}
|
|
||||||
|
|
||||||
$action = Util::array_get($_POST['action'], '');
|
$action = Util::array_get($_POST['action'], '');
|
||||||
$notice = Util::array_get($_POST['notice'], '');
|
$notice = Util::array_get($_POST['notice'], '');
|
||||||
$server = Util::array_get($_POST['server'], '');
|
$server = Util::array_get($_POST['server'], '');
|
||||||
@@ -40,22 +36,7 @@ function doServerModeSet($server, $action, &$response){
|
|||||||
$realServerPath = realpath(dirname(__FILE__)).'/'.$serverPath;
|
$realServerPath = realpath(dirname(__FILE__)).'/'.$serverPath;
|
||||||
|
|
||||||
if($action == 'close') { //폐쇄
|
if($action == 'close') { //폐쇄
|
||||||
$templates = new \League\Plates\Engine('templates');
|
return $settingObj->closeServer();
|
||||||
|
|
||||||
//TODO: .htaccess가 서버 오픈에도 사용될 수 있으니 별도의 방법이 필요함
|
|
||||||
$allow_ip = Util::get_client_ip(false);
|
|
||||||
if(Util::starts_with($allow_ip, '192.168.') ||
|
|
||||||
Util::starts_with($allow_ip, '10.'))
|
|
||||||
{
|
|
||||||
//172.16~172.31은 코딩하기 귀찮으니까 안할거다
|
|
||||||
$allow_ip = Util::get_client_ip(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
$xforward_allow_ip = escapeIPv4($allow_ip);
|
|
||||||
|
|
||||||
$htaccess = $templates->render('block_htaccess',
|
|
||||||
['allow_ip' => $allow_ip, 'xforward_allow_ip' => $xforward_allow_ip]);
|
|
||||||
file_put_contents($serverPath.'/.htaccess', $htaccess);
|
|
||||||
} elseif($action == 'reset') {//리셋
|
} elseif($action == 'reset') {//리셋
|
||||||
//FIXME: reset, reset_full 구현
|
//FIXME: reset, reset_full 구현
|
||||||
if(file_exists($serverPath.'/d_setting/DB.php')){
|
if(file_exists($serverPath.'/d_setting/DB.php')){
|
||||||
@@ -64,9 +45,7 @@ function doServerModeSet($server, $action, &$response){
|
|||||||
|
|
||||||
$response['installURL'] = $serverDir."/install.php";
|
$response['installURL'] = $serverDir."/install.php";
|
||||||
} elseif($action == 'open') {//오픈
|
} elseif($action == 'open') {//오픈
|
||||||
if(file_exists($serverPath.'/.htaccess')){
|
return $settingObj->openServer();
|
||||||
@unlink($serverPath.'/.htaccess');
|
|
||||||
}
|
|
||||||
} else{
|
} else{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,6 +98,8 @@ if($server == $baseServerName){
|
|||||||
], true
|
], true
|
||||||
);
|
);
|
||||||
|
|
||||||
|
AppConf::getList()[$server]->closeServer();
|
||||||
|
|
||||||
Json::die([
|
Json::die([
|
||||||
'server'=>$server,
|
'server'=>$server,
|
||||||
'result'=>true,
|
'result'=>true,
|
||||||
@@ -148,6 +150,9 @@ $result = Util::generateFileUsingSimpleTemplate(
|
|||||||
], true
|
], true
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
AppConf::getList()[$server]->closeServer();
|
||||||
|
|
||||||
Json::die([
|
Json::die([
|
||||||
'server'=>$server,
|
'server'=>$server,
|
||||||
'result'=>true,
|
'result'=>true,
|
||||||
|
|||||||
@@ -89,6 +89,38 @@ class Setting {
|
|||||||
return $version;
|
return $version;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function closeServer(){
|
||||||
|
if(!file_exists($this->basepath) || !is_dir($this->basepath)){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
$templates = new \League\Plates\Engine(__dir__.'/templates');
|
||||||
|
//TODO: .htaccess가 서버 오픈에도 사용될 수 있으니 별도의 방법이 필요함
|
||||||
|
$allow_ip = Util::get_client_ip(false);
|
||||||
|
if(Util::starts_with($allow_ip, '192.168.') ||
|
||||||
|
Util::starts_with($allow_ip, '10.'))
|
||||||
|
{
|
||||||
|
//172.16~172.31은 코딩하기 귀찮으니까 안할거다
|
||||||
|
$allow_ip = Util::get_client_ip(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$xforward_allow_ip = WebUtil::escapeIPv4($allow_ip);
|
||||||
|
|
||||||
|
$htaccess = $templates->render('block_htaccess',
|
||||||
|
['allow_ip' => $allow_ip, 'xforward_allow_ip' => $xforward_allow_ip]);
|
||||||
|
file_put_contents($this->basepath.'/.htaccess', $htaccess);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function openServer(){
|
||||||
|
if(!file_exists($this->basepath) || !is_dir($this->basepath)){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(file_exists($this->basepath.'/.htaccess')){
|
||||||
|
@unlink($this->basepath.'/.htaccess');
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,10 @@
|
|||||||
namespace sammo;
|
namespace sammo;
|
||||||
|
|
||||||
class WebUtil{
|
class WebUtil{
|
||||||
|
public static function escapeIPv4($ip){
|
||||||
|
return str_replace('.', '\\.', $ip);
|
||||||
|
}
|
||||||
|
|
||||||
public static function setHeaderNoCache(){
|
public static function setHeaderNoCache(){
|
||||||
if(!headers_sent()) {
|
if(!headers_sent()) {
|
||||||
header('Expires: Wed, 01 Jan 2014 00:00:00 GMT');
|
header('Expires: Wed, 01 Jan 2014 00:00:00 GMT');
|
||||||
|
|||||||
Reference in New Issue
Block a user