Desplegar Laravel en cPanel

Esta guía ayuda a entender cómo desplegar una aplicación en Laravel PHP dentro de su cPanel o Hosting Compartido.

Felipe avatar
Escrito por Felipe
Actualizado hace más de una semana

Esta Guía tiene la finalidad de explicar cómo desplegar correctamente una aplicación Laravel PHP dentro de su hosting compartido con Dongee.

Cabe recordar que los pasos descritos en esta guía asumen que la persona que los está implementando posee conocimiento sobre cómo usar correctamente cPanel y nociones de programación con aplicaciones en PHP, de lo contrario es necesario que estos pasos sean realizado con ayuda de su webmaster y/o desarrollador.

Recuerden que Laravel trabaja sobre PHP y que para que este funcione correctamente deben ajustar la versión y las extensiones de PHP que necesita el proyecto por lo cual es recomendado que revisen esto con nuestra guía de soporte:

COMANDOS PARA DESPLIEGUE DE LARAVEL EN CPANEL:

##Instalar Composer Localmente

curl -s https://getcomposer.org/installer | php

##Archivo php.ini para Laravel cPanel

disable_functions = ""
max_execution_time = 14400
max_input_time = 14400
max_input_vars = 10000
memory_limit = 512M

##Ejecutar composer en cPanel

php -c ~/php.ini ~/composer.phar create-project --prefer-dist laravel/laravel

En esta guía asumimos que ustedes ya tienen su aplicación en LARAVEL funcionando de manera local o en otro servicio por lo cual no nos enfocamos en detalles de programación, en el ejemplo que se muestra en la misma ya tenemos una aplicación laravel funcionando de manera LOCAL en una computadora y se pretende subir a un servicio de hosting compartido con cPanel:

  1. Deben comprimir su proyecto Laravel en un archivo .zip o .tar, o en su defecto pueden subir la carpeta del proyecto a través de un cliente FTP a su cPanel, a continuación se muestran los pasos para realizar el despliegue de la aplicación laravel por medio del administrador de archivos de cPanel:

Los archivos de su proyecto laravel van en la carpeta del Dominio Principal o subdominio donde desean montar el proyecto en este caso vamos a colocarlos en la carpeta public_html para el dominio principal, si ya tenemos archivos en esta carpeta podemos borrarlos para desplegar los archivos necesarios del proyecto laravel o se puede montar el proyecto como subcarpeta, esto ya es un tema de cómo desean desplegar la aplicación Laravel.

una vez hemos subido el proyecto Laravel debemos descomprimirlo:

una vez descomprimido el proyecto Laravel ya esta dentro de nuestro hosting cPanel y se puede acceder de una manera no presentable así:

Recuerden que los proyectos Laravel la mayoría usa la carpeta Public para servir el proyecto en PHP:

Hasta aquí ya tenemos nuestro proyecto Laravel desplegado en nuestro hosting cPanel.

Y qué pasa si no quiero que el proyecto quede de esta manera:

Deseo que el proyecto se pueda acceder con URL Amigables o desde un subdominio o desde el dominio principal:

en este caso es muy sencillo solo deben ajustar un archivo index.php en la carpeta raíz de dominio o subdominio o de la carpeta principal del proyecto se debe ajustar por el nombre del proyecto o la carpeta del proyecto Laravel a continuación se muestra como hacerlo:

index.php para cargar el proyecto Laravel en el dominio principal o subdominio:

Para que el se cargue el proyecto Laravel dentro del Dominio Principal o Subdominio:

index.php

este archivo debe contener lo siguiente:

<?php

/**
 * Index para Proyectos Laravel
 *
 * @package  Laravel
 * @author   Luis Felipe lsanchez@industrialm.com
 */

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

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
*/

require __DIR__.'/NombreCarpetaProyecto/vendor/autoload.php';

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
*/

$app = require_once __DIR__.'/NombreCarpetaProyecto/bootstrap/app.php';

/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
*/

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

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

Recuerden que deben remplazar en el código anterior el nombre de NombreCarpetaProyecto por el de su Proyecto Laravel.

y debe quedar dentro de la raíz del proyecto Laravel así:

y ya nuestra página cargara sin problemas sin necesidad de indicar la ruta dentro del Dominio Principal o subdominio:

Index.php en la subcarpeta del dominio o subdominio:

Para que el proyecto se cargue dentro de una subcarpeta:

index.php

este archivo debe contener lo siguiente:

<?php

/**
 * Index para Proyectos Laravel
 *
 * @package  Laravel
 * @author   Luis Felipe lsanchez@industrialm.com
 */

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

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
*/

require __DIR__.'/../NombreCarpetaProyecto/vendor/autoload.php';

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
*/

$app = require_once __DIR__.'/../NombreCarpetaProyecto/bootstrap/app.php';

/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
*/

$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

$response->send();

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

Recuerden que deben reemplazar en el código anterior el nombre de NombreCarpetaProyecto por el de su Proyecto Laravel.

y debe quedar dentro de la raíz del proyecto Laravel así:

y ya nuestra página cargará sin problemas sin necesidad de indicar la ruta 

/public

¿Ha quedado contestada tu pregunta?