Гид по технологиям

Установка MediaWiki на Ubuntu 20.04 с Nginx и Let's Encrypt

• 5 min read • Инфраструктура • Обновлено 23 Nov 2025
MediaWiki на Ubuntu 20.04 — Nginx и Let's Encrypt
MediaWiki на Ubuntu 20.04 — Nginx и Let's Encrypt

Кратко

Введение

Скриншот интерфейса MediaWiki или логотипа

MediaWiki — свободное программное обеспечение для вики, написанное на PHP. Оно позволяет запустить собственный self-hosted сайт вики на сервере. MediaWiki популярен благодаря простоте, гибкости и большому сообществу. В этом руководстве показано, как установить MediaWiki с Nginx и сертификатом Let’s Encrypt на Ubuntu 20.04.

Важно: команды выполняйте от пользователя с правами sudo или от root. Данные примеры используют домен wiki.example.com и базу mediadb — замените их на ваши значения.

Что понадобится

  • Сервер с Ubuntu 20.04.
  • Доменное имя, указывающее на IP сервера (A-запись).
  • Доступ root или пользователь с sudo.

Подготовка системы

Обновите пакеты перед началом:

apt-get update -y

Установка Nginx, MariaDB и PHP

MediaWiki требует веб-сервер (Nginx), базу данных (MariaDB/MySQL), PHP и расширения. Установим всё одним набором пакетов:

apt-get install nginx mariadb-server php php-fpm php-mbstring php-xml php-json php-mysql php-curl php-intl php-gd php-mbstring texlive imagemagick unzip -y

Установите Composer для управления зависимостями PHP:

apt-get install composer -y

Отредактируйте php.ini для PHP-FPM (пример для PHP 7.4). Установите значения под ваши потребности и укажите ваш часовой пояс (в примере — Europe/Moscow):

nano /etc/php/7.4/fpm/php.ini

Замените или убедитесь, что указаны следующие строки:

memory_limit = 512M
post_max_size = 32M
upload_max_filesize = 32M
date.timezone = Europe/Moscow

Сохраните файл и перезапустите PHP-FPM:

systemctl restart php7.4-fpm

Примечание: укажите свой часовой пояс (например, Europe/Moscow или Asia/Kolkata) в соответствии с расположением сервера.

Создание базы данных MariaDB для MediaWiki

Подключитесь к MariaDB и создайте базу и пользователя (замените пароль на сложный):

mysql

Внутри клиента MariaDB выполните:

CREATE DATABASE mediadb;
GRANT ALL PRIVILEGES ON mediadb.* TO 'mediauser'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT;

Совет по безопасности: используйте уникальный, сложный пароль и ограничьте доступ по сети, если БД доступна извне.

Скачивание и развертывание MediaWiki

Перейдите на сайт MediaWiki и скачайте последнюю стабильную версию, либо используйте wget как в примере:

wget https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.2.zip

Распакуйте и переместите в корень веб-сервера:

unzip mediawiki-1.35.2.zip
mv mediawiki-1.35.2 /var/www/html/mediawiki

Установите PHP-зависимости через Composer:

cd /var/www/html/mediawiki
composer install --no-dev

Назначьте владельца и права:

chown -R www-data:www-data /var/www/html/mediawiki
chmod -R 755 /var/www/html/mediawiki

Важно: владельцем веб-процесса должен быть www-data для Nginx/PHP-FPM в Ubuntu.

Конфигурация Nginx для MediaWiki

Создайте файл конфигурации виртуального хоста для вашего сайта:

nano /etc/nginx/conf.d/wiki.conf

Добавьте в файл следующую конфигурацию (замените server_name на ваш домен):

server {
        listen 80;
        server_name wiki.example.com;

        root /var/www/html/mediawiki;
        index index.php;
   
        error_log /var/log/nginx/mediawiki.error;
        access_log /var/log/nginx/mediawiki.access;

        location / {
                try_files $uri $uri/ /index.php;
        }

        location ~ /\.ht {
          deny all;
         }

        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
            include snippets/fastcgi-php.conf;
        }
}

Проверьте синтаксис Nginx и перезапустите сервис:

nginx -t
systemctl restart nginx
systemctl status nginx

Вы увидите вывод systemd о состоянии службы — убедитесь, что статус Active: active (running).

Доступ к веб-интерфейсу установки MediaWiki

Откройте в браузере http://wiki.example.com и пройдите веб-установку.

Стартовая страница установки MediaWiki

Нажмите «set up the wiki» и следуйте шагам:

Выбор языка для установки MediaWiki

Выберите язык, примите лицензию и укажите параметры подключения к базе данных:

Страница с настройками MySQL для MediaWiki

