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

Как установить MediaWiki с Nginx и Lets Encrypt SSL в Ubuntu 20.04


Это руководство существует для этих версий ОС

  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 16.04 (Xenial Xerus)

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

  1. Предпосылки
  2. Начало работы
  3. Установите Nginx, MariaDB и PHP.
  4. Создание базы данных MariaDB
  5. Загрузить MediaWiki
  6. Настройка Nginx для MediaWiki
  7. Доступ к веб-интерфейсу MediaWiki
  8. Защитите MediaWiki с помощью Lets Encrypt SSL
  9. Заключение

MediaWiki — это вики-программа с открытым исходным кодом, написанная на PHP. Это позволяет вам создать свой собственный вики-сайт на сервере. Это одна из самых популярных вики-платформ благодаря своей простоте и возможности настройки. В настоящее время он используется многими компаниями для управления своими вики-страницами. Он предоставляет универсальный и бесплатный инструмент для публикации контента в Интернете.

В этом руководстве мы покажем вам, как установить MediaWiki с веб-сервером Nginx и Lets Encrypt SSL в Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04.
  • Действительное доменное имя, указанное с IP-адресом вашего сервера.
  • На сервере настроен пароль root.

Начиная

Сначала обновите системные пакеты до обновленной версии, выполнив следующую команду:

apt-get update -y

Как только все пакеты будут обновлены, вы можете перейти к следующему шагу.

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

Для MediaWiki требуется веб-сервер Nginx, сервер базы данных MariaDB, 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 с помощью следующей команды:

apt-get install composer -y

Затем отредактируйте файл php.ini и измените настройки по умолчанию:

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

Измените следующие строки:

memory_limit = 512M
post_max_size =32M
upload_max_filesize = 32M
date.timezone = Asia/Kolkata

Сохраните и закройте файл, затем перезапустите PHP-FPM, чтобы применить изменения:

systemctl restart php7.4-fpm

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

Создайте базу данных MariaDB

MediaWiki использует MariaDB в качестве базы данных, поэтому вам нужно будет создать базу данных и пользователя для MediaWiki.

Сначала подключитесь к MariaDB с помощью следующей команды:

mysql

После подключения создайте базу данных и пользователя с помощью следующей команды:

MariaDB [(none)]> CREATE DATABASE mediadb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mediadb.* TO 'mediauser'@'localhost' IDENTIFIED BY 'password';

Затем сбросьте привилегии и выйдите из MariaDB с помощью следующей команды:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

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

Скачать MediaWiki

Первый. перейдите на веб-сайт MediaWiki и выберите последнюю версию MediaWiki. Затем выполните следующую команду, чтобы загрузить его на свой сервер:

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

После завершения загрузки разархивируйте загруженный файл с помощью следующей команды:

unzip mediawiki-1.35.2.zip

Затем переместите извлеченный каталог в корневой веб-каталог Nginx с помощью следующей команды:

mv mediawiki-1.35.2 /var/www/html/mediawiki

Затем измените каталог на MediaWiki и установите все зависимости PHP с помощью следующей команды:

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

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

Настройте Nginx для MediaWiki

Далее вам нужно будет создать файл конфигурации виртуального хоста Nginx для MediaWiki. Вы можете создать его с помощью следующей команды:

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

Добавьте следующие строки:

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

Вы должны увидеть следующий вывод:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Затем перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

Вы также можете проверить статус Nginx с помощью следующей команды:

systemctl status nginx

Вы должны увидеть следующий вывод:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-06-02 05:06:48 UTC; 3s ago
       Docs: man:nginx(8)
    Process: 24594 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 24605 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 24606 (nginx)
      Tasks: 2 (limit: 2353)
     Memory: 2.8M
     CGroup: /system.slice/nginx.service
             ??24606 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             ??24607 nginx: worker process

Jun 02 05:06:48 ubunt4 systemd[1]: Starting A high performance web server and a reverse proxy server...
Jun 02 05:06:48 ubunt4 systemd[1]: Started A high performance web server and a reverse proxy server.

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

Теперь откройте веб-браузер и введите URL-адрес http://wiki.example.com. Вы будете перенаправлены на следующую страницу:

Теперь нажмите кнопку «Настроить вики». Вы должны увидеть следующую страницу:

Здесь выберите язык вики и нажмите кнопку «Продолжить». Вы должны увидеть следующую страницу:

Теперь нажмите кнопку «Продолжить». Вы должны увидеть следующую страницу:

Теперь укажите данные вашей базы данных и нажмите кнопку «Продолжить». Вы должны увидеть следующую страницу:

Выберите использовать ту же учетную запись, что и для установки, и нажмите кнопку «Продолжить». Вы должны увидеть следующую страницу:

Теперь укажите имя вашего вики-сайта, имя пользователя и пароль. Затем нажмите кнопку «Продолжить». Вы должны увидеть следующую страницу:

Нажмите на кнопку Продолжить, чтобы начать установку. Вы должны увидеть следующую страницу:

Нажмите кнопку «Продолжить». После завершения установки вы должны увидеть следующую страницу:

Теперь нажмите кнопку загрузки, чтобы загрузить файл LocalSettings.php в вашу систему. Затем скопируйте этот файл на свой сервер в корневой каталог MediaWiki и установите соответствующие разрешения с помощью следующей команды:

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

Затем вернитесь в свой веб-браузер и нажмите «Войти в свою вики». Вы должны увидеть панель инструментов MediaWiki на следующей странице:

Защитите MediaWiki с помощью Lets Encrypt SSL

Затем вам нужно будет установить клиентский пакет Certbot, чтобы установить управление Lets Encrypt SSL.

Сначала установите Certbot с помощью следующей команды:

apt-get install python3-certbot-nginx -y

После завершения установки выполните следующую команду, чтобы установить Lets Encrypt SSL на свой веб-сайт:

certbot --nginx -d wiki.example.com

Вам будет предложено указать действующий адрес электронной почты и принять условия обслуживания, как показано ниже:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for wiki.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/wiki.conf

Затем выберите, следует ли перенаправлять HTTP-трафик на HTTPS, как показано ниже:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Введите 2 и нажмите Enter, чтобы завершить установку. Вы должны увидеть следующий вывод:

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/wiki.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://wiki.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=wiki.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/wiki.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/wiki.example.com/privkey.pem
   Your cert will expire on 2021-12-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Теперь ваш сайт защищен с помощью Lets Encrypt SSL. Вы можете безопасно получить к нему доступ, используя URL-адрес https://wiki.example.com.

Заключение

Поздравляем! вы успешно установили MediaWiki с Nginx и Lets Encrypt SSL в Ubuntu 20.04. Теперь вы можете легко разместить свой собственный вики-сайт с помощью MediaWiki.