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:
Tabla de contenidos
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
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
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
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».
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».
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.
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.