#!/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"