FAQ FAQ по обновлению и установке. Прочитайте перед тем как создать тему!

UksusoFF

Moderator
Команда форума
Регистрация
13.05.2013
Сообщения
1 718
Реакции
204
Небольшой FAQ по обновлению и общим вопросам MediaWiki.

В принципе, для человека, знакомого с Apache, IIS и PHP не составляет труда без проблем обновить MW до актуальной версии.
Однако очень часто возникают одни и те же вопросы у новичков. Этот FAQ как раз сборка этих вопросов из лички и форума MediaWiki.ru

И так, перед обновлением необходимо знать о следующих вещах:

LTS
(англ. Long Term Support; «поддержка в течение длительного периода»)
Если ваша MW довольно старая, то лучше в качестве промежуточной версии использовать так называемые предыдущие версии.
Как правило этой версии вполне достаточно для удачного обновления, но если уж очень хочется идти по шагам +1, то все версии MW можно скачать с официального сайта.

Версии
Опять же если между установленной версией и той на которую хотите обновлять довольно большой, то обратите внимание на версии PHP и MySQL поддерживаемые вашими версиями MW.
Изменения поддержки PHP описаны на странице с историей версий.
Например на момент написания статьи (ноябрь 2013) самой распространенной версией PHP является 5.2, версии MW выше 1.19 поддерживают только PHP 5.3, в то время как MW версии ниже 1.19 не поддерживает PHP 5.3. Это в большинстве случаев и вызывает проблемы и ошибки при обновлении.
Вашу версию PHP, MySQL и MW можно посмотреть на специальной странице Special:Version.

Расширения
Так же на странице Special:Version можно увидеть включенные расширения и их версии.
Если возникают проблемы с обновлением, то их тоже рекомендуется отключить.
Отключаются они так же как и включаются, только в обратной последовательности.
Как правило достаточно закомментировать строки вида:
Код:
require_once "$IP/extensions/extension_name/extension_name.php";
в файле LocalSettings.php.
После успешного обновления движка MW их тоже необходимо обновить и включить заново.

Резервные копии
Перед тем как обновляться обязательно сделайте резервные копии файлов и БД!.
Если у вас довольно объемная БД, то рекомендуется делать бекап: через Sypex Dumper или через консоль или сделать резервную копию файлов БД.

Так же будет полезным прочитать несколько ссылок по теме:
Manual:Backing_up_a_wiki
Manual:Restoring_a_wiki_from_backup

Обновление
Теперь когда у нас все готово, приступим к обновлению.
Сам процесс обновления довольно подробно описан в документации на английском, и чуть менее подробно на русском.
Два основных способа обновления это через консоль (при наличии SSH доступа к хостингу на *nix системах или через cmd на Windows) и через браузер.
Способ обновления через консоль является рекомендованным, так как отображает все ошибки наиболее подробно!
Если вы не знаете как запустить консоль php на Windows, то:
Работа с php из консоли Windows
Возможно, кому-то пригодится. Мне вот пригодилось, когда наш злобный техлид решил, что «SQL-файлы – это ващепрошлыйвек, давайте юзать миграции». Я, конечно, для приличия попыталась изобразить полное непонимание и даже пустить слезу, но была разоблачена и отправлена разбираться с тем, как это работает на Windows.
Оказалось, что всё что нужно для счастья – это прописать PHP директорию в PATH.
6e5c0f9898eaa03e4d96c00441f9e9a5.png

Нажимаем на «Изменить» и добавляем в конец строки
Код:
;Z:\usr\local\php5
(прим. тут необходимо указать реальный путь к вашему php!)

Теперь проверим, что всё заработало.
В директории тестового сайта создадим файл console.php
Код:
<?php
if ($argv[0] == basename(__FILE__)) {   
    unset($argv[0]);
}
echo 'Hello ' . $argv[1] . '!';
?>
Открываем консоль (можно прям из этой же папки – щелкаем правой кнопкой мыши с зажатым SHIFT-ом на пустом месте и выбираем пункт «Открыть окно команд»).
Вводим:
Код:
php console.php “UserName”
Консоль отвечает:
> “Hello, UserName!”
0f025ab6ffd7d4d815096f5ebc6315d0.png


PHP побеждён, всеобщее ликование, апплодисменты, занавес.
Источник: habrahabr.ru

Короткие ссылки
Как настроить короткие ссылки написано в мануале.
Однако иногда возникают проблемы с настройкой:
Для упрощения генерации правил есть скрипт: http://shorturls.redwerks.org

Проблемы обновления с MW версии <= 1.16
Теперь о наиболее частых проблемах возникающих при обновлении со старых версий движка.

