离线安排Joomla网站

问题描述

我想知道是否有人在如何安排在特定日期和时间将Joomla设置为“离线/维护模式”的更多详细信息。我发现了这个post here on stack overflow,我想知道是否有人成功(1)实现了一个自定义插件添加功能,或者(2)通过将站点设置为离线/维护模式的脚本,也许cronjob在特定时间运行脚本,或者(3)可能已经存在一个扩展,只需添加此脱机/维护模式计划功能即可。

根据我上面链接上一篇文章,我不确定插件是否可以工作,或者不确定如何最好地使用脚本和cronjob技术。根据我在帖子中的回复的理解,听起来脚本和cronjob将是实现此目的的唯一方法。如果有人可以让我知道他们是否成功实现了这一点,那将是一件好事,或者关于如何实现它的任何建议或方向会有所帮助。

解决方法

使用这么少的插件在我看来不值得。 我宁愿使用像这样的小脚本:

<?php

// Make sure this is only called through command line
if (php_sapi_name() !== "cli") die('Only command line');

// Replace by your joomla configuration file path
$configuration_file_path = '/var/www/joomla/configuration.php';

if (!empty($argv[1])) {
    $offline = 1;   
} else {
    $offline = 0;
}


// Retrieve configuration file content
$configuration_content = file_get_contents($configuration_file_path);

// Replace the offline line by the calculated value
$configuration_content = preg_replace('/(.*)public \$offline =(.*)/m','$1public $offline = \'' . $offline . '\';',$configuration_content); 

// Write back the configuration file
file_put_contents($configuration_file_path,$configuration_content);

可以通过命令行调用此脚本:

php offline.php 1 #to enable offline status

php offline.php 0 #to disable offline status

如果您需要通过编辑/ etc / crontab来通过cronjob运行它,或将其添加到您的托管设置中:

# Offline at 4AM each day
0 4  * * *   www-data php /path/of/your/script/offline.php 1 >> /dev/null 2>&1
# Online at 4:05AM each day
5 4  * * *   www-data php /path/of/your/script/offline.php 0 >> /dev/null 2>&1