Настройка личного викидвижка MediaWiki

Материал из Викиреальностя
(перенаправлено с «Настройка личного викидвижка»)
Перейти к: навигация, поиск

Из-за удобной викиразметки и контроля за версиями (есть история правок) движок MediaWiki оказывается удобен не только для открытых всем викисайтов, но и в качестве личного «блокнота» для одного автора или небольшой группы редакторов. Такой викисайт недоступен посторонним.

Ниже описывается возможная настройка подобного сайта.

[править] Этап установки

  1. Выбираем базу данных SQLite, а не обычную MySQL. Нагрузка на ваш проект будет очень мала, поэтому в быстрой серверной БД нет необходимости.
  2. Тип кэширования — memcached (адрес localhost:11211). Обязательно закройте файрволом этот порт (в memcached нет никакой защиты; злоумышленник может просто открыть кэш с «секретными» данными и читать).
  3. Отключаем все опции, связанные с почтой. Вашему викисайту это действительно не нужно.

[править] Настройка прав пользователей

Создадим три группы — reader (чтобы кому-то дать почитать содержимое), author (все права, кроме присвоения флагов читателя и редактора), founder (вообще все права, включая временное запирание базы данных проекта).

В файл LocalSettings.php добавьте строки:

# Очистить все права по умолчанию. Там много нам ненужного (включая регистрацию новых участников).
$wgGroupPermissions = array();
 
#
# Группа reader — читатели. Только читать они и могут.
#
$wgGroupPermissions['reader']['read']  = true;
$wgGroupPermissions['reader']['purge'] = true;
 
#
# Группа author — уполномоченные редакторы. Могут практически всё.
#
$wgAddGroups['author'] = array();
$wgRemoveGroups['author'] = array('reader'); # Право снять флаг читателя.

$wgGroupPermissions['author'] = $wgGroupPermissions['reader'];
$wgGroupPermissions['author']['edit']             = true;
$wgGroupPermissions['author']['createpage']       = true;
$wgGroupPermissions['author']['createtalk']       = true;
$wgGroupPermissions['author']['writeapi']         = true;
$wgGroupPermissions['author']['minoredit']        = true;
$wgGroupPermissions['author']['autoconfirmed']    = true;
$wgGroupPermissions['author']['block']            = true;
$wgGroupPermissions['author']['createaccount']    = true;
$wgGroupPermissions['author']['delete']           = true;
$wgGroupPermissions['author']['bigdelete']        = true;
$wgGroupPermissions['author']['deletedhistory']   = true;
$wgGroupPermissions['author']['deletedtext']      = true;
$wgGroupPermissions['author']['undelete']         = true;
$wgGroupPermissions['author']['editinterface']    = true;
$wgGroupPermissions['author']['editusercss']      = true;
$wgGroupPermissions['author']['edituserjs']       = true;
$wgGroupPermissions['author']['import']           = true;
$wgGroupPermissions['author']['importupload']     = true;
$wgGroupPermissions['author']['move']             = true;
$wgGroupPermissions['author']['move-subpages']    = true;
$wgGroupPermissions['author']['move-rootuserpages'] = true;
$wgGroupPermissions['author']['patrol']           = true;
$wgGroupPermissions['author']['autopatrol']       = true;
$wgGroupPermissions['author']['protect']          = true;
$wgGroupPermissions['author']['proxyunbannable']  = true;
$wgGroupPermissions['author']['rollback']         = true;
$wgGroupPermissions['author']['upload']           = true;
$wgGroupPermissions['author']['reupload']         = true;
$wgGroupPermissions['author']['reupload-shared']  = true;
$wgGroupPermissions['author']['unwatchedpages']   = true;
$wgGroupPermissions['author']['ipblock-exempt']   = true;
$wgGroupPermissions['author']['blockemail']       = true;
$wgGroupPermissions['author']['markbotedits']     = true;
$wgGroupPermissions['author']['apihighlimits']    = true;
$wgGroupPermissions['author']['browsearchive']    = true;
$wgGroupPermissions['author']['noratelimit']      = true;
$wgGroupPermissions['author']['movefile']         = true;
$wgGroupPermissions['author']['mergehistory']     = true;
$wgGroupPermissions['author']['unblockself']      = true;
$wgGroupPermissions['author']['suppressredirect'] = true;
#$wgGroupPermissions['author']['upload_by_url']   = true;
#$wgGroupPermissions['author']['mergehistory']    = true;

#
# Группа founder — аккаунт для выдачи доступа к правам читателя и редактора.
#
$wgAddGroups['founder'] = array('reader', 'author');    # ---- Защита: чтобы founder случайно не снял с себя флаг
$wgRemoveGroups['founder'] = array('reader', 'author'); # ---/
$wgGroupPermissions['founder'] = $wgGroupPermissions['author'];
 
# Может временно блокировать базу данных от изменений (на случай какой-то перенастройки).
$wgGroupPermissions['founder']['siteadmin'] = true;
 
# Запрет использования API для невозможности чтения свежих правок, списка участников etc.
$wgEnableAPI = false;

Примечание: список прав указан состоянием на версию 1.19.

[править] См. также

Настройка личного викидвижка MediaWiki относится к теме «MediaWiki»   ±