Поиск по сайту:

Как установить MediaWiki с Nginx на CentOS 7


На этой странице

  1. Что мы будем делать
  2. Предпосылки
  3. Шаг 1. Установите Nginx на CentOS 7
  4. Шаг 2. Установите и настройте PHP-FPM.
  5. Шаг 3. Установите и настройте базу данных MariaDB.
  6. Шаг 4. Загрузите и настройте MediaWiki
  7. Шаг 5. Создание SSL Letsencrypt в CentOS 7
  8. Шаг 6. Настройка виртуального хоста Nginx для MediaWiki
  9. Шаг 7. Установка MediaWiki через Интернет
    1. Языковая конфигурация
    2. Проверка среды
    3. Конфигурация базы данных
    4. Настройки базы данных
    5. Создать нового пользователя-администратора
    6. Дополнительная конфигурация MediaWiki
    7. Установка MediaWiki

    MediaWiki – это популярная вики-программа, изначально разработанная для использования в Википедии. Это бесплатная вики-программа с открытым исходным кодом, написанная на языке программирования PHP. Инструмент, созданный Магнусом Манске в 2002 году, теперь имеет версию 1.30. MediaWiki используется многими крупными компаниями, включая Nginx, Intel, Novell и т. д.

    В этом руководстве мы обсудим, как шаг за шагом установить MediaWiki с веб-сервером Nginx на CentOS 7. Мы также расскажем, как установить и настроить стек LEMP для установки MediaWiki, включая создание и настройку нового бесплатного SSL Letsencrypt для Безопасность MediaWiki.

    Что мы будем делать

    1. Установите Nginx на CentOS 7.
    2. Установка и настройка PHP-FPM
    3. Установите и настройте базу данных MariaDB.
    4. Загрузить и настроить MediaWiki
    5. Создание нового SSL Letsencrypt в CentOS 7
    6. Настройка виртуального хоста Nginx для установки MediaWiki
    7. Установка MediaWiki через Интернет
    8. Настроить скин MediaWiki по умолчанию

    Предпосылки

    • Сервер CentOS 7
    • Привилегии root

    Шаг 1 — Установите Nginx на CentOS 7

    В этом руководстве мы будем использовать веб-сервер Nginx для установки MediaWiki. В CentOS 7 пакет Nginx не существует. Поэтому нам нужно установить его из стороннего репозитория EPEL (Extra Packages for Enterprise Linux).

    Обновите все пакеты и установите репозиторий EPEL в системе CentOS 7, используя приведенную ниже команду yum.

    yum -y update
    yum -y install epel-release

    Затем установите веб-сервер Nginx.

    yum -y install nginx

    После завершения установки Nginx запустите сервер и включите его автоматический запуск при загрузке системы.

    systemctl start nginx
    systemctl enable nginx

    Итак, веб-сервер Nginx был установлен на сервере CentOS 7. Проверьте статистику сети с помощью команды netstat, и в результате вы должны получить HTTP-порт, используемый службой Nginx.

    netstat -plntu

    Шаг 2 — Установите и настройте PHP-FPM

    В этом уроке мы будем использовать PHP 7.0. И здесь, на этом этапе, мы установим PHP 7.0 (включая расширения) и настроим PHP-FPM для установки MediaWiki.

    Мы будем использовать пакеты PHP 7.0 из стороннего репозитория webtatic. Добавьте новый репозиторий webtatic для установки PHP 7.0 с помощью приведенной ниже команды.

    rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

    Теперь мы можем установить PHP 7.0 со всеми необходимыми расширениями, используя приведенную ниже команду yum.

    yum -y install ImageMagick php70w-fpm php70w-intl php70w-xml php70w-curl php70w-gd php70w-mbstring php70w-mysql php70w-cli php70w-pear php70w-pecl-apcu

    На этом установка PHP 7.0 на CentOS 7 завершена.

    Далее мы настроим службу PHP-FPM. Мы отредактируем файл php.ini для настройки информации о пути CGI, а затем отредактируем конфигурацию www.conf для настройки службы PHP-FPM. Затем мы настроим PHP-FPM для выполнения под файлом sock (с пользователем и группой nginx).

    Отредактируйте файл php.ini с помощью редактора vim.

    vim /etc/php.ini

    Раскомментируйте строку ниже и измените значение на 0.

    cgi.fix_pathinfo=0

    Сохраните изменения и выйдите из редактора.

    Теперь отредактируйте файл конфигурации PHP-FPM www.conf.

    vim /etc/php-fpm.d/www.conf

    Измените значение строки пользователя и группы на nginx.

    user = nginx
    group = nginx

    Теперь измените значение переменной listen в файле php-fpm.sock, как показано ниже.

    listen = /run/php-fpm/php-fpm.sock

    Нам нужно настроить разрешения sock-файла, а также владельца каталога sock-файла. Раскомментируйте строки listen.owner и listen.group и измените соответствующие значения на nginx.

    listen.owner = nginx
    listen.group =nginx
    listen.mode = 0660

    Для дополнительной настройки раскомментируйте строки ниже.

    env[HOSTNAME] = $HOSTNAME
    env[PATH] = /usr/local/bin:/usr/bin:/bin
    env[TMP] = /tmp
    env[TMPDIR] = /tmp
    env[TEMP] = /tmp

    Вот и все. Сохранить и выйти.

    Затем создайте новый каталог для конфигурации пути сеансов.

    Запустите приведенные ниже команды для создания каталога сеансов.

    mkdir -p /var/lib/php/session/
    chown -R nginx:nginx /var/lib/php/session/

    После этого запустите службу PHP-FPM и включите ее автоматический запуск при загрузке системы.

    systemctl start php-fpm
    systemctl enable php-fpm

    Проверьте PHP-FPM с помощью приведенной ниже команды netstat.

    netstat -pl | grep php

    И убедитесь, что в результате вы получили файл php-fpm.sock.

    Шаг 3. Установите и настройте базу данных MariaDB.

    MediaWiki поддерживает базы данных MySQL/MariaDB и SQLite. Однако в этом руководстве мы будем использовать базу данных MariaDB.

    Для начала установите MariaDB с помощью приведенной ниже команды yum.

    yum -y install mariadb mariadb-server

    После завершения установки запустите mariadb и включите его запуск при загрузке системы.

    systemctl start mariadb
    systemctl enable mariadb

    Теперь нам нужно настроить пароль root для базы данных MariaDB. Выполните следующую команду, чтобы настроить пароль root для MariaDB.

    mysql_secure_installation

    Введите Y и нажмите Enter.

    Set root password? [Y/n] Y
    TYPE ROOT PASSWORD HERE

    Remove anonymous users? [Y/n] Y
    Disallow root login remotely? [Y/n] Y
    Remove test database and access to it? [Y/n] Y
    Reload privilege tables now? [Y/n] Y

    MariaDB была установлена в системе CentOS 7, и был настроен пароль для пользователя root.

    Далее мы создадим новую базу данных для MediaWiki. В частности, мы создадим новую базу данных с именем mediawikidb, с новым пользователем/владельцем mediawiki и паролем mypassword.

    Подключитесь к оболочке mysql с помощью команды mysql.

    mysql -u root -p
    TYPE YOUR ROOT PASSWORD

    Теперь выполните следующие запросы mysql для создания новой базы данных для MediaWiki.

    create database mediawikidb;
    grant all privileges on mediawikidb.* to 'localhost' identified by 'mypassword';
    flush privileges;
    exit;

    Созданы новая база данных и пользователь для установки MediaWiki.

    Шаг 4 — Загрузите и настройте MediaWiki

    В этом руководстве мы будем использовать последнюю версию (1.30) MediaWiki и загрузим весь исходный код MediaWiki из репозитория. Итак, нам нужен git и несколько пакетов, установленных в системе.

    Установите git и другие пакеты с помощью приведенной ниже команды yum.

    yum -y install git zip unzip composer

    После завершения установки создайте новый каталог /var/www/mediawiki и клонируйте исходный код mediawiki в этот каталог.

    mkdir -p /var/www/mediawiki
    git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki

    Затем перейдите в каталог /var/www/mediawiki и установите некоторые зависимости PHP, необходимые для установки MediaWiki, с помощью команды composer, как показано ниже.

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

    Теперь измените права собственности на каталог mediawiki на nginx (как пользователя, так и группу).

    chown -R nginx:nginx /var/www/mediawiki

    Исходный код MediaWiki был загружен в каталог /var/www/mediawiki, и все зависимости были установлены.

    Шаг 5 — Создайте SSL Letsencrypt на CentOS 7

    Из соображений безопасности MediaWiki будет работать только при HTTPS-соединении. И все запросы к HTTP будут перенаправлены на HTTPS веб-сервером Nginx.

    Чтобы запустить MediaWiki по безопасному соединению HTTPS, нам нужны SSL-сертификаты. Поэтому мы будем использовать бесплатный сертификат SSL от Letsencrypt.

    Установка позволяет зашифровать инструмент командной строки с помощью приведенной ниже команды yum.

    yum -y install letsencrypt

    После завершения установки остановите службу Nginx с помощью команды systemctl.

    systemctl stop nginx

    Далее мы создадим новый SSL-сертификат с помощью команды letsencrypt. Но перед этим убедитесь, что службы HTTP и HTTPS добавлены в Firewalld.

    Вот как вы добавляете новые службы HTTP и HTTPS в Firewalld.

    firewall-cmd --add-service=http --permanent
    firewall-cmd --add-service=https --permanent
    firewall-cmd --reload

    Создайте новый бесплатный сертификат SSL, позволяющий зашифровать сертификат, используя приведенную ниже команду letsencrypt.

    letsencrypt certonly

    Команда спросит вас об аутентификации ACME. Выберите номер 1, чтобы запустить временный веб-сервер.

    Затем введите свой адрес электронной почты для уведомления о продлении, затем введите A, чтобы согласиться с Условиями предоставления услуг Letsencrypt (TOS), и, наконец, введите имя своего домена вики.

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

    Новый сертификат SSL от Letsencrypt создан и сохранен в каталоге /etc/letsencrypt/live.

    Шаг 6. Настройте виртуальный хост Nginx для MediaWiki.

    На этом этапе мы создадим новую конфигурацию виртуального хоста Nginx для MediaWiki.

    Перейдите в каталог /etc/nginx и создайте новый файл конфигурации mediawiki.conf с помощью редактора vim.

    cd /etc/nginx/
    vim conf.d/mediawiki.conf

    Вставьте конфигурацию ниже.

    # HTTP Request will be Redirected to the HTTPS
    server {
        listen 80;
        listen [::]:80;
        server_name wiki.hakase-labs.co;
        return 301 https://$host$request_uri;
    }

    # HTTPS Configuration
    server {

        listen 443 ssl;
        listen [::]:443;
       
        server_name wiki.hakase-labs.co;
        root /var/www/mediawiki;

        index index.php;
        autoindex off;

        # SSL Certificate Configuration
        ssl_certificate /etc/letsencrypt/live/wiki.hakase-labs.co/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/wiki.hakase-labs.co/privkey.pem;

        client_max_body_size 5m;
        client_body_timeout 60;

        location / {
            try_files $uri $uri/ @rewrite;
        }

        location @rewrite {
            rewrite ^/(.*)$ /index.php?title=$1&$args;
        }

        location ^~ /maintenance/ {
            return 403;
        }

        # PHP-FPM Configuration Nginx
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

        location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
            try_files $uri /index.php;
            expires max;
            log_not_found off;
        }

        location = /_.gif {
            expires max;
            empty_gif;
        }

        location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
            deny all;
        }

        location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
            internal;
        }

        # Security for 'image' directory
        location ~* ^/images/.*.(html|htm|shtml|php)$ {
            types { }
            default_type text/plain;
        }

        # Security for 'image' directory
        location ^~ /images/ {
            try_files $uri /index.php;
        }

    }

    Вот и все. Сохраните изменения и выйдите из редактора.

    Примечание:

    • Измените имя домена на свой собственный домен.
    • Изменить путь к файлам SSL-сертификата

    Теперь проверьте конфигурацию Nginx и убедитесь, что ошибок нет, затем перезапустите службу Nginx.

    nginx -t
    systemctl restart nginx

    Добавлена конфигурация виртуального хоста Nginx для MediaWiki, которая готова к установке MediaWiki из веб-браузера.

    Шаг 7 — Установка MediaWiki через Интернет

    Откройте веб-браузер и введите URL-адрес MediaWiki.

    http://wiki.hakase-labs.co/

    Вы будете перенаправлены на HTTPS-соединение. На веб-странице щелкните ссылку Настроить вики.

    Конфигурация языка

    Выберите английский язык и нажмите «Продолжить».

    Проверка окружающей среды

    Убедитесь, что вся конфигурация сервера прошла проверку среды.

    Затем нажмите «Продолжить».

    Конфигурация базы данных

    Введите имя базы данных как mediawikidb и имя пользователя mediawiki с паролем mypassword.

    Теперь нажмите «Продолжить».

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

    Оставьте его по умолчанию и нажмите «Продолжить».

    Создать нового пользователя-администратора

    Введите своего собственного пользователя-администратора, адрес электронной почты, пароль и нажмите «Продолжить».

    Дополнительные настройки MediaWiki

    Теперь мы попадаем на страницу дополнительной настройки MediaWiki, как показано ниже.

    Оставьте во всех полях значения по умолчанию и нажмите «Продолжить».

    Установка MediaWiki

    Нажмите «Продолжить», чтобы установить MediaWiki.

    И вы попадете на страницу ниже.

    Нажмите «Продолжить» еще раз.

    И установка MediaWiki завершена. Нам будет предложено загрузить новый файл LocalSettings.php — загрузите этот файл.

    Затем нам нужно загрузить недавно загруженный файл LocalSetting.php в каталог MediaWiki /var/www/mediawiki на сервере. Так же не забудьте сменить права собственности файла на www-data (и пользовательские, и групповые).

    scp LocalSettings.php :/var/www/mediawiki/
    chown -R www-data:www-data /var/www/mediawiki

    Вернитесь на страницу установки MediaWiki в веб-браузере и щелкните ссылку, чтобы войти в свою вики. Вы увидите, что MediaWiki был установлен с веб-сервером Nginx на сервере CentOS 7.

    Шаг 8. Загрузите и настройте скин MediaWiki по умолчанию.

    На этом этапе установка MediaWiki завершена. На этом этапе мы настроим скин/тему по умолчанию для нашего сайта MediaWiki.

    Перейдите в каталог /var/www/mediawiki/skins и клонируйте скин по умолчанию с именем Vector в этот каталог.

    cd /var/www/mediawiki/skins/
    sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector

    Измените владельца каталога скина Vector на пользователя и группу nginx.

    chown -R nginx:nginx /var/www/mediawiki/skins/

    Теперь отредактируйте файл LocalSettings.php с помощью редактора vim.

    vim /var/www/mediawiki/LocalSettings.php

    Вставьте следующий код PHP в конец файла.

    wfLoadSkin( 'Vector' );

    Вот и все. Сохранить и выйти.

    Вернитесь в свой веб-браузер и обновите страницу MediaWiki. Убедитесь, что вы видите MediaWiki с оболочкой Vector, как показано ниже.

    Установка и настройка MediaWiki с веб-сервером Nginx на CentOS 7 успешно завершена.

    Ссылка

    • https://www.mediawiki.org/wiki/