5846c515f3
- 4 temas WordPress: persona-cv (activo), lumina, apex-cv, cvolio - Plugin pflores-cv-fields con CMB2 (100% gratuito) — admin editable - Generador PDF dinámico con Chromium headless (?cv_pdf=1) - Datos del CV de Patricia Flores cargados en CMB2 - URL dinámica con soporte proxy SSL (NPM/X-Forwarded-Proto) - WP Mail SMTP instalado (pendiente config SMTP) - Documentación completa: PROMPT_IA.md, DEPLOY_WEB.md, PRODUCCION.md, VERSIONADO.md
43 lines
1.0 KiB
Bash
Executable File
43 lines
1.0 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"
|