RedOS: обновление ядра Linux

Узнать текущую. версию ядра:

uname -a

Обновить текущее ядро:

dnf update kernel-lt

Удалить старые не используемые ядра, оставив последнее на всякий случай:

dnf remove --oldinstallonly --setopt installonly_limit=2 kernel

RedOS: обновление httpd из исходников

Как оказалось (по советам данным на linux.org.ru), наиболее правильным вариантом обновления существующей инсталляции httpd, является «опакечивание» исходных кодов в rpm, а затем штатная его установка. В этом случаем мы избавляемся от проблем с выбором правильных ключей и путей, которые пришлось бы устанавливать руками при компиляции/сборке httpd из исходников. Итак поехали:

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

dnf install rpmdevtools rpmlint
dnf install apr-devel apr-util-devel libuuid-devel lua-devel openldap-devel
dnf install apr-util-ldap
dnf install perl libxml2-devel

Затем создадим структуру каталогов для сборки:

rpmdev-setuptree

Далее скачиваем исходные коды httpd:

wget https://dlcdn.apache.org/httpd/httpd-2.4.62.tar.bz2

И теперь «опакечиваем» их в rpm:

rpmbuild -tb httpd-2.4.62.tar.bz2

Если сборка вываливается с ошибками, то необходимо смотреть файл config.log и до устанавливать необходимые зависимости (смотря на что ругается)

Если сборка прошла успешно, то в папке ~/rpmbuild/RPMS/x86_64 будут пакеты готовые к установке. Устанавливать их можно штатно:

rmp -U *.rpm --force

ключ —force в данном случае нужен для того, чтобы установщик не ругался на уже существующие файлы настройки httpd (вот тут осторожно! лучше сначала попробовать без этого ключа и посмотреть ошибки)

Убедимся что версия обновилась:

httpd -V
обновление httpd из исходников

Вот и всё, остается перезапустить сервис httpd

Установка OpenSSH из исходных кодов на RedOS

Задача: необходимо обновить существующую установку демона sshd на ОС RedOS (установка sshd из исходников).

Решение:

Подготавливаю необходимый инструментарий и окружение:

dnf install libtool svn expat-devel pcre pcre-devel openssl-devel -y
dnf install zlib-devel
dnf install pam-devel
dnf install libselinux-devel

Скачиваю на сайте https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ необходимую версию sshd, распаковываем её в папку и переходим в неё:

tar -xzf openssh-9.8p1.tar.gz
cd openssh-9.8p1

Конфигурируем, cобираем, устанавливаем:

./configure --with-md5-passwords --with-privsep-path=/var/lib/sshd/ --sysconfdir=/etc/ssh --with-pam --with-selinux
make
make install

После установки нужно перестартовать демон и посмотреть версию sshd:

service sshd restart
ssh -V
установка sshd из исходников

Red OS 7.3 настройка ssmtp

Часто бывает, что настраивать полноценный почтовый сервер на виртуалке нет ни необходимости ни желания, а почту отправлять…желание есть. Для этого и служит ssmtp. Фактически он подменяет в системе почтовую систему, и отправляет почту используя чужие почтовые сервера — например mail. yandex, gmail и т.д. Естественно понадобится учетная запись на этой почтовой системе, и открытый доступ для получения/отправки почты из вне. Далее установка и настройка ssmtp применительно к mail.yandex.ru

Установка ssmtp:

dnf install https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/s/ssmtp-2.64-14.el7.x86_64.rpm

Далее откроем /etc/ssmtp/ssmtp.conf и приведем в соответствии с вашими учетными данными:

hostname=localhost
FromLineOverride=YES
AuthUser=моя_почта@yandex.ru
AuthPass=мой_пароль
smtp.yandex.ru:465
rewriteDomain=yandex.ru
UseTLS=YES
TLS_CA_File=/etc/pki/tls/certs/ca-bundle.crt
DEBUG=YES

Так-же в /etc/ssmtp/revaliases нужно создать алиас вида:

root:моя_почта@yandex.ru:smtp.yandex.ru:465

И создать символическую ссылку, подменяющую sendmail:

ln -s /usr/sbin/ssmtp /usr/sbin/sendmail

На этом и всё. Попробовать отправить письмо можно прямо из консоли:

echo "Test text" | mail -s "Test title" -r моя_почта@yandex.ru donpadlo@gmail.com

Подготовка сервера RED OS 7.3 к установке Битрикс «Управление сайтом»

Дальнейший ход установки предполагает, что у вас уже установлена RED OS в конфигурации программ «Сервер минимальный», без выбора ПО (т.е. php, apache и т.д. будем ставить позже и сами!)

