Как сделать копию Википедии под Linux
Содержание
Введение
При написании инструкции все шаги были проверены на машине с процессором 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
Редактирование LocalSettings.php
Взято тут
Важной особенностью является то что все указанные ниже строки необходимо добавлять в конце файла, т.к в начале подгружаются дефолтные настройки, которые затем переписываются пользовательскими (теми которые вы в ручную прописываете по ниже приведённой инструкции).
1. Запрещаем редактирование не авторизованным пользователям
Прописываем
$wgGroupPermissions['*' ]['createaccount'] = true; $wgGroupPermissions['*' ]['read'] = true; $wgGroupPermissions['*' ]['edit'] = false; $wgGroupPermissions['*' ]['createpage'] = false; $wgGroupPermissions['*' ]['createtalk'] = false;
2. Добавляем логотип
Картинку 135*135 с прозрачным фоном загружаем в папку images/
Прописываем
$wgLogo = “{$wgScriptPath}/images/logofinal.png”;
3. Меняем favicon
Копируем изображение в папку images
$wgFavicon = “{$wgScriptPath}/images/obl.xbm”;
4. Разрешаем загрузку файлов
В LocalSettings.php ищем строки
$wgEnableUploads = true; $wgUseImageMagick = true; $wgImageMagickConvertCommand = “/usr/bin/convert”;
если где то стоит false или строка за комментирована – убираем комментарий и меняем на true
Также не забыть поменять на папку images права на 777
5. Разрешаем загрузку pdf и zip
Добавляем в LocalSettings.php
$wgFileExtensions = array_merge( $wgFileExtensions, array( ‘pdf’, ‘zip’ ) );
Это позволит к существующему массивы расширений добавить необходимые нам
Проблемы
Неправильная заглавная страница
В отличие от всех других страниц, Заглавная страница содержит страницу по умолчанию, а не ожидаемую копию из Википедии. Это связано с тем, что страница в архиве старше страницы вновь установленной Википедии. Старую страницу можно найти в истории правок.
После загрузки дампа страницы названия отображаются знаками вопроса
При использовании UTF8 и MYSQL5 нужно в файле LocalSettings.php установить переменную
$wgDBmysql5 = true