مرکز آموزش
Cómo publicar una app Laravel en WizHosting (cPanel + CloudLinux) پرینت این مقاله
En WizHosting podés correr aplicaciones Laravel sin necesidad de acceso root, usando tu cuenta compartida con cPanel + CloudLinux.
En esta guía vas a ver:
-
Requisitos y conceptos básicos.
-
Dónde ubicar los archivos de Laravel.
-
Cómo crear la base de datos y usuario en cPanel.
-
Cómo configurar el archivo
.env. -
Cómo instalar dependencias con Composer.
-
Qué hacer con la carpeta
public/ypublic_html. -
Permisos recomendados y optimización.
-
Errores frecuentes y cómo resolverlos.
Nota: los pasos son compatibles con la forma recomendada en la documentación oficial de Laravel para despliegue en producción y con las guías de instalación en cPanel usando Composer como usuario de cuenta compartida.
1. Requisitos y conceptos básicos
Antes de empezar, necesitás:
-
Un plan de hosting con soporte para PHP y Composer (los servicios de WizHosting lo tienen).
-
Acceso a tu cPanel (usuario y contraseña).
-
Un proyecto Laravel ya creado:
-
Puede haber sido generado en tu PC (
laravel new,composer create-project) o directamente en el servidor via Composer.
-
Laravel recomienda en producción:
-
APP_ENV=production -
APP_DEBUG=false -
Permisos de escritura solo en
storage/ybootstrap/cache/.
2. Estructura de carpetas recomendada en el hosting
La estructura típica en una cuenta de hosting es:
La idea es:
-
Dejar todo el código de Laravel fuera de
public_html(por ejemplo, en/home/usuario/laravel). -
Que solo lo que hay en
public/sea accesible desde la web (ya sea apuntando el docroot a esa carpeta o copiando su contenido apublic_html).
Como en cPanel, el document root suele ser public_html, hay dos enfoques:
-
Apuntar el document root del dominio a
laravel/public(si el panel lo permite). -
Mantener el document root en
public_htmly mover el contenido depublic/apublic_html, ajustando rutas enindex.php.
En cuentas compartidas, lo más habitual (y fácil de explicar al cliente final) es la opción 2.
3. Crear el proyecto Laravel (dos escenarios)
3.1. Crear el proyecto directamente en el servidor
-
Entrá a cPanel.
-
Abrí Terminal (si está disponible) o conectate por SSH con el usuario de cPanel.
-
Movete a tu home:
-
Creá el proyecto con Composer (ejemplo):
Esto va a generar una carpeta /home/usuario/laravel con toda la estructura de Laravel.
cPanel documenta explícitamente este tipo de flujo usando Composer desde la cuenta del usuario, sin permisos de root.
3.2. Subir un proyecto Laravel que ya tenés en tu PC
-
En tu PC, ubicá la carpeta raíz del proyecto (la que contiene
artisan,app/,routes/, etc.). -
NO hace falta subir
vendor/ninode_modules(los podemos regenerar luego). -
Comprimí el proyecto (sin
vendor/ninode_modules) en un ZIP (ej:mi-laravel.zip). -
En cPanel → File Manager:
-
Creá la carpeta
laravelen tu home. -
Entrá a
/home/usuario/laravel. -
Subí el ZIP y usá Extract / Extraer.
-
Al final deberías tener:
4. Crear la base de datos en cPanel
Laravel usa una base de datos (MySQL/MariaDB) para la mayoría de proyectos.
-
En cPanel, entrá a MySQL® Databases.
-
Creá una nueva base de datos, por ejemplo:
-
usuario_miaplicacion
-
-
Creá un usuario MySQL, por ejemplo:
-
usuario_miaplicacion_ucon contraseña segura.
-
-
En el bloque Add User To Database, asigná ese usuario a la base de datos nueva con ALL PRIVILEGES.
Anotá:
-
Nombre de la base de datos.
-
Usuario.
-
Contraseña.
Los vas a usar en el .env.
5. Configurar el archivo .env
En /home/usuario/laravel, buscá el archivo .env. Si no existe, copiá el ejemplo:
Y editá .env (podés usar el editor de archivos del cPanel o nano/vim por SSH):
5.1. Generar la APP_KEY
Desde el Terminal o SSH:
Esto completa APP_KEY en .env, como recomienda la documentación oficial de Laravel para producción.
6. Instalar dependencias PHP (Composer)
Si subiste el proyecto sin vendor/, o si lo creaste desde composer create-project, asegurate de tener todas las dependencias:
Laravel recomienda en producción usar:
-
--no-devpara evitar paquetes de desarrollo. -
--optimize-autoloaderpara mejorar el rendimiento.
Si ya tenías vendor/ subido, este paso igual es útil para actualizar dependencias si cambió composer.json.
7. Exponer la carpeta public/ (public_html)
Acá viene el punto crítico: Laravel espera que el “document root” apunte a su carpeta public/.
Como en cPanel el document root del dominio principal suele ser public_html, hay dos formas:
Opción A – Cambiar el document root del dominio (más “limpia”)
Si tu panel lo permite (por ejemplo, agregando un dominio nuevo o editando el existente), podés hacer que el docroot sea:
En ese caso:
-
No usás
public_htmlpara la app Laravel. -
Todo lo que esté en
public/se sirve directamente.
(Depende de cómo está montado el panel; muchos usuarios de hosting compartido no tienen esta opción tan directa.)
Opción B – Copiar el contenido de public/ a public_html (la más común)
Es el enfoque más fácil de explicar y funciona perfecto en cuentas compartidas.
-
En el File Manager de cPanel:
-
Abrí
/home/usuario/laravel/public. -
Seleccioná TODO lo que hay dentro (archivos y carpetas), por ejemplo:
-
index.php -
css/ -
js/ -
build/(en versiones nuevas)
-
-
Usá la opción Copy / Copiar.
-
Elegí como destino
/home/usuario/public_html.
-
-
Una vez copiado, en
/home/usuario/public_htmlvas a tener unindex.phpy las carpetas públicas de Laravel. -
Ahora hay que editar ese
index.phppara que apunte a la ubicación real del framework.
Por defecto, public/index.php de Laravel hace referencia a:
Pero como ahora el index.php está en public_html, y el proyecto en /home/usuario/laravel, tenés que ajustar esas rutas.
Por ejemplo:
La idea es que las rutas apunten a donde realmente están vendor/autoload.php y bootstrap/app.php dentro de tu cuenta.
Este patrón (copiar contenido de public/ a public_html y ajustar index.php) es muy usado en despliegues de Laravel sobre cPanel compartido.
Importante: No muevas toda la carpeta
laravelapublic_html. Lo seguro es dejar el framework fuera de la carpeta pública y solo exponer los archivos frontales.
8. Permisos de carpetas y archivos
Según las recomendaciones oficiales de Laravel, en producción las únicas carpetas que necesitan permiso de escritura por parte del servidor web son:
-
storage/ -
bootstrap/cache/
En la práctica en cPanel alcanza con:
En algunos casos se usa 775 según configuración del servidor, pero evitá 777, no es necesario y es inseguro.
9. Optimizar la app para producción (opcional, pero recomendable)
Laravel ofrece varios comandos para optimizar rendimiento en producción:
La propia documentación de Laravel recomienda hacer estas optimizaciones para entornos productivos.
Si hacés cambios en config, rutas o vistas, quizás debas limpiar y regenerar estos caches (
php artisan config:clear, etc.).
10. Probar el sitio
Con todo configurado:
-
Abrí en tu navegador:
https://tudominio.com -
Si todo está correcto, deberías ver la página de inicio de tu app Laravel (o la pantalla por defecto si no la cambiaste).
-
Si aparece un error 500 o una pantalla en blanco:
-
Revisá el archivo
storage/logs/laravel.log. -
Verificá que el
.envtenga bien los datos de la base. -
Verificá que las rutas en
public_html/index.phpapunten bien a/home/usuario/laravel.
-
11. Errores frecuentes y cómo resolverlos
11.1. Error 500 / “Whoops, looks like something went wrong”
Causas típicas:
-
APP_KEYvacío. -
.envmal configurado (DB o permisos). -
Rutas incorrectas en
index.php.
Soluciones:
-
Verificar
.envy correrphp artisan key:generate. -
Chequear
storage/logs/laravel.log. -
Revisar que las rutas en
index.phpapunten correctamente a/laravel/vendory/laravel/bootstrap.
11.2. “No such file or directory” hacia vendor/autoload.php
Causa: el index.php busca vendor/autoload.php usando una ruta relativa que ya no coincide con la estructura del servidor.
Solución:
-
Editar
index.phpenpublic_htmly ajustarlo, por ejemplo:
(si tu carpeta del proyecto se llama laravel).
11.3. Migraciones o seeds no corren
Si al ejecutar migraciones (php artisan migrate) hay errores:
-
Revisá la config de DB en
.env. -
Verificá que el usuario de base de datos tenga privilegios sobre la base.
-
Mirá los errores concretos que arroja el comando.
11.4. Cambié el código y no se ve el cambio
Si activaste caches (config, rutas, vistas):
-
Podés limpiar y regenerar:
-
Hacé un hard refresh en el navegador (Ctrl+F5 / Cmd+Shift+R).
12. Resumen rápido
-
Creá (o subí) tu proyecto Laravel a
/home/usuario/laravel. -
Creá la base de datos y usuario MySQL en cPanel, asignale todos los privilegios.
-
Configurá el
.envcon datos de base yAPP_ENV=production,APP_DEBUG=false. -
Ejecutá
php artisan key:generate. -
Corré
composer install --no-dev --optimize-autoloader. -
Copiá el contenido de
laravel/publicapublic_html. -
Ajustá las rutas de
vendor/autoload.phpybootstrap/app.phpenpublic_html/index.php. -
Asegurate de que
storage/ybootstrap/cache/sean escribibles. -
Opcional: corré los comandos de optimización (
config:cache,route:cache, etc.). -
Probá tu dominio y revisá
storage/logs/laravel.logante cualquier error.
آیا این پاسخ به شما کمک کرد؟
مقالات مربوطه
Para crear una cuenta de correo electrónico, sigue estos pasos: Accede a tu cPanel. Ve a...
Para crear una base de datos MySQL, sigue estos pasos: Accede a tu cPanel. Ve a "Bases de...
Para subir archivos usando el Administrador de Archivos, sigue estos pasos: Accede a tu...
Para configurar un dominio adicional, sigue estos pasos: Accede a tu cPanel. Ve a "Dominios...
Solución al Error 503 Service Unavailable: Falta de Espacio en la Cuenta de Hosting En...
