Я обновил Ubuntu 14.04 до 16.04 и обнаружил, что нет пакета mediawiki
, потому что Debian удалил его в декабре 2015 года как устаревший и никто хотел сохранить его .
Вчера у меня была работающая установка MediaWiki, а после обновления - нет. Как я могу восстановить его и запустить?
Этот ответ предполагает, что Вы готовы поддержать MediaWiki сами с этого времени.
Кроме того, это установит MediaWiki в реальном корне документа Вашего веб-сервера. Ранее, это будет псевдонимом, и реальный путь установки будет под /var/lib/mediawiki
, но поскольку теперь ваше дело поддерживать его вместо специалистов по обслуживанию Debian/Ubuntu, является самым простым положить его под свой реальный путь.
В этом ответе корень документа веб-сайта /srv/apache2/public_html
и местоположение Wiki на веб-сервере /wiki
(например. http://myserver/wiki
), создание полного пути /srv/apache2/public_html/wiki
. Необходимо будет адаптировать эти пути для установки собственной установке.
Загрузите последний MediaWiki и распакуйте его непосредственно к пути, который он должен иметь на Вашем веб-сервере.
wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.2.tar.gz
tar xvf mediawiki-1.26.2.tar.gz
mv mediawiki-1.26.2 /srv/apache2/public_html/wiki
cd /srv/apache2/public_html/wiki
chown -R www-data:www-data .
Отредактируйте файл LocalSettings.php
и измените настройкиMW_INSTALL_PATH
от /var/lib/mediawiki
к новому пути.
Сделайте то же в файле /etc/apache2/conf-available/mediawiki.conf
При загрузке каких-либо изображений на Wiki Вы будете иметь images
каталог в /var/lib/mediawiki
. Скопируйте его в новый каталог установки:
cp -a /var/lib/mediawiki/images .
Вы найдете, что несколько из пакетов PHP, на которые полагается MediaWiki, не установлены для PHP 7, который является новой стандартной версией PHP для Ubuntu 16.04. MediaWiki хорошо работает с PHP 7, но необходимо установить эти пакеты вручную и включить им:
apt-get install libapache2-mod-php7.0 php-apcu php-gd php-json php-mysql php-xml
phpenmod apcu gd json pdo_mysql dom
a2enmod php7.0
a2enconf mediawiki
Я использовал APC для кэширования, и я нашел, что MediaWiki использует традиционный модуль APC, который не включен с PHP 7. Я зафиксировал это при помощи модуля APCu вместо этого. В коде MediaWiki, замене apc_*
вызовы с apcu_*
вызовы:
sed -i 's/apc_/apcu_/g' includes/libs/objectcache/APCBagOStuff.php
sed -i 's/apc_/apcu_/g' includes/objectcache/ObjectCache.php
Запустите скрипт обновления для обновления структуры базы данных MediaWiki:
cd maintenance/
php update.php
Если у пользователя базы данных, которого Вы используете для Wiki, не будет полномочий изменить структуру базы данных, то сценарий перестанет работать. Используйте сценарий --dbuser
и --dbpass
опции предоставить пользователя MySQL больше полномочий. Если Вы имеете AdminSettings.php
файл, используйте детали там - MediaWiki больше не читает этот файл сам, и необходимо удалить этот файл с этого времени.
Теперь должно быть возможно перезапустить Apache и видеть Вашу Wiki на Вашем веб-сайте:
service apache2 restart
Одна последняя проблема я появился при посещении моей Wiki: MediaWiki 1.25 + отключенному автоматическому обнаружению кожи и мне сказали добавить явное wfLoadSkin( 'Vector' );
к моему LocalSettings.php
.