Inicio Hosting WordPress SEO Marketing VacaWeb.com 🚀 Hosting desde $85 MXN/mes
Hosting

cPanel: Guía Completa para Administrar tu Hosting como un Experto

22 Feb 2025 15 min de lectura VacaWeb Blog

cPanel es el panel de control más usado en hosting compartido mundial, pero la mayoría de los usuarios solo conoce el 20 % de sus funciones. Esta guía técnica cubre desde la gestión de cuentas hasta las herramientas avanzadas de administración WHM que todo administrador de hosting en México debe dominar.

Arquitectura de cPanel: cómo funciona internamente

cPanel opera en tres capas: WHM (WebHost Manager, puerto 2086/2087) para resellers y administradores de servidor, cPanel (puerto 2082/2083) para propietarios de cuentas de hosting, y Webmail (puerto 2095/2096) para usuarios finales de correo. Cada capa tiene su propio conjunto de APIs y permisos.

En un servidor con CloudLinux, cada cuenta cPanel vive dentro de un LVE (Lightweight Virtual Environment) con límites de CPU, RAM y E/S asignados en WHM → CloudLinux Manager. Esto garantiza que un sitio con tráfico viral no afecte a los otros.

🖥️
Dashboard de WHM mostrando el resumen de cuentas, uso de recursos y alertas críticas del servidor. La vista de CPU/Memoria por cuenta es esencial para identificar vecinos ruidosos.

Gestión de cuentas desde WHM

Crear una cuenta nueva desde línea de comandos con la API de WHM es más rápido que la GUI cuando hay que crear varias cuentas:

# Crear cuenta vía API de WHM (desde root en el servidor)
whmapi1 createacct   username=micliente   domain=micliente.com.mx   plan=hosting_basico   password='Passw0rd!Seguro'   contactemail=cliente@email.com   ip=n   cgi=y   frontpage=n   hasshell=n

# Ver detalles de una cuenta
whmapi1 accountsummary user=micliente

# Suspender cuenta por falta de pago
whmapi1 suspendacct user=micliente reason="Pago_vencido"

# Listar todas las cuentas con su plan y uso de disco
whmapi1 listaccts | python3 -c "
import sys, json
data = json.load(sys.stdin)
for acc in data['data']['acct']:
    print(f"{acc['user']:15} {acc['plan']:20} {acc['diskused']}MB / {acc['disklimit']}MB")
"

Gestión de bases de datos MySQL desde cPanel

El prefijo de usuario MySQL en cPanel sigue el formato usuario_nombrebd (máximo 8 caracteres del nombre de cuenta + guion bajo). Esto es importante al conectar aplicaciones:

# Desde SSH en la cuenta del cliente
# Ver todas las bases de datos de la cuenta
mysql -e "SHOW DATABASES;" 2>/dev/null | grep "^${USER}_"

# Crear BD y usuario vía UAPI (cPanel API v2)
uapi Mysql create_database name="${USER}_produccion"
uapi Mysql create_user name="${USER}_appuser" password='DB_Pass!2025'
uapi Mysql set_privileges_on_database   user="${USER}_appuser"   database="${USER}_produccion"   privileges='ALL PRIVILEGES'

# Exportar toda la BD (backup manual)
mysqldump -u "${USER}_appuser" -p "${USER}_produccion"   --single-transaction   --routines   --triggers   > backup_$(date +%Y%m%d).sql

# Importar desde backup
mysql -u "${USER}_appuser" -p "${USER}_produccion" < backup_20250315.sql
Tip: En cPanel con CloudLinux, la variable MYSQL_HOST debe ser localhost, no 127.0.0.1, para que el tráfico pase por el socket Unix en vez de TCP. El socket suele estar en /var/lib/mysql/mysql.sock.

Configurar correo profesional con anti-spam

cPanel usa Exim como MTA y SpamAssassin para filtrado. La configuración crítica para evitar que tu correo llegue como spam:

# Verificar que SPF, DKIM y DMARC estén activos para el dominio
# Desde WHM → Email → Email Deliverability

# Revisar la cola de correo desde SSH
exim -bp | head -50

# Ver el log de entregas recientes
exim -bp | exiqsumm

# Forzar entrega de mensajes en cola
exim -qff

# Ver por qué un correo específico falló
exim -Mvl 

# Bloquear dominio remitente específico en Exim
# WHM → Exim Configuration Manager → Advanced Editor
# Agregar en "ACL to run after the DATA command":
# deny senders = *@dominiomalicioso.com
📧
Configuración de registros DNS para email en cPanel: SPF, DKIM (clave de 2048 bits) y DMARC policy=quarantine. Estos tres registros son obligatorios para que Gmail y Outlook no marquen tu correo como spam.

Manejo de PHP con MultiPHP y PHP-FPM

cPanel con EasyApache 4 permite tener múltiples versiones de PHP en el mismo servidor. La configuración correcta por dominio:

# Ver versiones PHP disponibles en el servidor
/usr/local/cpanel/bin/rebuild_phpconf --current

# Listar versión de PHP por dominio desde WHM
whmapi1 php_get_vhost_versions

# Cambiar versión PHP de un dominio específico vía UAPI
uapi LangPHP php_set_vhost_versions   vhost=midominio.com   php_version=ea-php82

# Ver configuración PHP activa
php -i | grep -E "^(PHP Version|memory_limit|upload_max|max_execution)"

# Editar php.ini por dominio (crea override local)
cat >> ~/public_html/.user.ini << 'EOF'
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120
opcache.enable = 1
opcache.memory_consumption = 128
EOF

# Recargar PHP-FPM para aplicar cambios
# (WHM → Service Manager → PHP-FPM → Restart)
Advertencia: El archivo .user.ini solo funciona con PHP-FPM. Si tu hosting usa PHP como módulo de Apache (mod_php), necesitas .htaccess con directivas php_value o php_flag.

Backups automáticos con R1Soft o JetBackup

En VacaWeb usamos JetBackup 5 integrado en cPanel. Desde la cuenta del cliente puedes restaurar archivos individuales sin depender del soporte técnico:

# Restaurar un archivo específico desde backup (vía cPanel → JetBackup)
# También se puede desde SSH si tienes acceso al servidor

# Verificar que los backups de cPanel estén activos (desde WHM)
whmapi1 backup_config_get

# Configurar retención de 30 días (desde WHM → Backup Configuration)
whmapi1 backup_config_set   backupdays="1,2,3,4,5,6,7"   retentiontype="days"   retention="30"

# Disparar backup manual de una cuenta
/usr/local/cpanel/scripts/pkgacct micliente /backup/manual/

Monitoreo y optimización del servidor desde WHM

# Ver el top 10 de procesos más pesados
ps aux --sort=-%cpu | head -12

# Revisar cargas de CPU/MySQL en tiempo real con mytop
mytop -u root -p$(cat /root/.my.cnf | grep password | cut -d= -f2)

# Ver todas las conexiones MySQL activas
mysqladmin processlist | grep -v Sleep | head -30

# Analizar slow queries de las últimas 24h
mysqldumpslow -s t -t 10 /var/lib/mysql/$(hostname)-slow.log

# Revisar el uso de inodos por cuenta (crítico en hosting compartido)
repquota -as | sort -rh | head -20
TareaUbicación en cPanelEquivalente SSH
Crear BD MySQLBases de Datos → Asistente MySQLuapi Mysql create_database
Gestionar DNSDominios → Editor de Zona DNSwhmapi1 adddns
Instalar SSLSeguridad → SSL/TLS → AutoSSL/usr/local/cpanel/bin/autossl_check
Ver logs de errorMétricas → Errorestail -f ~/logs/error_log
Gestionar cronsAvanzado → Cron Jobscrontab -e
Gestionar PHPSoftware → MultiPHP Manageruapi LangPHP php_set_vhost_versions

Escenarios Prácticos: cPanel en Producción