Вопрос: Проблема в том что когда я ее обновляю, пропадает содержимое всей википедии. И появляется абсолютно новая и чистая википедия.
Ответ: Наиболее вероятный сценарий этой проблемы в ошибках кодировки БД. Если ваша спецстраница Special:AllPages, отображает нечто подобное:

Тогда у вас однозначно проблема с кодировками!
Для решения этой проблемы необходимо изменить кодировку таблиц на нужную, как это сделать описано тут, тут, тут и вот тут тут.

Вопрос: Во время обновления выдается ошибка:
Fatal error: Cannot redeclare wfprofilein() (previously declared in ...\wiki\includes\profiler\Profiler.php:14) in ...\wiki\includes\ProfilerStub.php on line 12
Ответ: Для устранения этой ошибки закомментируйте эту строку в файле ProfilerStub.php:
Код:
require_once( dirname(__FILE__).'/includes/ProfilerStub.php' );
 
Последнее редактирование:
Белая страница и ошибка 500
Если после обновления отображается белая страница или ошибка HTTP Error 500.0 - Internal Server Error, но нужно включить отображение ошибок веб-сервера и уже искать по определенной ошибке.

Если у вас Apache, то нужно в файл LocalSettings.php добавить следующие строки:
Код:
$wgShowExceptionDetails = true;
$wgShowSQLErrors = true;
error_reporting( -1 );
ini_set( 'display_errors', 1 );
Сообщение об ошибке будет отображено на странице и в логах Apache.

Если у вас IIS, то ошибки нужно искать в Windows EventLog.
Если в EventLog пусто, то следуйте следующим инструкциям:

Enable PHP Error Messages to Diagnose Application-Level Errors

Configuring IIS to validate requests causes IIS to attempt to open the PHP script file corresponding to the request URL and generates detailed error messages for any conditions that preclude this. This typically includes:
  • File not found
  • Access denied due to incorrect permissions
  • Access denied due to insufficient authentication
  • For most other error conditions, especially those that occur at the application level, IIS detailed error messages do not contain sufficient information to help diagnose the error effectively.
The biggest examples of such errors are script parsing and script interpretation errors. While you can force IIS detailed error messages for these errors, this typically does not provide any value in diagnosing the root cause of the error. In these cases, you must rely on the information provided by PHP to diagnose these errors.
By default, PHP is not configured to display these errors to the response to prevent disclosure of sensitive information.
Note that for local debugging, you can enable PHP error display to diagnose PHP errors while debugging. Consider disabling PHP error display for production applications.
If you request a page with a script error, you receive the IIS detailed error message. This happens because by default PHP does not generate a response with the error details, so IIS inserts its generic “500 Server Error” detailed error. While this error correctly suggests that PHP has returned a 500 error code, it does not provide application-specific information about what caused the error.
You can configure PHP to display errors in responses.
1. Using Windows Explorer, browse to C:\PHP.
2. Open the Php.ini file in the PHP installation directory.
3. Find and set the display_errors = On directive:
Код:
<< 
; Print out errors (as a part of the output). For production web sites,
; you're strongly encouraged to turn this feature off, and use error logging
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
;
; possible values for display_errors:
;
; Off          - Do not display any errors ; stderr       - Display errors to STDERR (affects only CGI/CLI binaries!)   
; On or stdout - Display errors to STDOUT (default)
;  
; To output errors to STDERR with CGI/CLI:              
; display_errors = "stderr"
;
; Default
;
display_errors = On
>>
4. Save and close the file.
5. Reset IIS. Click Start, and then select Command Prompt, right click and select Run as administrator to open a command-line window.
6. Type iisreset.exe
7. Press Enter.
If you request a page with a script error now, you get a PHP parse error:
<<
Parse error: parse error in C:\inetpub\troubleshootingPhp\error.php on line 3 >>
If you see only the default Internet Explorer HTTP 500 Internal Server Error page, you must disable friendly error messages. Within Internet Explorer Go to Tools, Internet Options, Advanced tab, and then clear the Show friendly HTTP error messages check box.
Note that PHP also provides options for customizing default error handling or completely overriding it.
Источник: iis.net

Just to double check, do you have logging set to E_ALL, and display_errors enabled in your php.ini? Usually this is enough to display these errors in IIS 7.
Next, take a look at your IIS settings, as it may be set to only show error messages locally. In the IIS 7 configuration editor this is under system.webServer->httpErrors. You will need to change errorMode to Detailed from DetailedLocalOnly. Obviously this now means anyone browsing your site will be able to see the error.
Источник: serverfault.com
 
Последнее редактирование:
А теперь
Если ничего не помогло
Не торопитесь создавать еще одну тему!
Если у вас выдается какая-то ошибка, то поищите ее в Google, поиском по сайту MW, и по форуму.
Если ничего не нашлось, то максимально подробно опишите ваше окружение:
  • версии: PHP, MW, веб-сервера;
  • в какой папке находится MW, в корне? в подпапке? на поддомене?
  • тип хостинга;
  • браузер
  • etc
