Wiki:Как сделать копию Википедии
- Данное руководство справедливо для компьютера с операционной системой Windows. Руководство для компьютера с операционной системой Linux размещено в другой статье.
Содержание
- 1 Введение
- 2 Настройка базы данных Википедии
- 3 Импорт дампов БД википедии для LAMP сервера на Ubuntu/Debian
- 4 Использование MWDumper
- 5 Обновление базы данных
- 6 Заключение
- 7 Дополнение: возможные проблемы и способы их решения
- 7.1 Сould not open input file: inportdump.php
- 7.2 Сообщение Unknown variable 'database=wikidb'
- 7.3 Сообщение MySQL functions missing, have you compiled PHP with the --with-mysql option?
- 7.4 Отказ в соединении с базой данных
- 7.5 Превышение max_allowed_packet
- 7.6 Неправильная заглавная страница
- 7.7 Ошибки при запуске importDump.php
- 8 Программы для чтения Википедии
- 9 Примечания
- 10 См. также
Введение
Данная статья описывает загрузку базы данных (дампа) статей Википедии в уже установленную MediaWiki. То есть предполагается, что вы уже установили программное обеспечение MediaWiki на свой компьютер в соответствии с руководством Установка MediaWiki.
Прежде чем приступить к действиям, следует учесть, что после установки сервера приложений XAMPP (также в качестве сервера приложений можно использовать [www.denwer.ru/ Denwer 3] или [www.STPServer.ru STPServer 1.0]) на компьютер, подключённый к общедоступной сети, любой человек сможет получить административный доступ к базе данных через phpmyadmin! Чтобы этого избежать, установите firewall (брандмауэр) и закройте от внешнего доступа порты 80, 443 и 3306 перед началом установки. При использовании Windows XP SP2 можно просто включить встроенный брандмауэр — по умолчанию он запрещает любые соединения на любые порты.
При написании обновлённой инструкции все шаги были проверены на машине с процессором Athlon XP 2600+ и установленной системой Windows Server 2003.
Если в процессе загрузки базы данных статей возникнут какие-то проблемы, обратитесь к разделу «Возможные проблемы и способы их решения» данного руководства.
Настройка базы данных Википедии
На download.wikimedia.org/backup-index.html скачиваем дамп Русской Википедии. Так как в списке будет много различных дампов, то можно с помощью поиска (Ctrl+F) найти русские дампы, которые начинаются на ru. Например, можно с помощью поиска найти дамп ruwiki.
Понадобятся следующие дампы
- pages-articles.xml.bz2 — Основной дамп содержимого всех статей, списка статей и их ревизий
SQL — скрипты таблиц базы данных
- category.sql.gz — список категорий
- categorylinks.sql.gz — связи страниц с категориями
- redirect.sql.gz — список страниц редиректов
- pagelinks.sql.gz — связи вида страница-на-страницу
- templatelinks.sql.gz — связи с шаблонами
- image.sql.gz — список изображений
- imagelinks.sql.gz — связи с изображениями
- interwiki.sql.gz — для корректного отображения, а точнее для не отображения интервик с Википедии(отсутствует в дампе 20160601)
Замечание: Сохраните все это в одну директорию, например, P:\LocalWiki\RunDump (pages-articles.xml.bz2 разархивировать не нужно, разархивация произойдет автоматически при импорте данных, остальные sql-скрипты нужно разархивировать).
Щелкаем на ruwiki. Открывается список успешных дампов (Dump complete). Выбираем один из дампов, например pages-meta-current.xml.bz2 или pages-articles.xml.bz2.
Обратите внимание на размер файлов!
Например, файл ruwiki-20080614-pages-meta-current.xml.bz2 имеет размер 449 Мб, а при его разархивации создается файл размером 2.9 Гб (Файл ruwiki-20081019-pages-meta-current.xml.bz2 размер 152 КБ при разархивации создается файл размером 808 КБ).
Загружаем выбранный архив.
Далее описывается последовательность действий для каждого из серверов приложений [www.STPServer.ru STPServer 1.0] и XAMPP.
Для сервера STPServer
Распакуйте архив, например, в папку C:\TEMP. Обратите внимание, у вас, наверно, будет другая дата в имени файла.
Перейдите в каталог T:\usr\local\mysql5\bin и выполните команду:
mysqld-max-nt.exe --user=root --database=wikidb < T:\home\virtual\prime\maintenance\wikipedia-interwiki.sql
Это необходимо для корректного отображения ссылок на другие языковые разделы.
Перейдите в каталог T:\home\virtual\prime\maintenance и выполните команду:
T:\usr\local\Php\php.exe importDump.php < C:\TEMP\ruwiki-20060202-pages-meta-current.xml
Это собственно сами страницы. Обратите внимание, у вас, наверно, будет другая дата в имени файла.
После того, как база импортирована, для комфортной работы лучше создать индекс для поиска и список соответствия страниц своим категориям.
Сначала нужно отредактировать один файл, необходимый для запуска скрипта rebuildall.php.
Перейдите в каталог T:\home\virtual\prime, переименуйте файл LocalSettings.sample в LocalSettings.php и в нем замените строки:
$wgDBadminuser = 'wikiadmin';
$wgDBadminpassword = 'adminpass';
на
$wgDBadminuser = 'Ваш логин к БД';
$wgDBadminpassword = 'Ваш пароль к БД';
Теперь перейдите в каталог T:\home\virtual\prime\maintenance и запустите полную переиндексацию:
T:\usr\local\Php\php.exe rebuildall.php
По окончании процесса переиндексации идём на [prime prime] и наслаждаемся собственной Википедией.
Для сервера XAMPP
Распакуйте архив, например, в папку C:\Program files\xampp\. Обратите внимание, у вас, наверно, будет другая дата в имени файла.
Перейдите в каталог C:\Program files\xampp\mysql\bin и выполните команду:
mysql --user=root --database=wikidb < "C:\Program files\xampp\htdocs\wikipedia\maintenance\wikipedia-interwiki.sql"
Это необходимо для корректного отображения ссылок на другие языковые разделы.
Перейдите в каталог C:\Program files\xampp\htdocs\wikipedia\maintenance и выполните команду:
"C:\Program files\xampp\php\php.exe" importDump.php < "C:\Program files\xampp\ruwiki-20060202-pages-meta-current.xml"
Это собственно сами страницы. Обратите внимание, у вас, наверно, будет другая дата в имени файла.
После того, как база импортирована, для комфортной работы лучше создать индекс для поиска и список соответствия страниц своим категориям.
Сначала нужно отредактировать один файл, необходимый для запуска скрипта rebuildall.php. Перейдите в каталог C:\Program files\xampp\htdocs\wikipedia\, переименуйте файл LocalSettings.sample в LocalSettings.php и в нем замените строки:
$wgDBadminuser = 'wikiadmin';
$wgDBadminpassword = 'adminpass';
на
$wgDBadminuser = 'root';
$wgDBadminpassword = '';
Теперь перейдем в каталог C:\Program files\xampp\htdocs\wikipedia\maintenance и запускаем полную переиндексацию:
"C:\Program files\xampp\php\php.exe" rebuildall.php
и идем пить кофе … на компьютере с процессором Celeron 2600 выполнение этого шага заняло около двух часов.
По окончании процесса переиндексации идём на свою собственную Википедию (localhost/wikipedia/) и наслаждаемся.
Для Mac OS X
1. Установить приложение "Server" из AppStore,
-открыть приложение "Server" и включить web сервер
2. Установить MySql,
3. Любым приложением для работы с Mysql:
-Создайте базу данных -создайте пароль для пользователя root
4. Скачать wiki движок Mediawiki, и положить в директорию с веб сайтом,
5. Зайти по адресу localhost/папка_с_mediawiki/ и произвести настройку (введите ранее созданные данные: имя БД, логин, пароль)
6. Скачать Dump википедии (* pages-articles.xml.bz) и разархивировать,
7. Открыть приложение "Терминал",
8. В программе "Терминал" вводим команды:
cd /путь_к_веб_сайту/папка_с_mediawiki/maintenance
php importDump.php < /путь_к_распакованному_дампу/pages-articles.xml
По окончании процесса переиндексации идём на свою собственную Википедию (localhost/папка_с_mediawiki/) и наслаждаемся.
Импорт дампов БД википедии для LAMP сервера на Ubuntu/Debian
Использование MWDumper
MWDumper — родная утилита проекта mediawiki, написанная на java и предназначенная для того же, для чего и importDump.php — импортирования дампов Википедии. Однако в отличие от последнего, MWDumper работает на порядок быстрее, так как позволяет сконвертировать XML-дамп в SQL-скрипт. Минусы — отсутствие поисковых индексов базы, рубрикации и других спец/мета-данных. Скачать последнюю JAR-сборку MWDumper можно [dumps.wikimedia.org/tools/ отсюда], либо же воспользоваться [svn.wikimedia.org/svnroot/mediawiki/trunk/mwdumper исходным кодом] и собрать вручную. Для работы утилиты необходим установленный JRE, рекомендуется версия 1.6 и выше.
Конвертирование базы осуществляется достаточно просто:
java -jar mwdumper.jar --format=sql:1.5 dump.xml > dump.sql
где --format=sql:1.5 — формат SQL-схем MediaWiki версии 1.5 и выше (для версий 1.4 и ниже используйте --format=sql:1.4), а dump.xml — исходный распакованный XML-дамп Википедии. По окончании процесса вы должны получить готовый SQL-скрипт.
Импортирование скрипта лучше всего осуществлять через CLI-утилиту MySQL — mysql.exe:
mysql.exe --user=root --password=rootpass use wikidb source X:\путь\до\dump.sql
где:
- rootpass — пароль для root-аккаунта MySQL
- wikidb — ваша база данных для установленной MediaWiki
- X:\путь\до\dump.sql — полный путь до сконвертированного SQL-файла
Процесс импортирования данных скрипта должен пройти достаточно быстро, даже для дампа с несколькими миллионами страниц. По окончании его вы получите копию содержимого всех страниц дампа. Если для вас этого достаточно — все, на этом процесс создания копии завершен. Ежели вам нужен рабочий полнотекстовый поиск, индексация, статистика, рубрикация и т. д. — необходимо запустить соответствующий скрипт rebuildall.php. Вы найдете его там же, где и importDump.php:
X:\путь\до\PHP.EXE rebuildall.php
Процесс индексации займет очень долгое время (в зависимости от размера базы — от нескольких часов до нескольких дней; индексация current-дампа Википедии от 7 декабря 2009 займет не один день) и требует очень много свободного места на диске с БД MySQL (40Gb для вышеупомянутого дампа).
Решение проблем:
- При конвертировании XML-дампа в SQL вы получаете скрипт с таблицами без префиксов, поэтому, если вы используете префиксы в БД вашей копии mediawiki — вам придется переустановить оную без использования префиксов для таблиц БД. Или же, как вариант, [www.mediawiki.org/wiki/Talk:MWDumper#Importing_to_a_database_with_table_prefix_for_wiki использовать скрипт] для добавления префиксов к названиям таблиц в SQL-дампе
- Для импортирования дампов такого большого объема не стоит использовать утилиты вроде MySQL Query Browser, используйте только консольную версию и только вручную.
Обновление базы данных
Скачав новый, более свежий дамп базы проделываем шаги из пункта Настройка базы данных за исключением выполнения скрипта wikipedia-interwiki.sql
Заключение
Другое программное обеспечение, используемое для установки:
- WinRAR (платный) или 7-Zip (свободный) для распаковки архива bz2
- Файловый менеджер (например, стандартный «проводник», Far Manager или Total Commander)
Дополнение: возможные проблемы и способы их решения
На шаге индексации лично у меня (FDSC) в самом начале происходили ошибки. Далее я привожу руководство, как с ними справиться. Если кто-то знает, как их избежать более корректно — напишите. Я сам не знаком с MySQL и мог что-то неправильно сделать.
Сould not open input file: inportdump.php
Появилось при выполнении команды
"C:\Program files\xampp\php\php.exe" importDump.php < "C:\Program files\xampp\ruwiki-20060202-pages-meta-current.xml"
Скажите как решить данную проблему
Ответ: Проверьте правильность написания имени файла «importDump.php»
Сообщение Unknown variable 'database=wikidb'
Может появиться при выполнении команды:
mysql --user=root --database=wikidb < T:\home\virtual\prime\maintenance\wikipedia-interwiki.sql
Этот SQL-запрос можно выполнить с помощью утилиты администрирования [admin/modules/mysql/phpmyadmin phpmyadmin].
Запустите панель и выберите базу данных wikidb. Далее нужно выбрать закладку SQL, нажать на кнопку Обзор и найти файл wikipedia-interwiki.sql
После этого нажмите на нижнюю кнопку Пошел. Появится сообщение, что SQL-запрос был удачно выполнен.
Сообщение MySQL functions missing, have you compiled PHP with the --with-mysql option?
Может появиться при выполнении команды импорта базы:
T:\usr\local\Php\php.exe importDump.php < C:\TEMP\ruwiki-20060202-pages-meta-current.xml
В этом случае необходимо последовательно выполнить следующие действия, до устранения ошибки.
Шаг 1. Запустить следующую команду с указание пути к файлу php.ini (опция -c).
Например:
T:\usr\local\Php\php.exe -c T:\usr\local\Apache\bin\php.ini importDump.php < C:\TEMP\ruwiki-20060202-pages-meta-current.xml
Шаг 2. Проверьте с помощью следующей команды список загружаемых модулей:
T:\usr\local\Php\php -m
В списке должен быть модуль mysql. Если этого модуля в списке нет, то базу импортировать не удастся.
Шаг 3. Проверьте, что в файле php.ini разрешен запуск модуля php_mysql.dll:
extension=php_mysql.dll
Впереди этой строки НЕ ДОЛЖНО быть знака; (точка с запятой).
Шаг 4. Проверьте содержимое папки, в которой хранятся динамически загружаемые расширения PHP (PECL). Размещение этой папки определено в файле php.ini:
extension_dir = "/usr/local/PHP/PECL"
Данная папка должна содержать файл php_mysql.dll
Шаг 5. Скопируйте файлы php_mysql.dll и libmysql.dll в папку C:\WINDOWS\SYSTEM32
Скопируйте файл php.ini в папку C:\WINDOWS.
Попробуйте еще раз выполнить команду импорта базы.
Если после описанных шагов так и не удалось импортировать базу, обратитесь к специалистам.
Отказ в соединении с базой данных
Если у вас выводится сообщение о отказе в соединении с базой данных.
1. Проверьте, запущен ли у Вас MySQL. Для этого запустите из директории, куда вы установили xampp файл ....\xampp\xampp-control.exe (ярлык должен быть на рабочем столе, если нет - найдите сам файл). Две верхние кнопки должны быть с надписью Stop, напротив слов Apache и MySql должны быть слова Running. Если это не так, запустите приложения кнопками Start.
2. При настройке Wiki в полях Database name, DB username и DB password должны быть установлены такие же значения, как и при создании нового пользователя и базы данных при настройке MySQL. Database name соответствует имени создаваемой в MySQL базе, Имя пользователя — DB user name, Пароль — DB password. Если у Вас не так — самое лёгкое: сотрите базу данных (в администраторе MySQL) и каталог с данными wikipedia (…\xampp\htdocs\wikipedia) и проделайте соответствующие шаги заново.
Если это не помогает (у меня не помогло, в чём дело — не знаю), сделайте следующее (это помогло):
1. Для ВСЕХ пользователей MySQL в phpmyadmin сотрите пароли Это делается так: привилегии -> на экране таблица пользователей. В ней для любого пользователя жмём значок справа (редактировать привилегии). Далее находим заголовок «Изменить пароль». Отмечаем «без пароля» и нажимаем кнопку с надписью «пошёл». Далее повторяем процедуру для всех оставшихся пользователей.
Внимание! Не запускайте сервера Apache и MySQL без паролей при подключении к internet.
2. В файле …\xampp\htdocs\wikipedia\LocalSettings.php найдите строки вида
$wgDBserver = "localhost"; $wgDBname = "wikidb"; $wgDBuser = "wikiuser"; $wgDBpassword = "password"; $wgDBprefix = "";
Напишите $wgDBpassword = "", тем самым обнулив пароль. Так как Вы работаете на ПК без подключения к internet, а не сервере, пароль всё равно не нужен.
Превышение max_allowed_packet
Может выводится сообщение о превышении размера запроса над величиной переменной max_allowed_packet.
1. Остановите сервер MySQL. Аналогично первому пункту, используем С:\Program files\xampp\xampp-control.exe, нажимаем вторую сверху кнопку с надписью «Stop» (напротив слов MySQL: Running). Если кнопка имеет надпись «Start», ничего делать не надо: сервер не запущен.
2. В командной строке переходим в каталог C:\Program files\xampp\mysql\bin.
3. Набираем команду:
mysqld.exe --max_allowed_packet=134217728
Нажимаем Enter, далее, окно консоли можно закрыть. Число справа — максимальный размер пакета. Вы можете ввести и другое число (в примере — 128 Мб). По умолчанию размер пакета 1 Мб.
Неправильная заглавная страница
В отличие от всех других страниц, Заглавная страница содержит страницу по умолчанию, а не ожидаемую копию из Википедии. Это связано с тем, что страница в архиве старше страницы вновь установленной Википедии. Старую страницу можно найти в истории правок. Заодно можно поупражняться в редактировании и восстановить страницу.
Заглавной страницей может быть назначена любая вновь созданная или уже имеющаяся страница с вашего ВИКИсайта. Достаточно указать ссылку на странице /index.php/MediaWiki:Mainpage
Ошибки при запуске importDump.php
Следующее предупреждение:
Warning: xml_parse(): Unable to call handler in_() in /var/www/includes/Import.php on line 437
возникает из-за изменений в xsd схеме формата xml файла. Скачайте последнюю ревизию файла по этой ссылке: svn.wikimedia.org/viewvc/mediawiki/trunk/phase3/includes/Import.php?view=log и замените ей оригинал в папке /includes.
Если же вы получаете ошибку, в теле которой упоминаются zend и Preprocessor_DOM.php — скорее всего у вас активирован zend compatibility mode в настройках PHP (директива zend.ze1_compatibility_mode установлена в on). Отключите ее (обязательно глобально) и перезапустите WEB-сервер.
Программы для чтения Википедии
- Kiwix — статьи и изображения хранятся в виде сжатого файла в формате ZIM [download.kiwix.org/zim/wikipedia/].
Можно также использовать программу WikiTaxi www.wikitaxi.org/delphi/doku.php/products/wikitaxi/index
Примечания
См. также
- [www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Ubuntu_11.04/ru Установка mediawiki 1.19 на ubuntu 12.04/debian 6]
- [ru.vlab.wikia.com/wiki/Как_сделать_копию_Википедии_(Windows) Как сделать копию Википедии] (рус.). [ru.vlab.wikia.com Virtual Laboratory Wiki]. — правообладатель альтернативной версии статьи. Проверено 7 июня 2009.