Подготовка LAMP VPS-сервера и установка Media Wiki

Оцените статью

Вот и добрались до подготовки LAMP сервера. Надо перенести несколько внутренних порталов на RedOS, но раз уж добрался до любимых теплых LAMP-овых серверов, то давайте будем вспоминать как их вообще настраивают.

Принцип там один и не будем ограничиваеться любимым RED OS 8, а рассмотрим в общих чертах для большинства популярных ОС на базе Linux-ядра.

Установка необходимых пакетов

Установка MySQL/MariaDB в REDOS 8

При помощи стороннего репозитария MySQL Community.

# dnf install yum-utils -y
# wget https://repo.mysql.com/mysql80-community-release.el8.noarch.rpm
# rpm -Uvh mysql80-community-release.el8.noarch.rpm
# dnf repolist enabled | grep mysql
# dnf module reset mysql && dnf module enable mysql:8.0
# dnf install mysql-server -y
# systemctl start mysqld
# systemctl enable mysqld

Из стандартного репозитария.

# dnf install mariadb-server
# systemctl enable mariadb —now

Установка необходимых пакетов Apache и PHP в RedOS 8

Выбираем для работы версию PHP 8.3.

# dnf install php83-release
# dnf clean all
# dnf makecache

Устанавливаем пакеты.

# dnf install httpd php php-dom php-mbstring php-gd php-pdo php-json php-xml php-zip php-curl php-mcrypt php-pear setroubleshoot-server bzip2 php-ldap php-mysqlnd mod_auth_kerb php-fpm
# systemctl enable httpd
# systemctl start httpd
# setsebool -P httpd_can_network_connect 1
# setsebool -P httpd_graceful_shutdown 1
# setsebool -P httpd_can_network_connect_db 1
# setsebool -P daemons_dump_core 1
# dnf install mod_ssl

Обратите внимание, что PHP нам требуется версии 8.2 или выше.

Медиа-вики требует для работы PHP 8.2 и выше.

Именно для этого выполнялись операции.

# dnf install php83-release
# dnf clean all
# dnf makecache

Настройка окружения

Настройка MySQL/MariaDB

Параметры сервера для MariaDB находятся в файле /etc/my.cnf.d/mariadb-server.cnf, а для MySQL в файле /etc/mysql/mysql.conf.d/mysqld.cnf.

Изменим ряд параметров.

bind-address=0.0.0.0

Перезапускаем сервер баз данных.

# systemctl restart mariadb --now

Авторизуемся на сервере и задаем пароль, для пользователя root, создаём пользователя для базы данных mediawiki_db и назначаем права (совершенно типовые операции).

Выполняем скрипт настройки mysql_secure_installation.

# mysql_secure_installation

Базовая настройка выглядит следующим образом.

# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] 
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] 
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] 
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] N
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

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

# mysql -u root -p

Выполняем команды по созданию объектов в базе данных.

CREATE DATABASE wiki_db;
CREATE USER 'wiki_user'@'localhost' IDENTIFIED BY 'qwerqwer';
GRANT ALL PRIVILEGES ON wiki_db.* TO 'wiki_user'@'localhost';
FLUSH PRIVILEGES;
quit

Настроим дополнительно доступ к базе данных при помощи DBeawer.

Подключение к базе Media Wiki при помощи DBBeawer

Настройка Apache2 в RedOS 8

Создаем каталог для хранения файлов нашего LAMP-проекта.

# mkdir -p /var/www/vhosts/wiki.ipa.sngp.su

Фактически нам потребуется создать конфигурацию виртуального хоста для нашей медиа-вики, для чего создаем файл конфигурации /etc/httpd/conf.d/wiki.ipa.sngp.su.conf.

<VirtualHost *:80>
    ServerName wiki.ipa.sngp.su
    ServerAdmin admin@wiki.ipa.sngp.su
    DocumentRoot /var/www/vhosts/wiki.ipa.sngp.su
    <directory /var/www/vhosts/wiki.ipa.sngp.su>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    </directory>
</VirtualHost>

Перезапускаем WEB-сервер Apache.

# systemctl restart httpd

Для теста внесем себе на рабочей станции в /etc/hosts запись wiki.ipa.sngp.su.

10.54.54.17 wiki.ipa.sngp.su

Создадим тестовый индексный файл.

# echo "Hello World SNGP" > /var/www/vhosts/wiki.ipa.sngp.su/index.html

Проверяем, что наша тестовая страница открывается в браузере.

Тнстовая страница Media Wiki

