42 lines
974 B
Bash
Executable File
42 lines
974 B
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=()
|
|
|
|
for module in "${required_modules[@]}"; do
|
|
if ! php -m | grep -qi "^${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"
|