You are here

Drupal8,9站点定时下线、上线管理

作者:亚艾元技术部

网络安全是头等问题,但是很多单位网站做好了以后,疏忽了安全管理,造成了不必要的损失。Drupal的安全,在开源CMS系统里面,还算是做的比较好的。在中国,每逢重大节日,为了防范国外黑客的攻击,都会加强网络的安全防护。

最近,我们就遇到了这样的需求,客户要加强网站的安全管理。采取的措施,就是白天网站正常上线,网上睡觉的事后,关停网站。每天晚上11点把网站给关闭了,早上7点把网站打开。Drupal可以做到这一点么,答案是可以的。但是需要写一段代码,代码我们已经写好了:

function mycustom_cron() {
 
  $maintenance_mode = \Drupal::state()
    ->get('system.maintenance_mode', FALSE);
      
  $start = strtotime('7:00:00');
  $end = strtotime('23:00:00');
 
  if (REQUEST_TIME >= $end || REQUEST_TIME <= $start){
 
       //休息时间,如果已经是维护模式,跳过;否则,设置为维护模式
    if(!$maintenance_mode){
         \Drupal::state()->set('system.maintenance_mode', TRUE);
      //\Drupal::service('cache.render')->invalidateAll();     
      drupal_flush_all_caches();  
       }
  }else{
       //工作时间,如果已经是维护模式,取消维护
    if($maintenance_mode){
         \Drupal::state()->set('system.maintenance_mode', FALSE);
       }       
  } 
}


   这里根据业务需要实现了定时任务,基于Drupal自带的维护模式,让Drupal站点到点下线,第二天醒来,到点上线。完美解决需求。经过实践检验,一切正常。


论坛:

Drupal版本: