Pull to refresh

Разворачиваем Mediawiki на Debian (это очень просто)

Reading time7 min
Views20K

Если вам нужна своя Вики, но не знаете с чего начать — добро пожаловать. В Linux я новичок, этим мой степ-бай-степ будет особенно полезен. Рассматривается:


  1. установка Debian
  2. стэка LAMP
  3. запуск на этой основе Вики на популярном движке Mediawiki

Выбор дистрибутивов


  • ОС – выбираю Debian. Не знаю почему. Конкретнее — debian-10.2.0-amd64-netinst.iso. Дистрибутив, конечно, всегда стоит брать последний из стабильных, ищите на debian.org.
  • Mediawiki — потому что этот проект хорошо поддерживается по сей день. Я присматривался к DokuWiki, но последний дистрибутив датируется 2018м годом, а мануалы явно не рассчитаны на новичков.
  • Apache, MariaDB и php73 – как рекомендуется Mediawiki.

Памятка для тех, кто совсем не очень хорошо знаком с Linux
  1. Linux и всё, что на нём работает, очень чувствительно к регистру.
  2. Никто не запрещает вам работать под root, но лучшая практика – подключаться к вашему серверу под неадминистративной записью и повышать, при необходимости, права командой su. Выполнив действия (например, завершив установку), откажитесь от повышенных прав командой exit.
  3. Если иное не указано явно, когда я перечисляю команды, предполагается, что мы подключены по ssh и уже выполнили команду su для повышения прав.
  4. В качестве клиента ssh использую PuTTY. И вам советую.

Оборудование


  • вообще это не имеет никакого значения. Это может быть виртуалка, может быть железка.
    Если у вас совсем мало ресурсов, ознакомьтесь с Installation requirements.

Установка ОС Debian


Целевая аудитория мана – новички в Linux, вроде меня, поэтому опишу установку, даже пошагово. В ней мало принципиально важных настроек, поэтому можете действовать по принципу «Далее»-«Далее», только не забудьте включить в компонентах сервер SSH, если планируете управлять этим сервером удалённо. Графический интерфейс может понадобиться, если все настройки планируете выполнять с этой машины, т.к. на этапе "настройка Mediawiki" понадобится браузер.
Под спойлерами много скриншотов.


Графическая установка. Language, Location, Keymap, Network

Выбираю графическую установку.



Язык установки – English



Location – Russian Federation (other – Europe – Russian Federation)





Locales – оставляю United States



Keymap to use – American English



Сеть


В большинстве случаев, как и в моём, в сети есть DHCP-сервер, поэтому настраивать сеть вручную не придётся.


Hostname for this system.


На ваше усмотрение, я указываю wiki02. Совет: воздержитесь от того, чтобы называть узел просто wiki или mediawiki – это даст вам возможность править нужные конфиги методом замены текста. Может это никогда и не понадобится, но может.


Domain name


Укажите принятый в вашей сети DNS-суффикс.


Users, Clock, Partitions

Пользователи и пароли. Root password



User for non-administrative activities


  • Full name of the user – снова на ваше усмотрение, я назвал aslan. Если вас коробит имя, написанное с прописной, пишите с заглавной, только не забывайте что регистр важен почти везде, где вы будете писать команды, скрипты, пути etc.
  • Username для этого пользователя – я использовал тот же aslan
  • Задаём пароль для созданного пользователя

Часы


Часовой пояс — Moscow


Разделы дисков


  • Partitioning method – Guided – use entire disk
  • Select disk to partition – у меня он один
  • Partitioning scheme – All files in one partition, как и рекомендовано
  • Finish partitioning and write changes to disk
  • Write changes to disks – Yes

Package manager, HTTP Proxy, Usage Survey, Software Selection

Configure the package manager


  • Scan another CD or DVD – мой выбор No
  • Debian archive mirror country – Russian Federation
  • Debian archive mirror – deb.debian.org

HTTP proxy


Прокси-сервер у меня не используется, оставляю пустым


Configuring popularity-contest


Participate in the package usage survey – лично я в этом не заинтересован.


Software selection


Choose software to install: меня интересуют только сервер SSH и стандартные системные утилиты. Может и утилиты не нужны… но раз стандартные, пусть будут.


GRUB, Finish, Проверка обновлений, Контрольная точка

Install the GRUB


  • Install the GRUB boot loader to the master boot record? – мне подходит, Yes.
  • Device for boot loader installation – выбираю единственный в списке (не Enter device manually)

Finish the installation


  • Убедитесь, что извлекли образ/диск из привода.
  • Проверяем обновления системы
    Подключаемся по SSH к нашему серверу с созданной ранее учётной не-root записью.
    su #вводим пароль пользователя root
    apt-get update && apt-get upgrade


Создаю контрольную точку "Установлен Debian"


Шаг не обязательный, все, кто уверен в своих силах, или у кого много свободного времени, могут его пропустить как минимум до установки LAMP (PHP, MariaDB и Apache). Я осторожен, и сделаю снапшот уже на этом этапе.


Установка и настройка LAMP Stack


Предполагается, что мы всё ещё подключены по SSH и выполнили команду su. Выполняем описанную в руководстве команду для установки, не пропуская мимо ушей то, что mysql не поддерживается начиная с Debian “buster” (10.3):


apt-get install apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-mbstring #без sudo, добавляем параметр -y, чтобы пропустить запросы с подтверждениями.

Необязательные компоненты


apt-get install php-apcu php-intl imagemagick inkscape php-gd php-cli php-curl git -y
systemctl restart apache2

Настройка MySQL


mysql -u root -p
CREATE USER 'new_mysql_user'@'localhost' IDENTIFIED BY 'THISpasswordSHOULDbeCHANGED';
CREATE DATABASE my_wiki;
use my_wiki;
GRANT ALL ON my_wiki.* TO 'new_mysql_user'@'localhost';
quit;
#Не для всех это очевидно, но вместо THISpasswordSHOULDbeCHANGED в кавычках действительно нужно указать другой пароль.

Настройка PHP


Тоже не обязательный пункт, и в моей конфигурации менять пришлось не всё, но тем не менее:


  • откройте в текстовом редакторе /etc/php/7.3/apache2/php.ini (например nano /etc/php/7.3/apache2/php.ini), не забудьте, что он должен запускаться из-под рута (выполните su, если это новый сеанс консоли)
  • Увеличьте до необходимых значения
    • upload_max_fileseze = 2M #я для себя поставил 50. Для документов и изображений должно быть достаточно, а делать больше – стрёмно, человеческий фактор никто не отменял, кто-то может по невнимательности загрузить файлы, для которых этот портал не предназначен.
    • memory_limit = 128M #в руководстве рекомендуется минимум до 128, у меня так и было – не стал менять
  • Сохраните изменения и выйдите из редактора
    • Ctrl+O, Ctrl+X для nano
    • :wq для vi

Контрольная точка «Установлен LAMP»


Без неё всё будет работать, и перед запуском в прод все контрольные точки (по крайней мере на Hyper-V) стоит удалить, но сейчас я настоятельно рекомендую этот снапшот сделать.


Установка MediaWiki


Первый вариант – скачать и распаковать.


Он описан в том же документе, и позволяет установить более актуальную версию:


