basepath = $basepath; $this->settingFile = realpath($basepath.'/d_setting/DB.php'); $this->htaccessFile = realpath($basepath.'/.htaccess'); $this->versionFile = realpath($basepath.'/d_setting/VersionGit.php'); $this->korName = $korName; $this->color = $color; if($name){ $this->shortName = $name; } else{ $this->shortName = basename($this->basepath); } if(file_exists($this->settingFile)) { $this->exist = true; if(!file_exists($this->htaccessFile)){ $this->running = true; } } } public function isRunning(){ return $this->running; } public function isExists() { return $this->exist; } public function getShortName(){ return $this->shortName; } public function getColor(){ return $this->color; } public function getKorName(){ return $this->korName; } public function getBasePath(){ return $this->basepath; } public function getSettingFile() { return $this->settingFile; } public function getVersion(){ if($this->version !== null){ return $this->version; } if(!file_exists($this->versionFile)){ $this->version = 'noVersionFile'; return $this->version; } $tail = new FileTail($this->versionFile); $version = 'noVersionJson'; foreach ($tail->smart(5, 100, true) as $line) { if(Util::starts_with($line, '//{')){ $version = Json::decode(substr($line, 2)); $version = Util::array_get($version['version'], 'noVersionValue'); break; } } $this->version = $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; } }