Не пишите фразы "у меня ошибка, ничего не работает!", укажите какая конкретно ошибка и что конкретно не работает или работает не так как ожидалось.
 
Здравствуйте.
Есть работающий сайт с версией mediawiki 1.15, работает на локальном сервере.
Есть желание перенести на новый сервер и заодно обновить версию mediawiki до 1.26.2. Из прочитанного FAQ как мне показалось, надо обновлять по ступеням от версии к версии, но это очень долго и есть вероятность "словить грабли" при обновлении.
При попытке сделать дамп базы и перенести на новую версию получил ошибку: A database query error has occurred. This may indicate a bug in the software.
Подскажите пожалуйста, как лучше поступить в данном случае?
 
Подскажите пожалуйста, как лучше поступить в данном случае?
Обновлять поэтапно.
Зависит от настроек вашего окружения. В основном проблемы с PHP: https://www.mediawiki.org/wiki/Compatibility#PHP
Например если на хостинге php 5.2, то 1.15 обновить до 1.19. Затем обновить php до 5.3. И т.д.
 
Подскажите пожалуйста, как лучше поступить в данном случае?
Есть альтернативный способ:
1. Делаем XML-дамп статей, стандартный MW скрипт
2. Делаем дамп картинок, стандартный MW скрипт
3. Ставим на отдельном домене/папке чистую вики
4. Импортируем статьи, стандартный MW скрипт
5. Импортируем картинки, стандартный MW скрипт

Только обратите внимание на кодировку файловой системы - русские имена файлов могут в гумно превратиться.
 
Привет всем! В общем обновился с 1.22.13 до 1.26.3 ) ... и конечно возник ряд проблем!
Буду просить помощи по порядку!
Страница входа выглядит очень как-то странно и даже не знаю, чем это вызвано. Есть идеи?
 

Вложения

  • Снимок экрана 2016-05-31 в 14.44.27.png
    Снимок экрана 2016-05-31 в 14.44.27.png
    76,2 КБ · Просмотры: 10
Модули все обновили? Maintance скрипт запускали? Права на папки? Скины кастомные?
 
Модули все обновили? Maintance скрипт запускали? Права на папки? Скины кастомные?
Модули - имеешь в виду расширения в папке extensions? Станлартные да, нестандартные пока не все! Maintance не запускал - а как это сделать? Права наипапки пока неипроверял, сделать все 777? Скины кастомные, да! Завтра буду ковыряться, но глюков хватанул с новой версией - потихонечку буду разбираться ) если что отписываться буду
 
Ну вот и ответ.
 
Все оказалось гораздо проще.
Нужно было всего навсего, скопировать папку images, расширения которые дополнительно были установлены, .htaccess, прочие добавленные файлы.
Потом удалить папку движка, и закачать новый движок, а потом поверх эти файлы.
Веб-установщик запустить, обновить базу в нем. Потом сконфигурировать файл LocalSettings.php, и сравнить со старым, если изменений нет, просто использовать свой старый файл.

И никакого SSH не надо.

UPD (от 08.08.2017):
Столкнулся тут с проблемой: http://mediawiki.ru/forum/threads/Как-удалить-страницу-из-истории-базы-данных.745/#post-5170

Похоже всё таки SSH потребуется, чтобы запустить скрипт update.php

Я запускал с помощью расширения: https://www.mediawiki.org/wiki/Extension:GoToShell
И строчки в LocalSettings.php:
Код:
$wgGoToShellCommand = "php maintenance/update.php";
Также нужно после этого зайти в "Спецстраницы" и перейти на страницу "GoToShell".
 
Последнее редактирование:
Есть альтернативный способ:
1. Делаем XML-дамп статей, стандартный MW скрипт
2. Делаем дамп картинок, стандартный MW скрипт
3. Ставим на отдельном домене/папке чистую вики
4. Импортируем статьи, стандартный MW скрипт
5. Импортируем картинки, стандартный MW скрипт

Только обратите внимание на кодировку файловой системы - русские имена файлов могут в гумно превратиться.

Печаль/беда прям с Импортом/Экспортом. Ни в какую не хочет загружаться.
Где пробовал:
1. На локальном серв (XAMMP).
2. На шаред-хостинге
3. Еще раз на лок., специально поставил чистую Вики без всех расширений. (читал какое то может мешать)

Результат всегда один. Скорее всего я делаю какую то элементарнейшую ошибку.. Может еще где-то что то надо прописать ?
---
Добавил- не поменялось
$wgGroupPermissions['user']['import'] = true;
$wgGroupPermissions['user']['importupload'] = true;
локал.PNG

UP кто что скажет про Импорт
 
Последнее редактирование:
Назад
Верх