Как сделать копию Википедии под Linux

Материал из Wiki МИАЦ ВО
Версия от 08:20, 25 октября 2007; Misha (обсуждение | вклад) (Защищена страница «Как сделать копию Википедии под Linux» [edit=autoconfirmed:move=autoconfirmed])
Перейти к навигации Перейти к поиску

Введение

При написании инструкции все шаги были проверены на машине с процессором Athlon XP 3500+ и установленной системой Fedora Core 6. Перед установкой было скачано из сети Internet : MediaWiki 1.9.0 (3.7 мегабайта), архив ruwiki (147.1 мегабайт), архив interwiki.sql.gz (7 килобайт).

Установка сервера

Создадим базу данных.

mysql> create database wikidb;
Query OK, 1 row affected (0.00 sec)

Установка недостающих пакетов

# urpmi php-cli
# urpmi php-xml

Установка MediaWiki

Скачиваем и устанавливаем MediaWiki. На http://wikipedia.sourceforge.net/ скачиваем последнюю версию MediaWiki (у меня была версия 1.9.0 то есть я скачал файл mediawiki-1.9.0.tar.gz). Это архив. Распакуем его содержимое в директорию, например /var/www/html/mediawiki.

Зайдя по адресу http://your_domain/mediawiki/ увидим сообщение

MediaWiki 1.9.0
Please set up the wiki first. 

Жмем на ссылку set the wiki up.

В разделе Site config заполняем поля:

  • Site name — Википедия
  • Language — выбираем Русский
  • Sysop account name — указываем любое имя (это будет пользователь с правами администратора Википедии)
  • Sysop account password — указываем пароль, в поле again его нужно повторить

В разделе Database config заполняем поля:

  • Database name — имя базы данных. Можно оставить значение по умолчанию wikidb
  • DB username — имя пользователя для подключения к базе. Можно оставить значение по умолчанию wikiuser. Он понадобиться только в процессе настройки.
  • DB password — пароль пользователя. Например 123456, в поле again его нужно повторить
  • Super user — вводим то же что и в DB username
  • Password — вводим то же что и в DB password

Жмем Install!. Должны получить страницу примерно с таким содержимым:

    * PHP 5.1.6 installed
    * Found database drivers for: MySQL
    * PHP server API is apache2handler; ok, using pretty URLs (index.php/Page_Title)
    * Have XML / Latin1-UTF-8 conversion support.
    * PHP's memory_limit is 16M. If this is too low, installation may fail! Attempting to raise limit to 20M... ok.
    * Have zlib support; enabling output compression.
    * Couldn't find Turck MMCache, eAccelerator or APC. Object caching functions cannot be used.
    * Found GNU diff3: /usr/bin/diff3.
    * Found ImageMagick: /usr/bin/convert; image thumbnailing will be enabled if you enable uploads.
    * Installation directory: /var/www/html/mediawiki
    * Script URI path: /mediawiki
    * Environment checked. You can install MediaWiki.
    *

      Generating configuration file...
    * Database type: MySQL
    * Loading class: DatabaseMysql
    * Attempting to connect to database server as root...success.
    * Connected to 5.0.27
    * Database wikidb exists
    * Creating tables... using MySQL 4 table defs... done.
    * Initializing data...
    * Created sysop account root.
    *

      Creating LocalSettings.php...

      Installation successful! Move the config/LocalSettings.php file into the parent directory, then follow this link to your wiki.

Переносим файл config/LocalSettings.php в основную директорию. Удаляем папку ./config. После этого жмём ссылку this link, то есть переходим по адресу http://your_domain/mediawiki/ и видим пустую википедию.

Для того чтобы добавить все статьи нужно проделать ещё ряд действий.

Настройка базы данных Википедии

Скачаем дамп базы Википедии.

На http://download.wikimedia.org/ скачиваем дамп Русской Википедии. Я скачивал pages-meta-current.xml.bz2. Этот архив содержал файл ruwiki-20061207-pages-meta-current.xml. Распакуем его, например, в папку /home/temp. Обратите внимание, у Вас наверно будет другая дата в имени файла и другая директория. Копируем файл AdminSettings.sample в файл AdminSettings.php и заполняем значения $wgDBadminuser и $wgDBadminpassword. Не забудьте удалить эти значения после окончания процедуры дампа. Выполним команду:

mysql --user=root --database=wikidb < /home/temp/ruwiki-20061207-interwiki.sql

Это необходимо для корректного отображения ссылок на другие языковые разделы

Перейдем в каталог /var/www/html/wikipedia/maintenance и выполним команду:

php /var/www/html/mediawiki/maintenance/importDump.php < /home/temp/ruwiki-20061207-pages-meta-current.xml

это собственно сами страницы. Обратите внимание, у Вас наверно будет другая дата в имени файла.

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

Теперь запускаем полную переиндексацию:

php ./rebuildall.php

По окончании процесса переиндексации идём на свою собственную Википедию (http://localhost/mediawiki/).

Формулы LaTeX

Процесс инсталяции хорошо описан в README, лежащем в каталоге /wiki/math. Скачиваем с сайта http://caml.inria.fr/ пакет ocaml, компилим:

./configure
make world
make opt
make install

(или просто устанавливаем пакет если скачивали rpm), Проверяем установлен ли пакет tetex-latex — если нет — ставим. Заходим в каталог /wiki/math — делаем make. Если не будет работать make — проверяем пути. Проверить правильность установки можно командой «texvc <temp directory> <output directory> <TeX code> <encoding>», я например писал «texvc /home/kvazar/temp /var/www/html/mediawiki/math „y=x+2“ iso-8859-1».

Функции парсера

Скачайте все три указанных ниже файла и установите их в новую директорию mediawiki/extensions/ParserFunctions.

Затем добавьте в конец файла LocalSettings.php строку

require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" );

Дерево кода можно посмотреть тут:

Обновление базы данных

Скачав новый, более свежий дамп базы проделываем шаги из пункта Настройка базы данных за исключением выполнения скрипта wikipedia-interwiki.sql

Проблемы

Неправильная заглавная страница

В отличие от всех других страниц, Заглавная страница содержит страницу по умолчанию, а не ожидаемую копию из Википедии. Это связано с тем, что страница в архиве старше страницы вновь установленной Википедии. Старую страницу можно найти в истории правок.

После загрузки дампа страницы названия отображаются знаками вопроса

При использовании UTF8 и MYSQL5 нужно в файле LocalSettings.php установить переменную

$wgDBmysql5 = true