cd /tmp/
wget https://releases.wikimedia.org/mediawiki/1.34/mediawiki-1.34.0.tar.gz
tar -xvzf /tmp/mediawiki-*.tar.gz
mkdir /var/lib/mediawiki
mv mediawiki-*/* /var/lib/mediawiki

Второй вариант – установка из пакета.


Я выбираю его. Так будет проще обновляться в будущем.


apt-get install mediawiki -y

Версия доступного для ручной установки пакета выше (1.34 vs 1.31), apt-get update не находит обновлений. Меня это не смущает, но вы можете выбрать первый вариант установки, на дальнейшую настройку это не повлияет.


Создание контрольной точки «Установлена Mediawiki»


Если в ходе дальнейшей настройки портала что-то пойдёт не так, эта точка нам может пригодиться. В руководстве говорится, что никакие изменения не сохранятся до загрузки в нужный каталог файла с конфигурацией (см. ниже), но я немного параноик, лучше пусть будет лишний снапшот.


Настройка MediaWiki


Перейдите в браузере по ссылке http://ваш сервер/mediawiki и следуйте появляющимся инструкциям. При возникновении ошибок при открытии самой страницы, обратитесь к руководству, у меня их не возникало. #напомню, мой узел называется wiki02.aslan.local, далее на скринах и ссылках будет фигурировать именно он. И да, советую использовать FQDN. Не могу сказать, что это обязательно, но советую.


Язык


Ваш язык: ru – русский. Язык, который будет использовать вики: ru — русский


Убедитесь, что прошла проверка внешней среды



Параметры БД


  • Укажите заданные при настройке MySQL имя базы данных, пользователя и пароль. Префикс таблиц БД указывать не обязательно, но я рекомендую – если завтра на этом же сервере захочется развернуть другую Вики, например, это очень выручит.
  • Для доступа к базе данных из веб-сервера я использую ту же учётную запись.

Название


  • Название вики – всего лишь текст, который будет отображаться в заголовке.
  • Пространство имён проекта: я использовал то же, что имя вики.
  • Учётная запись администратора
    • Ваше имя участника – я привык создавать одну «главную», безличную учётную запись, данные которой при необходимости смогу передать другим людям. Здесь поступлю так же, укажу portal02admin
    • Пароль. КО рекомендует использовать здесь пароль, не совпадающий ни с одним из использованных выше.
    • Адрес электронной почты я не буду указывать.
  • Отложу тонкую настройку.

Настройки


  • Я планирую хранить в Вики информацию разного уровня чувствительности, поэтому для себя выбираю закрытый профиль прав. В будущем рассчитываю использовать авторизацию Active Directory. Об этом, если звёзды сложатся, напишу отдельно. Выбирайте для себя подходящий — тут нет лучше/хуже/правильнее. Изменить профиль можно будет позднее, если сомневаетесь — тоже выбирайте закрытый.
  • Включу WikiEditor, CodeEditor.
  • Разрешу загрузку файлов.
  • Все остальные настройки я оставлю пока по умолчанию.

Загрузка на сервер LocalSettings.php


Итак, на финальной странице установки MediaWiki нам предлагают скачать файл (обычно его загрузка происходит автоматически). В моём случае, т.к. это уже не первая инсталляция, его имя не стандартное – ‘LocalSettings (3).php’. Переименую его, указав вместо «3» адрес хоста и сегодняшнюю дату. Файл этот нужно загрузить на наш сервер, в указанную на странице директорию (там он уже должен называться именно LocalSettings.php, и не забудьте про регистр).


  • Скачиваем на последней странице настройки файл конфигурации.
  • Загружаем файл на сервер с Вики. Я выполнял настройку с удалённой машины под Windows, поэтому для передачи файла на сервер использую pscp. Далее инструкции для пользователей Windows, пользователи других систем наверняка разберутся сами. Пользователи, выполнявшие настройку с того же хоста, где установлена Вики, просто перемещают файл в /etc/mediawiki/LocalSettings.php, mv в помощь.


    • Для вашего удобства, разместите файл конфигурации и файл pscp.exe в одной папке. Папка Downloads вполне для этого подойдёт. Открываем окно команд powershell из этой папки (Shift+ПКМ по свободному «месту» в папке, либо перейдите в неё, используя команды powershell, например cd)


    • Выполняем команду в powershell:


      .\pscp.exe '.\LocalSettings (wiki02_20200225).php' aslan@wiki02.aslan.local:/home/aslan/LocalSettings.php #Разъясню её по частям:
      #.\pscp.exe – собственно исполняемый файл
      # '.\LocalSettings (wiki02_20200225).php' – файл, который копируем
      #aslan@wiki02.aslan.local – логин@адрес_нашего_сервера
      #:/home/aslan/ - каталог на сервере, куда сохраняем. Использую домашний каталог пользователя, т.к. при работе не под рутом другие не доступны для записи и возвращают ошибку Access Denied
      #LocalSettings.php – конечное имя файла в целевой папке


  • Возвращаемся к терминалу нашего сервера и перемещаем файл конфигурации «куда надо»
    mv /home/aslan/LocalSettings.php /etc/mediawiki/LocalSettings.php#Снова напоминаю про регистр!

    Настройки применяются сразу.


Tags:
Hubs:
Total votes 11: ↑8 and ↓3+5
Comments39

Articles