Установка MediaWiki и настройка нескольких wiki на одном сервере с Ubuntu 11.10

29 марта 2012
Рубрика: Oneiric Ocelot (11.10), Ubuntu
Теги: , ,

Zeboton

После долгих экспериментов с различными wiki-движками написанными на PHP и использующий в качестве хранилища MySQL я всё-таки остановился на том от чего хотел уйти — MediaWiki.

Внимание! В репозитории Ubuntu 11.10 лежит пакет mediawiki-1.15.5-3build1, на Launchpad дела с версией обстоят не многим лучше. В то время как на данный момент рабочая версия — 1.18! Я устанавливал MediaWiki из репозитория, так как она будет использоваться для внутрекорпоративых целей на офисном сервере. Для серверов, доступных из Сети, я рекомендовал бы скачать последнюю версию MediaWiki и использовать её.

Для работы MediaWiki нужен сервер Apache, PHP5 и MySQL. Если коротко, то для их установки нужно выполнить:
sudo apt-get install apache2 mysql-server php5 php5-mysql
За подробностями можно заглянуть в Google.

Установка MediaWiki из репозитория элементарна:
sudo apt-get install mediawiki
Для начала нужно запомнить несколько путей с которыми придётся работать:

  1. /var/lib/mediawiki — это так называемая «установочная директория», то есть если нужна всего одна wiki на всём сервере, то работать она будет отсюда. Здесь расположены директории для установки wiki (config), дополнений (extensions), картинок (images), а также ссылки на директории и файлы самого wiki-движка (/usr/share/mediawiki/).
  2. /etc/mediawiki/ — это директория содержит настройки для Apache — apache.conf, на этот файл при установке была добавлена ссылка в /etc/apache2/conf.d/mediawiki.conf .

Путь, который предлагается во всех увиденных мной руководствах по настройке пакета mediawiki мне не понравился, так как он советовал раскомментировать 3-ю строчку в файле /etc/mediawiki/apache.conf , а именно:
Alias /wiki /var/lib/mediawiki

И таким образом дать доступ к wiki с любого домена, добавив в строке адреса к нему /wiki.

Мне же хотелось сделать wiki на поддомене, к примеру, wiki.site.ru, что в результате я и сделал.

Для начала создаём директорию, которая будет домом для wiki, к примеру, /home/http/public_html/wiki . Копируем в неё всё содержимое /var/lib/mediawiki. Так как в /var/lib/mediawiki в основном лежат символичные ссылки на /usr/share/mediawiki/, то таким образом мы получаем копию «установочной директории» и, если пакет mediawiki обновится, то и на wiki.site.ru тоже будет обновлённая wiki. Не забываем Web-серверу дать права на запись в директории config, images:
sudo chown -R :www-data /home/http/public_html/wiki/
sudo chmod -R g+w /home/http/public_html/wiki/config/ /home/http/public_html/wiki/images/

Теперь дело за настройкой Базы Данных и Web-сервера. В БД всё просто, нужно создать пользователя, БД и дать пользователю права на эту БД. Короче, phpMyAdmin в помощь. А с настройкой Web-сервера Apache2 всё немного сложнее.

Создаём файл /etc/apache2/sites-available/ru.site.wiki и вставляем в него команды (кодировка UTF-8). Секции Directory взяты из файла /etc/mediawiki/apache.conf , за что ему спасибо.

Включаем сайт и перезагружаем Apache:
sudo a2ensite ru.site.wiki
sudo /etc/init.d/apache2 restart

Теперь при правильных настройках DNS ( в DNS для site.ru нужно добавить запись типа A с именем wiki и указанием IP-адреса сервера ) при переходе в браузере по адресу wiki.site.ru должна открыться страница с информацией о том, что mediawiki ещё не настроена и с ссылкой на страницу с настройкой ( wiki.site.ru/config/index.php ).

Заполняем на странице все нужные поля и сохраняем изменения. Теперь необходимо переместить файл LocalSettings.php из директории /config/ в корень сайта:
mv /home/http/public_html/wiki/config/LocalSettings.php home/http/public_html/wiki/LocalSettings.php

После этого можно удалить директорию /config/ , так как она больше не нужна:
rm -rf /home/http/public_html/wiki/config

Если есть желание, то можно перейти к тонкой настройке mediawiki путём редактирования файла LocalSettings.php . У меня это желание было потому что меня что-то дёрнуло сделать красивый адрес для страниц. Не http://wiki.site.ru/index.php?Заглавная_страницаhttp://wiki.site.ru/wiki/Заглавная_страница . Для решения этой задачи ищем в файле LocalSettings.php строчку, начинающуюся с переменной $wgScriptPath , и добавляем между ней и строчкой ниже:
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;

В первой переменой /wiki/ и есть тот красивый адрес, который заменит index.php. В качестве него можно указать всё, что угодно, хоть один символ /w/ . Но если Вы измените здесь значение /wiki/ на что-то другое, то не забудьте в файле /etc/apache2/sites-available/ru.site.wiki найти строчку:
Alias /wiki /home/http/public_html/wiki/index.php
И заменить в ней /wiki на Ваше новое значение.

Если есть желание, то можно ещё пошаманить в файле LocalSettings.php , но для меня это было достаточно, поэтому я его сохранил и пошёл заполнять wiki.

5 комментариев для “Установка MediaWiki и настройка нескольких wiki на одном сервере с Ubuntu 11.10”

  1. Zeboton29 марта 2012 ~ 17:14

    Для повышения безопасности wiki можно добавить в LocalSettings.php;
    $wgGroupPermissions['*']['read'] = false; // Запрет просмотра страниц не авторизованным пользователям.
    $wgGroupPermissions['*']['edit'] = false; // Запрет редактирования без авторизации.
    $wgGroupPermissions['*']['createpage'] = false; // Запрет на создание страниц без авторизации.
    $wgGroupPermissions['*']['createtalk'] = false; // Запрет на создание страниц с обсуждениями
    $wgGroupPermissions['*']['createaccount'] = false; // Запретить регистрацию.
    $wgGroupPermissions['*']['writeapi'] = false; // Запрет использование API

    Посмотреть описание всех доступных прав.

    Посмотреть какими правами обладают группы можно посмотреть на странице в Вашей wiki ( вместо /index.php? использовано /wiki/): http://wiki.site.ru/wiki/Служебная:ListGroupRights

  2. Александр28 ноября 2014 ~ 20:43

    После проделанного перестал работать сам вики, и директория в которой лежат все мои разработки. Теперь что мне делать?

  3. Zeboton29 ноября 2014 ~ 12:56

    Александр, первое — не паниковать.
    Второе, просмотрел все команды, ничего страшного не делалось. Попробуйте отключить хост:
    sudo a2ensite ru.site.wiki
    sudo /etc/init.d/apache2 restart

    Если после этого ваши проекты заработают, то в файле /etc/apache2/sites-available/ru.site.wiki допущена ошибка. Если нет — будем думать.

  4. Александр29 ноября 2014 ~ 13:24

    Zeboton, заработали остальные проекты, после отключения ru.site.wiki . Возможно произошёл конфликт где то с DNS. Я не стал заморачиваться с «красивым адресом», поэтому прописал символьную ссылку на mediawiki в /var/www

  5. Zeboton29 ноября 2014 ~ 13:40

    Александр.

    1. Попробуйте посмотреть что записывается в логи /var/log/apache2/error.log ( или как-то так, писал по памяти ).
    2. Попробуйте указать в /etc/apache2/sites-available/ru.site.wiki не VirtualHost *:80, VirtualHost _default_:80 и посмотрите как будет работать и что будет в логах.

Ваш комментарий

*