🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Configurar Apache Virtual Hosts en cPanel

Actualizado el 10 de diciembre de 2025

Introducción: ¿Qué son los Virtual Hosts y por qué los necesitas?

Cuando tienes un servidor con cPanel, la forma más común de gestionar múltiples sitios web es a través de la creación de cuentas de alojamiento independientes. Sin embargo, hay ocasiones en las que necesitas alojar varios dominios o subdominios en una misma cuenta, o simplemente deseas tener un control más fino sobre la configuración de Apache. Aquí es donde entran en juego los Apache Virtual Hosts.

Un Virtual Host (o vhost) es, en esencia, un bloque de configuración dentro de Apache que le dice al servidor cómo responder a las peticiones de un dominio específico. Imagina que tu servidor es un gran edificio de apartamentos. Cada apartamento (Virtual Host) tiene su propia puerta (puerto), su propio inquilino (dominio) y su propio contenido (archivos del sitio web). Sin ellos, el servidor solo podría mostrar un único sitio web.

En este tutorial, te guiaré paso a paso para que aprendas a configurar Apache Virtual Hosts en cPanel, ya sea para alojar múltiples sitios web en una sola IP, crear subdominios complejos o simplemente para entender mejor cómo funciona tu servidor. No necesitas ser un experto en Linux, solo seguir las instrucciones con calma.


¿Qué es exactamente un Virtual Host en cPanel?

Antes de ensuciarnos las manos, es crucial entender la diferencia entre un Virtual Host a nivel de sistema y la gestión que hace cPanel.

cPanel es un panel de control que actúa como un intermediario. Cuando creas un dominio o un subdominio desde la interfaz gráfica, cPanel automáticamente genera la configuración del Virtual Host por ti y la guarda en un archivo llamado httpd.conf (o en archivos de inclusión dentro de la carpeta conf).

Sin embargo, hay veces que necesitas hacer ajustes manuales. Por ejemplo:

  • Añadir redirecciones complejas.
  • Configurar cabeceras personalizadas.
  • Cambiar la configuración de compresión.
  • Crear alias de dominio (parked domains) de forma más avanzada.

Para esto, cPanel nos ofrece una herramienta llamada "Include Editor" (Editor de Inclusión). Esta es la forma más segura de añadir configuraciones de apache virtual hosts sin romper nada, ya que cPanel regenera su configuración principal constantemente y podría borrar tus cambios si los haces directamente en el archivo maestro.


Requisitos previos antes de configurar

Asegúrate de tener lo siguiente:

  • Acceso a tu panel de control cPanel (generalmente en tu-dominio.com/cpanel o tu-ip:2083).
  • Privilegios de administrador o una cuenta con acceso a "Editor de Inclusión". Si no lo ves, es que tu proveedor de hosting lo tiene restringido.
  • Un conocimiento básico de cómo funciona la estructura de archivos de tu servidor (normalmente en /home/usuario/public_html).

[WARNING] Si tu hosting es compartido, es muy probable que cPanel no te permita editar los vhosts directamente por razones de seguridad. Este tutorial está orientado a usuarios con un VPS, un servidor dedicado o un plan con "root access" o "WHM".


Método 1: La forma segura con el Editor de Inclusión de cPanel

Esta es la técnica que recomiendo para el 90% de los casos. Es limpia, reversible y no se pierde al actualizar el servidor.

Paso 1: Accede al Editor de Inclusión

  1. Inicia sesión en tu cPanel.
  2. Busca la sección "Software" o "Avanzado".
  3. Haz clic en "Editor de Inclusión" (Include Editor).

Verás dos opciones: "Pre VirtualHost Include" y "Post VirtualHost Include".

  • Pre VirtualHost: Se ejecuta antes de que se carguen todos los Virtual Hosts. Útil para definir variables globales o módulos que se usan después.
  • Post VirtualHost: Se ejecuta después de que se hayan definido todos los Virtual Hosts. Es el lugar perfecto para añadir bloques <VirtualHost> personalizados que sobrescriban o añadan configuraciones.

Paso 2: Añade tu configuración personalizada

Para este ejemplo, vamos a crear un Virtual Host que añada una cabecera personalizada a un dominio específico. Selecciona "Post VirtualHost Include" y escribe lo siguiente:

<VirtualHost *:80>
    ServerName midominio.com
    DocumentRoot /home/miusuario/public_html
    <Directory /home/miusuario/public_html>
        AllowOverride All
        Require all granted
    </Directory>
    Header always set X-Mi-Cabecera "Hola desde el vhost"
</VirtualHost>

Haz clic en "Guardar" o "Update".

Paso 3: Verifica que funciona

Para que los cambios surtan efecto, a veces es necesario reconstruir la configuración de Apache y reiniciarlo. En cPanel, ve a "Configuración del servidor" > "Reconstruir configuración de Apache" y luego "Reiniciar Apache".

[TIP] No te asustes si no ves el cambio al instante. Apache a veces tarda unos segundos en recargar. Puedes comprobar el resultado usando una herramienta como curl -I tu-dominio.com desde la terminal o usando el inspector de red del navegador.


Método 2: Configuración directa en el archivo httpd.conf (para usuarios avanzados)

Si tienes acceso root a tu servidor (VPS o dedicado), puedes ir directamente a la raíz de la configuración. Ten mucho cuidado, un error aquí puede tumbar todo tu servidor web.

Paso 1: Localiza el archivo de configuración

La ruta típica en sistemas con cPanel es:

/etc/httpd/conf/httpd.conf

Pero cPanel separa los vhosts en archivos individuales dentro de:

/etc/httpd/conf/userdata/std/2/miusuario/

Paso 2: Edita el archivo del usuario

Dentro de esa carpeta, encontrarás un archivo llamado miusuario.conf. Aquí es donde cPanel genera los vhosts para cada dominio de ese usuario. Puedes editarlo con nano o vi.

nano /etc/httpd/conf/userdata/std/2/miusuario/miusuario.conf

Paso 3: Añade tu bloque VirtualHost

Al final del archivo, añade tu configuración. Por ejemplo, para servir un segundo sitio web desde una carpeta distinta:

<VirtualHost *:80>
    ServerName otrodominio.com
    ServerAlias www.otrodominio.com
    DocumentRoot /home/miusuario/webs/otrodominio
    <Directory /home/miusuario/webs/otrodominio>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog /home/miusuario/logs/otrodominio-error.log
    CustomLog /home/miusuario/logs/otrodominio-access.log combined
</VirtualHost>

Paso 4: Reconstruye y reinicia

Después de guardar, debes reconstruir la configuración para que cPanel no la sobrescriba con la suya propia. Usa el comando:

/scripts/rebuildhttpdconf
service httpd restart

[WARNING] Si no ejecutas rebuildhttpdconf, cPanel puede sobrescribir tu archivo httpd.conf la próxima vez que se ejecute una tarea programada, borrando tus cambios. ¡Siempre usa el script de cPanel!


Cómo alojar múltiples sitios web en una sola cuenta

Una de las preguntas más comunes es: "¿Puedo tener varios sitios web sin crear varias cuentas de cPanel?". La respuesta es sí, pero con matices.

La forma más sencilla es usar "Dominios Adicionales" (Addon Domains) en cPanel. Esto crea un vhost automáticamente. Sin embargo, si quieres hacerlo manualmente para tener más control, puedes usar el método anterior.

Estructura de carpetas recomendada

Para mantener el orden, te sugiero esta estructura dentro de tu cuenta:

/home/miusuario/
├── public_html (tu web principal)
├── webs/
│   ├── sitio1.com/
│   ├── sitio2.com/
│   └── sitio3.org/
└── logs/
    ├── sitio1.com.log
    └── sitio2.com.log

Luego, en tu configuración de vhost, apuntas el DocumentRoot a la carpeta correspondiente. Recuerda también crear los registros DNS para esos dominios apuntando a tu servidor.


Solución de problemas comunes (FAQ)

¿Por qué no veo mis cambios después de configurar los vhosts?

  1. Caché del navegador: Prueba en modo incógnito o con curl.
  2. Apache no se reinició: Asegúrate de ejecutar el reinicio.
  3. Sintaxis incorrecta: Revisa que no haya errores tipográficos en el archivo. Puedes validar con apachectl -t.

¿Cómo configuro un Virtual Host para HTTPS (puerto 443)?

Necesitas un certificado SSL. Si usas cPanel, lo más fácil es usar "AutoSSL" o instalar uno manualmente. Luego, en tu vhost, cambia el puerto a *:443 y añade las rutas a los certificados:

<VirtualHost *:443>
    ServerName midominio.com
    DocumentRoot /home/miusuario/public_html
    SSLEngine on
    SSLCertificateFile /home/miusuario/ssl/midominio.crt
    SSLCertificateKeyFile /home/miusuario/ssl/midominio.key
</VirtualHost>

¿Qué pasa si estoy usando Syspanel (HestiaCP) en lugar de cPanel?

Si tu servidor usa Syspanel (el antiguo HestiaCP), la filosofía es similar pero los archivos de configuración están en otra ruta. En Syspanel, los vhosts se guardan en /home/domain/conf/ y el acceso al panel es a través del puerto 2106. La gestión se hace desde la interfaz web, pero si necesitas editar manualmente, busca la carpeta conf del dominio específico.

[INFO] Syspanel es una alternativa gratuita a cPanel. Si estás migrando, ten en cuenta que los comandos de reconstrucción son diferentes (v-rebuild-all en lugar de rebuildhttpdconf).

¿Cómo puedo redirigir un dominio a otro usando vhosts?

La forma más eficiente no es con un Redirect, sino con un RewriteRule:

<VirtualHost *:80>
    ServerName viejo-dominio.com
    Redirect permanent / https://nuevo-dominio.com/
</VirtualHost>

Conclusión y buenas prácticas

Configurar Apache Virtual Hosts en cPanel es una habilidad esencial para cualquier administrador de servidores. Te da la flexibilidad de manejar múltiples sitios web con configuraciones personalizadas sin necesidad de abrir nuevas cuentas.

Recuerda estas reglas de oro:

  1. Siempre usa el Editor de Inclusión de cPanel en lugar de editar httpd.conf directamente, a menos que tengas experiencia.
  2. Haz copias de seguridad de los archivos que vayas a modificar.
  3. Prueba la sintaxis con apachectl -t antes de reiniciar el servicio para evitar caídas del servidor.
  4. Documenta tus cambios para saber qué hiciste y por qué.

Con esta guía, ya tienes las herramientas para dominar la configuración de Apache en tu entorno cPanel. Si te ha resultado útil, no dudes en compartirla con otros administradores que estén empezando. ¡Nos vemos en el próximo tutorial!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel