Files

43 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
WP_DIR="$ROOT_DIR/backend/wordpress"
ENV_FILE="$ROOT_DIR/.env"
if [[ -f "$ENV_FILE" ]]; then
set -a
# shellcheck disable=SC1090
source "$ENV_FILE"
set +a
fi
WP_PORT="${WP_PORT:-8081}"
WP_HOST="${WP_HOST:-127.0.0.1}"
required_modules=("mysqli" "dom")
missing_modules=()
php_modules="$(php -m | tr '[:upper:]' '[:lower:]')"
for module in "${required_modules[@]}"; do
if ! printf '%s\n' "$php_modules" | grep -qx "$module"; then
missing_modules+=("$module")
fi
done
if [[ ${#missing_modules[@]} -gt 0 ]]; then
echo "Faltan extensiones PHP requeridas para WordPress: ${missing_modules[*]}"
echo "No arranco el servidor para evitar una instalación rota."
exit 1
fi
if ! php -r "exit((bool) @fsockopen('${WP_HOST}', ${WP_PORT}) ? 0 : 1);"; then
:
else
echo "El puerto ${WP_PORT} ya está ocupado."
exit 1
fi
echo "Iniciando WordPress en http://${WP_HOST}:${WP_PORT}"
exec php -S "${WP_HOST}:${WP_PORT}" -t "$WP_DIR" "$ROOT_DIR/backend/router.php"