MediaWiki

Материал из RSU WiKi
Перейти к: навигация, поиск
Tower of babel.png外國 language!
В статье используется несколько языков. Необходимо использовать один. Совсем неплохо, если это будет русский.

Содержание

Установка

Конфигурационный файл Nginx для работы с MediaWiki через fast-cgi модуль php5:

Кеширование и производительность

Загрузка дополнительных типов файлов

LocalSettings.php

# Разрешить дополнительно загружать следующие типы файлов:
$wgStrictFileExtensions = false;
$wgFileExtensions[] = 'doc';
$wgFileExtensions[] = 'xls';
$wgFileExtensions[] = 'pdf';
$wgFileExtensions[] = 'odt';
$wgFileExtensions[] = 'ods';

Внешний вид

Как поменять шрифт по-умолчанию

add the following to your MediaWiki:Common.css page (NOTE: MediaWiki:Common.css is a page ON THE WIKI, such as mywiki.com/wiki/MediaWiki:Common.css. It is NOT in the filesystem. Chances are it doesn't exist yet, so you need to create it)

body { font-family: "Century Gothic", Arial, sans-serif; }

How do I change the logo?

The logo that appears in the top left of each page is determined by the $wgLogo configuration line in the LocalSettings.php file.

There are two ways to change the logo:

Upload a picture to your wiki using the normal file uploading interface. This allows the logo to be replaced easily, so you may want to protect the page if you use this method.

Then add the $wgLogo line to LocalSettings.php, for example:

$wgLogo = 'http://www.example.com/wiki/images/6/62/photoname.jpg';

Or upload an image to your server by other means (such as FTP). Add the $wgLogo line to LocalSettings.php, for example:

$wgLogo = "{$wgScriptPath}/photoname.jpg";

In this example, the photo is in the same folder as the LocalSettings.php file.

Attention.pngВНИМАНИЕ!
Do not simply overwrite the default logo installed with MediaWiki (/skins/common/images/wiki.png); this file will be overwritten when you upgrade.

Tip: The logo image should be 135 x 135 pixels.

Дополнения

LDAP аутентификация

Для реализации LDAP аутентификации прежде всего надо скачать плагин по адресу http://www.mediawiki.org/wiki/Extension:LDAP_Authentication. Следуйте указаниям разработчика плагина для его распаковки. После его распаковки запустите update.php

# Run this from the top level of your MediaWiki installation directory
php maintenance/update.php

Далее отредактируйте файл $IP/LocalSettings.php

Параметр $wgLDAPUseLocal отвечает за возможность аутентификации локальным пользователем. Если нужно такую аутентификацию включить, значение должно быть true. По умолчанию параметр имеет значение false.

#Enable LDAP authentification
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();

Как включить аутентификацию через Active Directory?

  • Статья Extension:LDAP Authentication/AD Configuration Examples[1]

Чтобы включить аутентификацию через Microsoft Active Directory необходимо установить плагин Extension:LDAP Authentication/AD Configuration Examples[2] и добавить в Файл LocalSettings.php следующие строки:

# Active Directory Authentificetion
#In this example, we have an Active Directory (AD) server, and we will be doing straight binds to the directory
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array('local.example.com');
$wgLDAPServerNames = array('local.example.com' => 'local.example.com');
$wgLDAPSearchStrings = array('local.example.com' => 'LOCAL\\USER-NAME');
#$wgLDAPUseLocal=true;
#$wgLDAPEncryptionType = array('local.example.com' => 'clear');
$wgLDAPEncryptionType = array('local.example.com' => 'ssl');
$wgMinimalPasswordLength = 1;
#If you want to be able to pull preferences
$wgLDAPBaseDNs = array('local.example.com' => 'OU=Сотрудники,DC=local,DC=example,DC=com');
$wgLDAPSearchAttributes = array('local.example.com' => 'sAMAccountName');
#if your server doesn't allow anonymous searching (AD doesn't, normally)
$wgLDAPProxyAgent =  array('local.example.com' => 'CN=wiki,OU=Служебные,DC=local,DC=example,DC=com');
$wgLDAPProxyAgentPassword = array('local.example.com' => 'wiki_user_pwd');
#other
$wgLDAPLowerCaseUsername = array('local.example.com' => true);
$wgShowExceptionDetails = true;

Для включения лога отладки LDAP добавьте в LocalSettings.php нижеследующие строки. Файл будет лежать в корне wiki.example.com/debug.log:

#LDAP Debug
#$wgLDAPDebug = 3;
#$wgDebugLogGroups["ldap"] = "debug.log";

Аутентификация через Communigate Pro

В случае, если в качестве сервера LDAP используется Communigate Pro, конфигурация должна выглядеть след. образом:

$wgLDAPDomainNames = array('CGDomain');
$wgLDAPServerNames = array('CGDomain' => 'CGDomain.example.com');
$wgLDAPSearchStrings = array('CGDomain' => 'uid=USER-NAME, cn=example.com');
$wgLDAPEncryptionType = array('CGDomain' => 'clear');
$wgMinimalPasswordLength = 1;
$wgLDAPSearchAttributes = array('CGDomain'=>'uid');
$wgLDAPBaseDNs = array('CGDomain' => 'dc=example,dc=com');
$wgLDAPLowerCaseUsername = array('CGDomain' => true);
$wgGroupPermissions['*']['createaccount'] = true;
$wgLDAPDebug = 10;
$wgShowExceptionDetails = true;

Боремся со спамом

Средства Apache

Создаем файл .htaccess, который заблокирует досуп браузерам/скриптам с пустой строчкой User-agent

SetEnvIf User-Agent ^$ spammer=yes     # block blank user agents

Order allow,deny
allow from all           
deny from env=spammer

Средства MediaWiki

Мы используем следующую конструкцию, добавляем следующие параметры в LocalSettings.php:

$wgGroupPermissions['*']['edit'] = false;                                       
$wgGroupPermissions['*']['createpage'] = false;                                 
                                                                                
$wgGroupPermissions['user']['move']            = false;                         
$wgGroupPermissions['user']['read']            = true;                          
$wgGroupPermissions['user']['edit']            = true;                         
$wgGroupPermissions['user']['createpage']      = true;                         
$wgGroupPermissions['user']['createtalk']      = true;                          
$wgGroupPermissions['user']['upload']          = true;                         
$wgGroupPermissions['user']['reupload']        = true;                         
$wgGroupPermissions['user']['reupload-shared'] = true;                         
$wgGroupPermissions['user']['minoredit']       = true;                         
$wgGroupPermissions['user']['purge']           = false;                         
                                                                                
$wgGroupPermissions['sysop']['edit'] = true;                                    
$wgGroupPermissions['sysop']['createpage'] = true;     

Блокировки по ip-адресам

Подтверждение адреса электронной почты для редактирвоания статей

$wgEnableEmail         = true; // enable the e-mail basic features
$wgEmailAuthentication = true; // require email authentication for using any email function (except password reminder which works independently from this setting)
$wgEmailConfirmToEdit  = true; // Require a confirmed address to edit pages

Дополнение SpamBlackList

Дополнение ConfirmEdit

Скачиваем и устанавливаем дополнение. Чтобы скачать версию для PHP4 необходимо обратиться к SVN:

svn checkout -r 21970 http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/ConfirmEdit/

Чтобы обойти глюк с сообщениями плагина (на китайском) надо добавить следующую строчку в конец файла ConfirmEdit.i18n.php:

$wgConfirmEditMessages['last'] = $wgConfirmEditMessages['ru'];

Дополнение ConfirmAccount

Решить проблему с бесконтрольной регистрацией пачек спам-аккаунтов можно при помощи расширения ConfirmAccount.

Установка и настройка достаточно проста:

  • Скачать последнюю версию расширения по ссылке и разархивировать в папке с расширениями: http://www.mediawiki.org/wiki/Special:ExtensionDistributor/ConfirmAccount
  • Добавить в конфигурационный файл LocalSettings.php строку require_once("$IP/extensions/ConfirmAccount/ConfirmAccount.php");
  • Запустить в консоли в папке с установленной вики следующую команду php maintenance/update.php

Если в процессе установки вылезет ошибка: The last attempted database query was: "CREATE INDEX acr_email_token ON `account_requests` (acr_email_token)" from within function "DatabaseBase::sourceFile( /srv/www/vhosts/wiki.rsu.edu.ru/extensions/ConfirmAccount/ConfirmAccount.sql )". Database returned error "1170: BLOB/TEXT column 'acr_email' used in key specification without a key length (localhost)"

Необходимо вручную из БД MediaWiki удалить таблицу account_requests и поправить файл extensions/ConfirmAccount/ConfirmAccount.sql следующим образом.

Находим строку:

CREATE UNIQUE INDEX /*i*/acr_email ON /*_*/account_requests (acr_email(255));

И переносим ее следом за строкой:

CREATE INDEX /*i*/acr_type_del_reg ON /*_*/account_requests (acr_type,acr_deleted,acr_registration);

Снова запускаем php maintenance/update.php

В системе появится страница Служебная:ConfirmAccounts на которой можно будет отклонять или подключать новых пользователей системы.

Дополнение UsabilityInitiative

Скачиваем отсюда http://www.mediawiki.org/wiki/Special:ExtensionDistributor/UsabilityInitiative

// UsabilityInitiative/Vector require_once("$IP/extensions/UsabilityInitiative/Vector/Vector.php");
$wgVectorModules['collapsiblenav']['global'] = true; // Turns on collapsible sidebar navigation by default
$wgVectorModules['editwarning']['global'] = false; // Don't enable EditWarning globally
$wgVectorModules['editwarning']['user'] = true; // Allow users to enable EditWarning in their preferences
$wgVectorUseSimpleSearch = true; // Need this as well for SimpleSearch 
$wgDefaultSkin = 'vector'; // If you want to change the default skin for new users 
$wgVectorUseIconWatch = true; //Enable star icon to add/remove page from watchlist // UsabilityInitiative/WikiEditor
require_once("$IP/extensions/UsabilityInitiative/WikiEditor/WikiEditor.php");
$wgDefaultUserOptions['wikieditor-highlight'] = 0;
$wgDefaultUserOptions['wikieditor-preview'] = 1;
$wgDefaultUserOptions['wikieditor-publish'] = 0;
$wgDefaultUserOptions['usenavigabletoc'] = 0; 
$wgDefaultUserOptions['wikieditor-template-editor'] = 0;
$wgDefaultUserOptions['usebetatoolbar'] = 1;
$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;

Устранение неполадок

"You have made too many recent login attempts"

Чтобы осуществить сброс заблокированных адресов перезагрузите web-серврер или процесс web-серврера, использующий PHP-FPM. [3]

См. также

Ссылки

  1. http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/AD_Configuration_Examples
  2. http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/AD_Configuration_Examples
  3. http://www.mediawiki.org/wiki/Thread:Project:Support_desk/%22You_have_made_too_many_recent_login_attempts%22
Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты