Guía de Hosting Compartido (cPanel, Plesk, DirectAdmin)
LeadHub está construido desde cero para funcionar en hosting compartido. No necesitas un VPS, un servidor dedicado, acceso SSH ni ningún conocimiento de línea de comandos. Si puedes subir un archivo y llenar un formulario web, puedes instalar y ejecutar LeadHub.
Esta guía cubre todo lo específico de entornos de hosting compartido.
LeadHub en Hosting Compartido — Lo Que Necesitas Saber
Lo que absolutamente NO necesitas
- Sin SSH / terminal / línea de comandos — nunca
- Sin comandos artisan — LeadHub nunca requiere que escribas comandos
- Sin Composer — todas las dependencias PHP están pre-instaladas en el directorio
vendor/ - Sin Node.js o npm — todo el CSS y JavaScript está precompilado
- Sin Redis — LeadHub usa sesiones y caché basados en archivos por defecto
- Sin Supervisor — el archivo
cron.phpreemplaza todo el procesamiento en segundo plano - Sin acceso root — los permisos de usuario estándar de hosting compartido son suficientes
Lo que SÍ necesitas
- PHP 8.3 o superior (seleccionable en cPanel/Plesk/DirectAdmin)
- Una base de datos MySQL (todos los hosts compartidos la proporcionan)
- La capacidad de agregar un cron job (todos los principales hosts lo soportan)
- Alrededor de 500 MB de espacio libre en disco
- Apache con mod_rewrite habilitado (el predeterminado en prácticamente todos los hosts)
Elegir Cómo Instalar — Opción A u Opción B
- Opción A — Addon Domain (Recomendado): LeadHub obtiene su propio dominio o subdominio dedicado (ej.
leads.tudominio.com). Esta es la configuración más limpia. - Opción B — Instalación plana en public_html: Instalas LeadHub directamente en tu carpeta
public_html/. Funciona pero requiere algunos pasos extra.
Opción A — Addon Domain (Recomendado)
Paso 1: Crear un Addon Domain o Subdominio
En cPanel:
- Inicia sesión en cPanel.
- Haz clic en Addon Domains (sección Domains).
- Completa:
- New Domain Name: ej.
leads.tudominio.com - Document Root: cámbialo a
public_html/leadhub/public
- New Domain Name: ej.
- Haz clic en Add Domain.
¿Por qué apuntar a
public/? Los archivos de la aplicación de LeadHub (app/, config/, database/, storage/, vendor/) están diseñados para vivir arriba del directorio web público. Solo el directoriopublic/debe ser accesible desde el navegador.
En Plesk:
- Haz clic en Add Domain o Add Subdomain.
- Establece el "Document Root" al directorio
leadhub/publicdespués de subir los archivos.
En DirectAdmin:
- Ve a Domain Setup → Add Another Domain.
- Establece el document root al directorio
leadhub/public.
Paso 2: Sube los Archivos de LeadHub
La estructura en tu servidor debe verse así:
public_html/
leadhub/ ← todos los archivos de LeadHub van aquí
app/
bootstrap/
config/
database/
public/ ← aquí apunta tu addon domain
resources/
routes/
storage/
vendor/
cron.php
.env.example
...etc
Paso 3: Crea una Base de Datos MySQL
- En cPanel, ve a MySQL Databases.
- Crea una nueva base de datos y un usuario.
- Agrega el usuario a la base de datos con All Privileges.
Paso 4: Establece Permisos de Archivos
storage→ 755 → marcar "Recurse into subdirectories"bootstrap/cache→ 755
Paso 5: Ejecuta el Asistente de Instalación
Visita https://leads.tudominio.com/install y sigue los cinco pasos del instalador.
Opción B — Instalación Plana en public_html/
Usa este método si quieres LeadHub en tu dominio principal y no puedes usar un addon domain.
Paso 1: Sube los archivos
Sube y extrae el ZIP en public_html/.
Paso 2: Reorganiza los archivos
Mueve todo desde public_html/leadhub/public/ hacia public_html/ directamente. Luego mueve todas las otras carpetas (app/, bootstrap/, config/, etc.) también a public_html/.
public_html/
index.php ← movido de leadhub/public/
.htaccess ← movido de leadhub/public/
build/ ← movido de leadhub/public/
app/ ← movido de leadhub/
bootstrap/ ← movido de leadhub/
config/ ← movido de leadhub/
storage/ ← movido de leadhub/
vendor/ ← movido de leadhub/
cron.php ← movido de leadhub/
...etc
El archivo index.php detecta automáticamente esta disposición y ajusta las rutas.
Paso 3: Crea la base de datos, establece permisos y ejecuta el instalador
Idéntico a la Opción A. Visita https://tudominio.com/install.
Configurar el Cron Job — CRÍTICO
Este es el paso más importante después de la instalación. Sin el cron job, LeadHub no procesará leads entrantes, las automatizaciones no se ejecutarán y los correos no se enviarán.
El cron job ejecuta cron.php una vez cada minuto.
Agregar el cron job en cPanel
-
Ve a la sección Advanced → Cron Jobs.
-
Configura todos los campos de tiempo como
*(cada minuto). -
En el campo Command, ingresa:
php /home/tuusuario/public_html/leadhub/cron.php >> /dev/null 2>&1 -
Haz clic en Add New Cron Job.
Agregar el cron job en Plesk
-
Ve a Scheduled Tasks.
-
Agrega una tarea que ejecute cada minuto:
php /var/www/vhosts/tudominio.com/leadhub/cron.php >> /dev/null 2>&1
Agregar el cron job en DirectAdmin
-
Ve a Cron Manager.
-
Todos los campos de tiempo como
*:php /home/tuusuario/domains/tudominio.com/leadhub/cron.php >> /dev/null 2>&1
Encontrar la ruta correcta de PHP
Si php no funciona, rutas comunes son:
/usr/local/bin/php/usr/bin/php/opt/cpanel/ea-php83/root/usr/bin/php
Alternativa: Cron basado en web
Si tu host no soporta cron shell, agrega CRON_SECRET=TuSecretoAleatorio al archivo .env y configura un cron URL:
https://tudominio.com/cron.php?token=TuSecretoAleatorio
Nota de seguridad: Sin
CRON_SECRETconfigurado,cron.phpbloquea todo acceso web.
Referencia de Permisos de Archivos
| Carpeta / Archivo | Permiso Correcto | Por qué |
|---|---|---|
storage/ (y subdirectorios) | 755 | LeadHub escribe sesiones, logs, caché y archivos subidos aquí |
bootstrap/cache/ | 755 | LeadHub escribe archivos de configuración compilados aquí |
public/ | 755 | El servidor web necesita leer archivos aquí |
Archivos PHP (.php) | 644 | Legibles por el servidor web |
.env | 640 o 644 | Sensible — legible por el servidor web, no accesible públicamente |
Seleccionar la Versión Correcta de PHP
cPanel: Software → MultiPHP Manager → selecciona tu dominio → PHP 8.3 → Apply.
Plesk: Websites & Domains → PHP Settings → PHP 8.3 → OK.
DirectAdmin: Domain Setup → PHP Version → 8.3.
Solución de Problemas
| Problema | Causa probable | Solución |
|---|---|---|
| Página en blanco | Versión PHP incorrecta | Cambia a PHP 8.3 en tu panel de control |
| Error 404 | Archivos en carpeta incorrecta o mod_rewrite no activo | Verifica ubicación de archivos y .htaccess |
| Error 403 Forbidden | Permisos incorrectos | Establece storage/ y public/ a 755 |
| No se puede acceder a /install | Problema de ruta en instalación plana | Asegúrate de que index.php esté directamente en public_html/ |
| Cron job no se ejecuta | Ruta incorrecta a PHP o cron.php | Verifica la ruta completa; prueba /usr/local/bin/php |
| Automatizaciones no se disparan | Cron job no configurado | Verifica que el cron job esté agregado y guardado |
| Subidas de archivos fallan | storage/app/public/ no escribible | Establece storage/ a 755 recursivamente |
| Correos no se envían | Email no configurado | Ve a Configuración → Email y configura SMTP |
| "Cannot connect to database" | Credenciales incorrectas | Verifica nombre, usuario y contraseña |
| Pantalla blanca después del login | Problema de almacenamiento de sesión | Verifica que storage/framework/sessions/ exista y sea escribible |
| Instalador dice ya instalado | Archivo storage/installed.lock existe | Elimina installed.lock de storage/ |
| Addon domain muestra sitio padre | No apunta a public/ | Edita el document root para que termine en /leadhub/public |