Задание для студента:
Разверните сайт на движке MediaWiki (как в Викимедиа) на сервере с Ubuntu 22.04 LTS, используя Nginx вместо Apache. Сайт должен быть доступен по домену или IP-адресу с корректной работой всех функций вики.


Инструкция по выполнению:

1. Подготовка сервера (Ubuntu 22.04)

  • Обновите пакеты:

    sudo apt update && sudo apt upgrade -y
    
  • Установите базовые утилиты:

    sudo apt install -y curl wget unzip
    

2. Установка LEMP-стека (Nginx + MariaDB + PHP)

  • Установите Nginx:

    sudo apt install -y nginx
    sudo systemctl start nginx
    sudo systemctl enable nginx
    
  • Установите MariaDB:

    sudo apt install -y mariadb-server
    sudo systemctl start mariadb
    sudo mysql_secure_installation
    
    • Следуйте подсказкам: задайте пароль root, удалите анонимных пользователей, отключите удаленный доступ root.

  • Установите PHP 8.1 и модули:

    sudo apt install -y php-fpm php-mysql php-apcu php-intl php-xml php-mbstring php-curl php-gd php-zip
    
  • Настройте PHP-FPM:
    Откройте файл /etc/php/8.1/fpm/php.ini и измените параметры:

    memory_limit = 256M
    upload_max_filesize = 100M
    post_max_size = 100M
    max_execution_time = 300
    

    Перезапустите PHP-FPM:

    sudo systemctl restart php8.1-fpm
    

3. Установка MediaWiki

  • Скачайте последнюю версию MediaWiki:

    wget https://releases.wikimedia.org/mediawiki/1.41/mediawiki-1.41.0.tar.gz
    
  • Распакуйте архив в директорию Nginx:

    sudo tar -xvzf mediawiki-1.41.0.tar.gz -C /var/www/
    sudo mv /var/www/mediawiki-1.41.0 /var/www/wiki
    
  • Настройте права:

    sudo chown -R www-data:www-data /var/www/wiki/
    sudo chmod -R 755 /var/www/wiki/
    

4. Настройка Nginx для MediaWiki

  • Создайте конфигурационный файл для сайта:

    sudo nano /etc/nginx/sites-available/wiki.conf
    
  • Вставьте конфигурацию (замените your_domain_or_ip на IP или домен сервера):

    server {
        listen 80;
        server_name your_domain_or_ip;
        root /var/www/wiki;
    
        index index.php index.html;
    
        location / {
            try_files $uri $uri/ @rewrite;
        }
    
        location @rewrite {
            rewrite ^/(.*)$ /index.php?title=$1&$args;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php8.1-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
        location ~ /\.ht {
            deny all;
        }
    }
    
  • Активируйте конфигурацию:

    sudo ln -s /etc/nginx/sites-available/wiki.conf /etc/nginx/sites-enabled/
    sudo nginx -t  # Проверьте синтаксис
    sudo systemctl reload nginx
    

5. Настройка базы данных

  • Войдите в MariaDB:

    sudo mysql -u root -p
    
  • Создайте базу данных и пользователя:

    CREATE DATABASE wikidb;
    CREATE USER 'wiki_user'@'localhost' IDENTIFIED BY 'ваш_надежный_пароль';
    GRANT ALL PRIVILEGES ON wikidb.* TO 'wiki_user'@'localhost';
    FLUSH PRIVILEGES;
    EXIT;
    

6. Завершение установки через веб-интерфейс

  • Откройте в браузере: http://your_domain_or_ip.

  • Следуйте инструкциям установки MediaWiki:

    • Выберите язык.

    • В разделе База данных укажите:

      • Тип БД: MariaDB/MySQL

      • Имя БД: wikidb

      • Имя пользователя: wiki_user

      • Пароль: ваш пароль от MariaDB.

    • Заполните настройки сайта (название вики, имя администратора и пароль).

    • В конце скачайте файл LocalSettings.php и переместите его в /var/www/wiki:

      sudo mv ~/Downloads/LocalSettings.php /var/www/wiki/
      

7. Дополнительно (опционально)

  • Настройка HTTPS через Let’s Encrypt: Установите Certbot и получите сертификат:

    sudo apt install -y certbot python3-certbot-nginx
    sudo certbot --nginx -d your_domain
    
  • Кеширование:
    Для повышения производительности настройте Redis или Memcached.


Проверка:
Откройте сайт в браузере. Убедитесь, что:

  • Страницы редактируются.

  • Файлы загружаются.

  • Поиск работает.