Установка MediaWiki на Ubuntu 20.04 с Nginx и Let's Encrypt
Кратко
Введение

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 и пройдите веб-установку.

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

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

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

После успешной установки скачайте файл LocalSettings.php и скопируйте его в корень MediaWiki:
chown www-data:www-data /var/www/html/mediawiki/LocalSettings.phpОткройте сайт и войдите в вашу вики:

Защита сайта с помощью 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: используйте официальную процедуру обновления и делайте резервную копию БД.
Минимальная методология развертывания (шаблон развертывания)
- Подготовить сервер и DNS.
- Установить Nginx, MariaDB, PHP и зависимости.
- Сконфигурировать БД и пользователей.
- Развернуть файлы MediaWiki и установить зависимости Composer.
- Настроить Nginx и проверить работу сайта по HTTP.
- Установить SSL через Certbot и включить HTTPS.
- Настроить бэкап и мониторинг.
Заключение
Поздравляем — вы установили MediaWiki на Ubuntu 20.04 с Nginx и сертификатом Let’s Encrypt. После установки рекомендуем выполнить базовую проверку безопасности, настроить регулярные бэкапы и автоматическое продление сертификатов.
Важно: адаптируйте параметры (имя домена, пароли, часовой пояс) под ваши требования.
Краткое резюме
- MediaWiki работает с Nginx + php-fpm и MariaDB.
- Composer управляет PHP-зависимостями.
- Certbot легко добавляет HTTPS и автоматическое продление.
Дополнительные материалы и отладочные команды включены в текст выше.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента