#!/bin/bash
# 20-packages.sh — установка стека: nginx + Apache(httpd) + PHP 8.2(remi) + MariaDB 10.11 + certbot.
# Список php82-* собран 1-в-1 с источника (manifests/php82-packages.txt).
set -euo pipefail
cd "$(dirname "$0")"; source ./env.sh
need_root

log "nginx (фронт, TLS) + Apache httpd (бэкенд :$APACHE_PORT)"
dnf install -y nginx
dnf install -y httpd
# mod_ssl на Apache НЕ ставим — TLS терминирует nginx. mod_proxy/mod_proxy_fcgi/mod_remoteip уже в httpd.

log "PHP 8.2 (remi SCL php82-*) — тот же набор расширений, что на источнике"
dnf install -y \
  php82-php-fpm php82-php-cli php82-php-common \
  php82-php-bcmath php82-php-gd php82-php-intl php82-php-ldap \
  php82-php-mbstring php82-php-mysqlnd php82-php-opcache php82-php-pdo \
  php82-php-process php82-php-soap php82-php-sodium php82-php-xml \
  php82-php-pecl-apcu php82-php-pecl-igbinary php82-php-pecl-memcached \
  php82-php-pecl-msgpack php82-php-pecl-zip
ok "php82: $($PHP_BIN -v | head -1)"

log "MariaDB 10.11 LTS"
dnf install -y MariaDB-server MariaDB-client MariaDB-backup
ok "MariaDB: $(mariadb --version 2>/dev/null || mysql --version)"

log "certbot (Let's Encrypt) + плагин Cloudflare DNS-01 (для wildcard)"
dnf install -y certbot python3-certbot-dns-cloudflare python3-certbot-nginx
ok "certbot: $(certbot --version 2>&1)"
certbot plugins 2>/dev/null | grep -qi "dns-cloudflare" && ok "плагин dns-cloudflare доступен" || warn "плагин dns-cloudflare не виден — проверь EPEL"

log "firewalld"
dnf install -y firewalld
systemctl enable --now firewalld

log "ГОТОВО. Установленные ключевые версии:"
echo "  nginx : $(nginx -v 2>&1)"
echo "  httpd : $(/usr/sbin/httpd -v 2>&1 | head -1)"
echo "  php   : $($PHP_BIN -v | head -1)"
echo "  maria : $(mariadb --version 2>/dev/null || mysql --version)"
warn "Сервисы пока НЕ конфигурированы. Дальше: 30-files.sh → 40-configs.sh"