Разворачиваем приложение Media Wiki

Официальный сайт Media Wiki находится по адресу https://www.mediawiki.org/wiki/Download.

Официальный сайт Media Wiki

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

# unzip ./mediawiki-1.45.3.zip
# cp -R ./mediawiki-1.45.3/* /var/www/vhosts/wiki.ipa.sngp.su/
# chown -R apache:apache /var/www/vhosts/wiki.ipa.sngp.su/

Создаем DNS-запись и SSL-сертификат для сайта

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

Конфигурация Apache для работы по https протоколу.

<VirtualHost *:443>
    ServerName wiki.ipa.sngp.su
    ServerAdmin admin@wiki.ipa.sngp.su
    DocumentRoot /var/www/vhosts/wiki.ipa.sngp.su

    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/wiki.ipa.sngp.su.crt
    SSLCertificateKeyFile /etc/httpd/ssl/wiki.ipa.sngp.su.key

    <directory /var/www/vhosts/wiki.ipa.sngp.su>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    </directory>

</VirtualHost>

<VirtualHost *:80>
    ServerName wiki.ipa.sngp.su
    ServerAdmin admin@wiki.ipa.sngp.su
    DocumentRoot /var/www/vhosts/wiki.ipa.sngp.su

    Redirect permanent / https://wiki.ipa.sngp.su

</VirtualHost>

Настройка Media Wiki с помощью WEB-интерфейса

Задаем язык для Media Wiki.

Задаем язык для Media Wiki.

Этап проверки настроек.

Проверка настроек Media Wiki

Установим APCu.

# install php-pecl-apcu

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

# php -m | grep apcu
apcu

Запретим выполнение скриптов в каталоге /var/www/vhosts/wiki.ipa.sngp.su/images/.

<VirtualHost *:443>
    ServerName wiki.ipa.sngp.su
    ServerAdmin admin@wiki.ipa.sngp.su
    DocumentRoot /var/www/vhosts/wiki.ipa.sngp.su

    SSLEngine on
    SSLCertificateFile /etc/httpd/ssl/wiki.ipa.sngp.su.crt
    SSLCertificateKeyFile /etc/httpd/ssl/wiki.ipa.sngp.su.key

    <directory /var/www/vhosts/wiki.ipa.sngp.su>
        Require all granted
        AllowOverride All
        Options FollowSymLinks MultiViews
    </directory>

    <Directory "/var/www/vhosts/wiki.ipa.sngp.su/images/">
        AllowOverride None
        AddType text/plain .html .htm .shtml .phtml
        RemoveHandler .php
        <FilesMatch "\.ph(p[3457]?s?|tml)$">
            SetHandler None
        </FilesMatch>
        Header set X-Content-Type-Options nosniff
    </Directory>

</VirtualHost>

<VirtualHost *:80>
    ServerName wiki.ipa.sngp.su
    ServerAdmin admin@wiki.ipa.sngp.su
    DocumentRoot /var/www/vhosts/wiki.ipa.sngp.su

    Redirect permanent / https://wiki.ipa.sngp.su

</VirtualHost>

Теперь можем продолжать установку, так-как предупреждений больше нет.

Ошибок нет, продолжаем установку

Настраиваем подключение к базе данных.

Настройка подключения к базе данных

Настройка WEB-интерфейса для работы с базой данных.

Web-интерфейс для работы с базой данных

Задаем учетную запись администратора.

Задаем учетную запись администратора.

Подтверждаем установку.

Подтверждаем установку

Установка завершена. Можно пользоваться.

Похожие записи

Установка RED OS в режиме Dual Boot с Windows

Будем исходить из того, что у нас имеется установленная ОС Windows и нам необходимо настроить на этом компьютере или сервере дополнительно рабочее окружение с ОС RED OS и обеспечить возможность…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Подготовка LAMP VPS-сервера и установка Media Wiki

Подготовка LAMP VPS-сервера и установка Media Wiki

Запуск Next Cloud в облаке Selectel

Запуск Next Cloud в облаке Selectel

Установка RED OS в режиме Dual Boot с Windows

Установка RED OS в режиме Dual Boot с Windows

Интересные и курьезные факты из сферы информационных технологий

Интересные и курьезные факты из сферы информационных технологий

Настройка окружения для работы с контейнеризацией в РЕД ОС/Centos

Настройка окружения для работы с контейнеризацией в РЕД ОС/Centos

Добавление резервного контроллера домена РЕД АДМ

Добавление резервного контроллера домена РЕД АДМ