Comó subir un proyecto Laravel a hosting cPanel

¿Comó subir un proyecto Laravel a hosting cPanel?

En este artículo te explicaremos paso a paso, cómo puedes subir el proyecto que tienes en Laravel a un Hosting con cPanel sin que necesites utilizar la consola desde el Hosting.

Aunque parezca una tarea complicada, se torna bastante sencilla si realizas los siguientes pasos:

Compile los archivos para producción

Generalmente, se utilizan los comando npm run dev o npm run watch mientras nos encontramos en una instancia de desarrollo, pero en este caso utilizaremos npm run prod para que los archivos se compilen, se compriman y queden listos para subirlos a producción.

Cree un archivo .zip

Una vez tengamos ya los archivos compilados para producción, debemos comprimir la carpeta completa donde está el proyecto en un archivo .zip para que sea más sencillo de subirla al Hosting desde cPanel. También puedes hacer este proceso vía FTP y omitir este punto.

Copia de la base de datos

Exportar base de datos desde phpMyAdmin
Si el aplicativo que tienes en Laravel hace uso de una base de datos, es necesario crear una copia desde MySQL, si estamos utilizando algún aplicativo como XAMPP o MAMP cómo entorno de desarrollo en local, esta tarea se puede hacer fácilmente desde phpMyAdmin en la opción exportar.

Preparando cPanel

Ya que tenemos todo listo para subir nuestros archivos, ahora necesitamos tener todo listo en cPanel para que nuestro aplicativo funcione de forma correcta.

Accediendo a cPanel

Formulario de acceso a cPanel
Para acceder a cPanel lo podemos hacer en sudominioregistrado.com/cpanel («reemplazar sudominioregistrado.com por el dominio de su sitio web») ingresamos los datos de acceso suministrados al adquirir el Hosting. Si no cuentas con los datos de acceso, puedes dar clic en solicitar nueva clave y recuperarlos desde la cuenta de correo autorizada en el servicio.

Creando una base de datos

Antes de importar la base de datos de nuestro proyecto, es necesario crearla y asignarle un usuario con los permisos necesarios, si no sabes como realizar este punto, te recomendamos que mires este artículo donde se indica de manera sencilla como llevarlo a cabo: ¿Cómo crear una Base de Datos en MySQL desde cPanel?

Subiendo nuestro archivo .zip

Subir archivos desde el administrador de archivos
Para subir nuestros archivos debemos desde el menú principal, ingresar al «administrador de archivos» y desde el directorio raíz dar clic en la opción «cargar» y buscamos nuestro archivo .zip en nuestro ordenador. Si prefieres hacerlo vía FTP en este artículo te indicamos como realizarlo: Subir Sitio Web vía FTP (FileZilla)

Luego de que el archivo cargue de forma correcta, lo buscamos en el administrador de archivos y le damos clic derecho > «Extract».

Extraer archivo .zip

Organizando nuestros archivos

Ahora debemos ingresar a la carpeta que se generó cuando descomprimimos el archivo .zip, en este se encontrará todo el aplicativo, pero necesitamos mover los archivos de la carpeta «public» a la carpeta pública del Hosting, en este caso «public_html».

Ingresamos a la carpeta «public» y seleccionamos todos los archivos, dando clic en la opción «Seleccione Todo» ubicada en la barra superior, luego damos clic derecho y seleccionamos la opción «Move».

Mover public a public_html

Nos saldrá una ventana emergente indicándonos a donde deseamos mover los archivos, debemos ingresar: /public_html y luego dar clic en «Move File(s)».

Ajustando estructura de archivos

Cómo movimos la carpeta «public» a «public_html» esto generará un error debido a que la ubicación cambio. Pero esto se puede solucionar editando el archivo index.php.

Para hacer el ajuste, debemos dar clic derecho sobre el archivo index.php y seleccionar la opción «Edit» y luego dar clic en el botón con el mismo nombre. De esta forma podrás acceder a un editor y ver todo el código del archivo.

Ahora debemos editar las líneas 19,20,34 y 47 como se muestra en el siguiente ejemplo:

<?php

use Illuminate\Contracts\Http\Kernel;
use Illuminate\Http\Request;

define('LARAVEL_START', microtime(true));

/*
|--------------------------------------------------------------------------
| Check If The Application Is Under Maintenance
|--------------------------------------------------------------------------
|
| If the application is in maintenance / demo mode via the "down" command
| we will load this file so that any pre-rendered content can be shown
| instead of starting the framework, which could cause an exception.
|
*/

if (file_exists(__DIR__.'/../laravel-post/storage/framework/maintenance.php')) {
    require __DIR__.'/../laravel-post/storage/framework/maintenance.php';
}

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| this application. We just need to utilize it! We'll simply require it
| into the script here so we don't need to manually load our classes.
|
*/

require __DIR__.'/../laravel-post/vendor/autoload.php';

/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request using
| the application's HTTP kernel. Then, we will send the response back
| to this client's browser, allowing them to enjoy our application.
|
*/

$app = require_once __DIR__.'/../laravel-post/bootstrap/app.php';

$kernel = $app->make(Kernel::class);

$response = tap($kernel->handle(
    $request = Request::capture()
))->send();

$kernel->terminate($request, $response);

¡Listo! Nuestra carpeta «public_html» ya quedo conectada con Laravel.

Importando la base de datos

Para importar la base de datos en cPanel, debemos ingresar desde el menú principal a la opción «phpMyAdmin» y dar clic sobre el nombre de la base de datos que creamos previamente, luego seleccionamos la opción «importar», damos clic en el botón «Examinar» y buscamos nuestra copia en nuestro ordenador y finalmente le damos en «Continuar» para que se importe la base de datos.

Importar base de datos desde phpMyAdmin

Configurando la conexión a la base de datos

¿Recuerdas que te indicamos guardar el nombre de la base de datos, el usuario y su contraseña?, pues ahora vamos a hacer uso de estos, debemos ingresar a la carpeta donde tenemos alojado los archivos de Laravel y le damos a editar al archivo «.env».

Luego buscamos la configuración de conexión a la base de datos y la reemplazamos con los nuevos datos, debe quedar similar al siguiente código:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=nombre_de_mi_base_de_datos
DB_USERNAME="usuario_asignado"
DB_PASSWORD="ContraseñaAsignada"

Con este último paso, damos por finalizado este tutorial. ¿Te fue de utilidad? Recuerda que puedes subscribirte a nuestro boletín para que recibas una notificación cuando subamos contenido de interés.

Imagen de perfil de Andrés López
Andrés López

Apasionado por el Diseño y el Desarrollo Web. Hace parte del equipo de ColombiaHosting desde el 2018.