Отключим SELinux:

echo 'SELINUX=disabled' > /etc/sysconfig/selinux
reboot

Настроим отправку почты из консоли:

yum install sendmail –y

Для проверки работы:

echo "Это тестовое письмо " | mail -s "Проверка отправки почты " -r no-reply@mail.ru vasya@mail.ru

Установим PHP 8.1

dnf install php81-release 
dnf clean all
dnf makecache 
dnf  install php php-cli php-common php-devel php-gd php-imap php-json php-ldap php-mbstring php-mysqlnd php-opcache php-pdo php-pear php-pear-DB php-pecl-apcu php-pecl-mcrypt php-pecl-memcache php-pecl-ssh2 php-process php-pspell php-xml php-zipstream php-json php-xml

Если вдруг необходима версия PHP 7.4, которая идёт по умолчанию, то соответственно первая строчка не нужна

Установим Apache и Ngnix

dnf install httpd nginx

Установим MariaDB

dnf install mariadb-server mariadb

Установим Redis

dnf install redis 

Настройка Ngnix

Создадим папку /var/www/html/bx-site, присвоим ей пользователя и группу:

mkdir /var/www/html/bx-site
chown nginx:apache /var/www/html/bx-site

Далее качаем этот архив, и содержимое папки /redos/nginx переписываем поверх в /etc/nginx. Кроме того нужно в /etc/hosts добавить строчку:

127.0.0.1 httpd push

В случае необходимости включить сразу ssl, добавим в файл /etc/ngnix/sites-available/default.conf секцию вида:

server {

    listen 443 ssl;
    server_name _;
    server_name_in_redirect off;

    #ssl on;
    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/cert.key;


    proxy_set_header    X-Real-IP        $remote_addr;
    proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;
    proxy_set_header    Host $host;

    proxy_redirect ~^(http://[^:]+):\d+(/.+)$ $1$2;
    proxy_redirect ~^(https://[^:]+):\d+(/.+)$ $1$2;

    set $docroot                "/var/www/html/bx-site";

    index index.php;
    root "/var/www/html/bx-site";

    # BXTEMP - personal settings
    include conf.d/bx_temp.conf;

    # Include parameters common to all websites
    include conf.d/bitrix.conf;

}

Если необходима (а она скорее всего необходима) переадрессация с http на https, то в секцию c 80 портом, добавляем строчки:

server {
    listen 80 default_server;
...
  if ($request_uri !~* "/robots.txt") {
        rewrite ^(.*)$ https://$host$1 permanent;
    }
...

Запустим сервис:

systemctl --now enable nginx

Настройка PHP

В папке /etc/php.d необходимо отредактировать настройки модулей:

opcache

opcache.max_accelerated_files = 100000
opcache.revalidate_freq = 0

bitrix.ini

display_errors = Off
error_reporting = E_ALL
error_log = '/var/log/php/error.log'
; Set some more PHP parameters
enable_dl = Off
short_open_tag = On
allow_url_fopen = On
# Security headers
mail.add_x_header = Off
expose_php = Off

Настройка Apache

  • Добавить в /etc/httpd/conf.d файл default.conf из архива выше
  • в httpd.conf заменить Listen 80 на Listen 8090
  • заменить файл /etc/httpd/conf.modules/00-mpm.conf на файл из архива выше

Запустить httpd:

systemctl --now enable httpd

На этом моменте файл index.php размещенный в /var/www/html/bx-site уже должен отображаться адекватно

Настройка MariaDB

В файле /etc/my.cnf.d/mariadb-server.cnf внутри тега [mysqld] необходимо добавить/изменить строки:

[mysqld]
transaction-isolation = READ-COMMITTED
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
thread_cache_size = 4

Запуск сервиса:

systemctl --now enable mariadb

Заходим в консоль сервера mysql, создаём пользователя и даём ему права:

create user 'test'@'localhost' identified by 'password';
create database testdb;
grant all on testdb.* to 'test'@'localhost'

Настройка Redis

В папке /etc/redis необходимо заменить файл redis.conf из архива выше, и выполнить в консоли:

usermod -g apache redis
chown root:apache /etc/redis/ /var/log/redis/
[[ ! -d /etc/systemd/system/redis.service.d ]] && mkdir /etc/systemd/system/redis.service.d
echo -e '[Service]\nGroup=apache' > /etc/systemd/system/redis.service.d/custom.conf
systemctl daemon-reload
systemctl --now enable redis

На этом в принципе и всё. Сервер подготовлен для развертывания битрикса в папке /var/www/html/bx-site. По идее далее кидаем туда дистрибутив (ну или бекап, если сайт переносите как я) и начинаем установку из браузера