Укажите имя базы, пользователя и пароль (как вы создали ранее). Далее создайте учётную запись администратора вики и укажите название сайта.

Установка MediaWiki — форма создания учётной записи и названия сайта

После успешной установки скачайте файл LocalSettings.php и скопируйте его в корень MediaWiki:

chown www-data:www-data /var/www/html/mediawiki/LocalSettings.php

Откройте сайт и войдите в вашу вики:

Интерфейс MediaWiki после установки

Защита сайта с помощью Let’s Encrypt (Certbot)

Установите плагин для Certbot и Nginx:

apt-get install python3-certbot-nginx -y

Запустите certbot и укажите ваш домен:

certbot --nginx -d wiki.example.com

Следуйте подсказкам — укажите e-mail и согласитесь с условиями. В конце вам предложат настроить редирект с HTTP на HTTPS — выберите редирект для новых сайтов (опция 2).

Пример вывода Certbot и важные заметки будут показаны в интерактивном окне. Сертификаты сохраняются по пути /etc/letsencrypt/live/wiki.example.com/.

Автоматическое продление сертификата

Certbot устанавливает cron/systemd задачу для автоматического обновления. Проверить можно так:

certbot renew --dry-run

Если автоматическое продление не настроено, добавьте cron-задачу:

0 3 * * * /usr/bin/certbot renew --quiet

Критерии приёмки

  • Домен wiki.example.com открывается по HTTPS без ошибок.
  • Веб-установка MediaWiki завершена, LocalSettings.php размещён в /var/www/html/mediawiki.
  • Nginx обслуживает PHP через php-fpm, статические файлы отдаются корректно.
  • База mediadb доступна и подключена к MediaWiki.

Чеклист для администратора (роль: системный администратор)

  • Обновить систему: apt-get update && apt-get upgrade
  • Установить пакеты: Nginx, MariaDB, PHP, Composer
  • Настроить права файлов и владельца www-data
  • Установить и проверить SSL сертификат
  • Настроить регулярный бэкап базы данных
  • Включить мониторинг и логирование

Частые ошибки и как их исправить

  • Ошибка 502 Bad Gateway: проверьте, запущен ли php-fpm и совпадает ли путь сокета в конфигурации Nginx (fastcgi_pass).
  • Ошибка подключения к БД: проверьте правильность host/user/password, попробуйте подключиться через mysql клиент.
  • Проблемы с правами: проверьте владельца файлов (chown -R www-data:www-data).
  • SSL не выдается: проверьте, что DNS указывает на сервер и нет брандмауэра, блокирующего порт 80.

Безопасность и hardening (короткое руководство)

  • Отключите показ ошибок PHP в продакшене (display_errors = Off).
  • Ограничьте доступ к базе по сети (bind-address = 127.0.0.1) если MariaDB локальна.
  • Используйте брандмауэр (ufw) и откройте только нужные порты: 80, 443, 22 (SSH).
  • Регулярно обновляйте систему и зависимости MediaWiki.
  • Настройте бэкапы базы данных и файлов LocalSettings.php / images.

Альтернативы и варианты развертывания

  • Apache вместо Nginx: традиционный вариант, часто встречается в хостингах.
  • Docker / контейнеры: удобны для изоляции и миграции; официальные образы MediaWiki есть в Docker Hub.
  • Managed-хостинг: если нужна минимальная операционная нагрузка.

Миграция и совместимость

  • При переходе с другой версии MediaWiki проверьте совместимость расширений и PHP.
  • Обновление MediaWiki: используйте официальную процедуру обновления и делайте резервную копию БД.

Минимальная методология развертывания (шаблон развертывания)

  1. Подготовить сервер и DNS.
  2. Установить Nginx, MariaDB, PHP и зависимости.
  3. Сконфигурировать БД и пользователей.
  4. Развернуть файлы MediaWiki и установить зависимости Composer.
  5. Настроить Nginx и проверить работу сайта по HTTP.
  6. Установить SSL через Certbot и включить HTTPS.
  7. Настроить бэкап и мониторинг.

Заключение

Поздравляем — вы установили MediaWiki на Ubuntu 20.04 с Nginx и сертификатом Let’s Encrypt. После установки рекомендуем выполнить базовую проверку безопасности, настроить регулярные бэкапы и автоматическое продление сертификатов.

Важно: адаптируйте параметры (имя домена, пароли, часовой пояс) под ваши требования.

Краткое резюме

  • MediaWiki работает с Nginx + php-fpm и MariaDB.
  • Composer управляет PHP-зависимостями.
  • Certbot легко добавляет HTTPS и автоматическое продление.

Дополнительные материалы и отладочные команды включены в текст выше.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро