Справка:Содержание — различия между версиями

Материал из wiki.tlib.ru
Перейти к: навигация, поиск
Строка 92: Строка 92:
 
</pre>
 
</pre>
 
При установке apc (последняя команда) будут запрошены установки. Можно их выбрать по умолчанию (т.е. все время жать Enter)
 
При установке apc (последняя команда) будут запрошены установки. Можно их выбрать по умолчанию (т.е. все время жать Enter)
test
 

Версия 12:21, 7 июля 2013

Содержание

Апгрейд движка

  1. Скачиваем новую версию движка.
  2. Делаем на http-сервере копию папки с сайтом
  3. Делаем на sql-сервере копию базы данных сайта. Не забываем дать права движку на эту БД.
  4. Копируем новую версию движка поверх копии сайта
  5. В LocalSettings.php копии сайта прописываем вместо оригинальной бд её копию.
  6. Запускаем апгрейд базы данных (из папки maintenance выполняем команду php update.php)
  7. По очереди проверяем расширения и включаем их (работоспособность сайта можно проверить, сделав временно под него виртуальный хост с записью его имени в /etc/hosts на своем терминале).
  8. Переключаем сайт на новый движок

Подробная инструкция по апгрейду

  1. Сайт wiki.tlib.ru крутится на Mediawiki. Находится он в директории /var/www/mediawiki. Если забыл/не знал - смотри /etc/httpd.conf (искать нужный виртуальный хост и смотреть значение директивы Directory). Название базы указано в файле /var/www/Mediawiki/LocalSettings.php.
  2. Новая версия Mediawiki обычно лежит по адресу http://www.mediawiki.org/wiki/Download Распаковка tar.gz-архива:
    tar xzf имя-архива.tar.gz
  3. Для копирования папки можно применить следующую команду
    cp -r имя-папки имя-копии-папки
  4. Для копирования базы данных можно применить следующие команды:
> mysqldump -u db_user_name -h db_server_host -P db_server_port --password="db_user_password" db_name >wikitlib.sql
> mysql -u user_name -p
 % create database copyofwikitlibdb;
 % GRANT ALL PRIVILEGES ON copyofwikitlibdb.* TO db_user_name@'localhost' identified by 'db_user_password';
 % quit
> mysql -u root -p copy_of_db < wikitlib.sql 

Есть и другие варианты, Ренат, см. инструкцию в Exchange.

  1. В LocalSettings.php находим и правим след. строчку:
    $wgDBname           = "ИМЯ БАЗЫ ДАННЫХ";
    подставляем сюда имя копии базы данных. Проверяем, что пользователь $wgDBuser имеет к ней доступ.
  2. Копируем файлы нового движка поверх копии сайта. Заходим в папку копии сайта / maintenance. Запускаем update.php для апдейта схемы БД.
cp -r mediawiki-1.18 copy_of_wiki_tlib_folder
cd /maintenance
php update.php
  1. Заходим на сайт. Если сайт упал, то заходим в LocalSettings.php и по очереди отключаем расширения. В конфиге это все строчки вида
    require_once("$IP/extensions/Cite/Cite.php");
    . Чтобы отключить расширение, нужно закомментировать строчку, например, так:
    //require_once("$IP/extensions/Cite/Cite.php");

Находим комбинацию расширений, при которой сайт не падает. Лучше всего заходить при этом на страницы, где эти расширения применены, или в песочницу. Проверяем загрузку файлов. Проверяем создание нового пользователя.

Перечень установленных расширений

РасширениеСмысл
ParserFunctionsДобавляет условные операторы к викитексту
MediaFunctionsadds several parser functions to MediaWiki which provide access to properties and metadata of various media files in both local and remote repositories
Variableallows you to define a variable on a page, use it later in that same page or included templates, change its value, possibly to a value given by an expression in terms of the old value, etc.
swfВставка swf-роликов
PostFormОтображение и отправка форм с сайта
PopupВставка картинки - ссылки на попап с увеличенным изображением
GalleryTableПубликация картинок в виде галереи
ImageReferenceКартинка-ссылка (устаревший функционал) - нужно включать три файла: extensions/ImageLinkPF.php,ImageReference/ImageReference.php и ImageReference/IRef
DeleteuserСпецстраница для удаления участников
CiteДобавляет теги <ref[ name=id]> и для сносок
LockdownПрава групп на пространства имен.
$wgGroupPermissions['*']['edit'] = true;

$wgNamespacePermissionLockdown['*']['edit'] = array('user');

$wgNamespacePermissionLockdown[NS_TALK]['edit'] = array('*');
ConfirmEditПростая реализация CAPTCHA
Google MapsНужно указывать GoogleMapsKey и дефолтные координаты в конфиге
SimpleAntiSpamДобавляет на форму простую проверку на спам и ботов

Из установленных расширений ConfirmEdit и GoogleMaps в версии 1.17 конфликтуют, поэтому функциональность ConfirmEdit урезана. Это значит, что это расширение не вызывается при попытке сохранить исправленную страницу. Чтобы урезать функционал, нужно найти и исправить в файле /extensions/ConfirmEdit/ConfirmEdit.php следующий кусок кода:

$wgCaptchaTriggers = array();
$wgCaptchaTriggers['edit']          = false; // Would check on every edit
$wgCaptchaTriggers['create']		= false; // Check on page creation.
$wgCaptchaTriggers['sendemail']     = false; // Special:Emailuser
$wgCaptchaTriggers['addurl']        = false;  // Check on edits that add URLs
$wgCaptchaTriggers['createaccount'] = true;  // Special:Userlogin&type=signup
$wgCaptchaTriggers['badlogin']      = true;  // Special:Userlogin after failure

Также в настоящий момент не работает расширение одновременной загрузки нескольких файлов - MultipleUpload.

Изменения, вносимые в движок

Создание новой секции сверху страницы при нажатии на плюсик

В файле includes/Article.php нужно найти и поправить след. строчку:

if ( $section == 'new' ) {
$subject = $summary ? wfMsgForContent( 'newsectionheaderdefaultlevel', $summary ) . "\n\n" : ;
/* //закомментировать этот кусок кода
$text = strlen( trim( $oldtext ) ) > 0
? "{$oldtext}\n\n{$subject}{$text}"
: "{$subject}{$text}";
*/
//вместо него добавить нижнюю строчку
$text = strlen( trim( $oldtext ) ) > 0 ? "{$subject}{$text}\n\n{$oldtext}" : "{$subject}{$text}";
}

Особенности перехода с версии 1.17 на версию 1.18

  1. В LocatlSettings.php меняет тип кэширования с CACHE_ACCEL на CACHE_ANYTHING
  2. Комментируем расширения MediaFunctions.php, DeleteUser.php, SimpleAntiSpam.php, GoogleMaps.php.
  3. В файле /includes/ProfilerStub.php комментируем функции wfProfileIn и wfProfileOut.
  4. В файле includes/upload/UploadBase.php комментируем 560-565 строчки (проверку на наличие дупликатов в архиве)
  5. Если на линукс-машине вдруг не установлен apc, устанавливаем его так:
yum groupinstall "Development Tools"
yum install pcre_devel
yum install php-devel
pecl install apc

При установке apc (последняя команда) будут запрошены установки. Можно их выбрать по умолчанию (т.е. все время жать Enter)

Персональные инструменты
Пространства имён

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