Escenario 1 — Agencia de diseño con 30 clientes en reseller hosting: WHM (WebHost Manager) permite crear cuentas de cPanel individuales por cliente. El script de aprovisionamiento automatizado:

#!/bin/bash
# Crear cuenta cPanel via WHM API
curl -sk -u "root:PASSWORD"   "https://servidor.vacaweb.mx:2087/json-api/createacct"   --data-urlencode "username=cliente01"   --data-urlencode "domain=cliente01.com.mx"   --data-urlencode "plan=basico"   --data-urlencode "contactemail=cliente@email.com"

Escenario 2 — Desarrollador configurando WordPress multisite: cPanel permite modificar el archivo php.ini por dominio y crear subdominios para un multisite de WordPress. La configuración de memoria por dominio:

# En .htaccess del dominio principal
php_value memory_limit 256M
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300

Errores Comunes en cPanel

ErrorSíntomaCausaSolución
Cuota de disco excedidaSitio deja de funcionarEmails o backups acumuladosLimpiar papelera de correo y backups viejos
Error 500 internoSitio muestra error blancophp.ini mal configuradoRevisar error_log en File Manager
Subdominio no resuelve404 en subdominioDNS no propagadoEsperar 24h o verificar zona DNS en cPanel
SSL no aplicaAdvertencia "No seguro"AutoSSL fallóCorrer AutoSSL manualmente en SSL/TLS
Backup fallaSin respaldo disponibleDisco llenoDefinir destino externo FTP/S3 para backups

Preguntas Frecuentes sobre cPanel

¿Cuál es la diferencia entre cPanel y WHM?

cPanel es la interfaz del usuario final (gestiona su propia cuenta: correos, bases de datos, dominios). WHM (WebHost Manager) es la interfaz del administrador del servidor: crea cuentas cPanel, gestiona recursos, instala software a nivel del SO y configura el servidor. Los revendedores tienen acceso a WHM pero solo para su espacio asignado.

¿Cómo accedo a los logs de error de mi sitio en cPanel?

Dos formas: 1) cPanel > Métricas > Errores (muestra últimas 300 líneas de error_log). 2) File Manager > navegar a public_html/ o la raíz del dominio y buscar el archivo error_log. También puedes activar el log en tu .htaccess con php_flag log_errors On y php_value error_log /home/usuario/error.log.

¿Cómo cambiar la versión de PHP en cPanel?

cPanel > Software > Select PHP Version (MultiPHP Manager). Puedes cambiar la versión por dominio específico sin afectar otras cuentas. Las versiones disponibles dependen de lo que el proveedor de hosting tenga instalado; VacaWeb soporta PHP 7.4, 8.0, 8.1, 8.2 y 8.3.

¿Cómo crear una base de datos MySQL en cPanel?

cPanel > Bases de datos MySQL > Crear base de datos. Luego crea un usuario MySQL, asígnale todos los privilegios sobre la base de datos. Para WordPress, estos datos van en wp-config.php: DB_NAME, DB_USER, DB_PASSWORD, DB_HOST (generalmente localhost). Si usas conexión remota, especifica la IP permitida en MySQL remoto.

¿Cómo hacer un backup completo del sitio desde cPanel?

cPanel > Files > Backup Wizard > Full Backup. El archivo .tar.gz incluye todos los archivos del home directory y las bases de datos. Para restaurar, sube el archivo vía File Manager o FTP y usa la opción "Restaurar" en Backup. Para backups automáticos, configura JetBackup (si disponible) o el cron de backups en WHM.

👨‍💻
Juan Vaca
Cloud Infrastructure Expert & Founder de VacaWeb

Fundador de VacaWeb con más de 15 años administrando infraestructura Linux en producción. Especialista en LiteSpeed, CloudLinux, cPanel/WHM y arquitectura de hosting de alto rendimiento para el mercado mexicano. Ha diseñado y migrado la infraestructura de más de 1,200 sitios web empresariales.

Compartir: