#!/bin/bash
# vte.ego.it — mod_php 7.4 -> PHP 7.4 FPM (mpm_event)
# Uso: sudo bash /var/www/html/server-ops/ego/migrate-apache-all-php74-fpm.sh

set -euo pipefail

if [[ "${EUID:-0}" -ne 0 ]]; then
	echo "Esegui come root: sudo bash $0" >&2
	exit 1
fi

export DEBIAN_FRONTEND=noninteractive

echo "[INFO] Pacchetti FPM 7.4 + estensioni VTE..."
apt-get update -qq
apt-get install -y --no-install-recommends \
	php7.4-fpm \
	php7.4-cli php7.4-common php7.4-mysql php7.4-xml php7.4-curl php7.4-gd php7.4-mbstring \
	php7.4-zip php7.4-bcmath php7.4-imap php7.4-ldap php7.4-intl php7.4-readline php7.4-opcache \
	php7.4-soap php7.4-apcu php7.4-bz2
apt-get install -y --no-install-recommends php7.4-imagick 2>/dev/null || echo "[WARN] php7.4-imagick opzionale non installato."

install -m0644 /dev/stdin /etc/php/7.4/fpm/conf.d/99-vte-ego.ini <<'EOFINI'
memory_limit = 512M
max_execution_time = 300
max_input_vars = 5000
post_max_size = 128M
upload_max_filesize = 128M
date.timezone = Europe/Rome
EOFINI

a2enmod proxy proxy_fcgi setenvif ssl rewrite headers >/dev/null 2>&1 || true

CONF=/etc/apache2/conf-available/ego-php74-fpm-global.conf
install -m0644 /dev/stdin "$CONF" <<'EOFC'
<FilesMatch ".+\.(php|phar|phtml)$">
	SetHandler "proxy:unix:/run/php/php7.4-fpm.sock|fcgi://localhost/"
</FilesMatch>
EOFC
a2enconf ego-php74-fpm-global

if a2query -m php7.4 &>/dev/null; then
	a2dismod -f php7.4 || true
fi
if dpkg -l libapache2-mod-php7.4 2>/dev/null | grep -q '^ii'; then
	apt-get remove -y libapache2-mod-php7.4 || true
fi

if a2query -m mpm_prefork &>/dev/null; then
	a2dismod -f mpm_prefork || true
	a2enmod mpm_event || true
fi

systemctl enable --now php7.4-fpm
systemctl restart php7.4-fpm
apache2ctl configtest
systemctl restart apache2

echo "[OK] Apache usa PHP 7.4 FPM."
