Qué hacer cuando necesitas subir una app de Laravel a un hosting compartido?
Este artículo tiene más de un año de antigüedad, el contenido pudiera estar obsoleto.
Es un proceso un sencillo que siguiendo estos pasos podrás hacer sin muchos problemas
Lo primero que debemos saber es: Qué versión de php requiere el framework Laravel para que funcione de la mejor manera; En este caso es PHP >= 7.1.3. Se está tomando este criterio como el primer aspecto ya que puedes tener los siguientes pasos correctamente que si no se ha fijado la versión del php que sea la correcta no va a funcionar el sitio, y es entonces cuando llegan los dolores de cabeza. Cómo sabemos que versión de php está utilizando nuestro hosting. Para ello entramos en el Cpanel y nos dirigimos a un botón llamado Select Php Version, una vez dentro se mostrará un combobox con las versiones de php soportadas por el hosting, para este framework con la versión 7.1 podremos trabajar sin problemas.
Un tip de este hosting para que el mismo muestre los errores de php es el siguiente. Dentro del Cpanel buscamos un botón llamado MultiPHP INI Editor luego escogemos en el combobox que aparece nuestro dominio y después la opción display _errors la cambiamos a true. De esta manera cuando el framework nos envíe un mensaje de error vamos a saber cual es el problema en la consola.
Lo siguiente será crear una carpeta en el root del hosting con el nombre que deseamos, en nuestro caso la hemos llamado laravel Ahora en la carpeta donde está nuestro sistema seleccionaremos todos los ficheros y carpetas menos la carpeta llamada public y creamos un .zip con los mismos llamada (zip1). Luego de esto se realiza lo mismo con los ficheros que están dentro de la carpeta public en este caso sería (zip2).
Los archivos que están en zip1 hay que copiarlos en la carpeta llamada laravel que creamos en el root del hosting mientras que el zip2 será para la html_public del hosting, estas tareas las realizamos utilizando el File Manager del hosting ya que si utilizan algún gestor ftp no necesitan compactar los archivos, solo copiar todos los archivos y carpetas de nuestro servidor en las carpetas laravel y html_public.
El siguiente paso es editar el index.php que se encuentra en el html_public y cambiar la dirección donde van a estar las carpetas de bootstrap y vendor del framework, para esto buscamos las dos líneas correspondientes a lo antes mencionado en el fichero index.php y agregamos después de los dos ../laravel/
quedando de la siguiente manera.
1require __DIR__.'/../laravel/vendor/autoload.php';2$app = require_once __DIR__.'/../laravel/bootstrap/app.php';
Luego de esto vamos a la carpeta laravel creada en el root del hosting, a la siguiente dirección: laravel/app/providers/AppServiceProvider.php
y editamos dicho fichero, en la función llamada register agregamos el siguiente código, que es para decirle al framework que el nombre de la carpeta public cambió el nombre y el pueda utilizarla para sus funciones específicas.
1$this->app->bind('path.public', function() {2 return base_path().'/public_html';3});
Con esta configuración la carpeta public_html quedará dentro de la carpeta laravel que es su raíz, en caso de querer cambiar la dirección para que los archivos no se guarden dentro de la raíz, se tendrá que cambiar el nombre de public_html por el nombre de la carpeta en que se deseen alojar los archivos. Por ejemplo: Si queremos subir imágenes al servidor pero que las mismas puedan ser vistas desde una url tenemos que alojarlas en donde están los archivos públicos del laravel, en este caso sería el dominio. Cómo quedaría:
1$this->app->bind('path.public', function() {2 return base_path().'/../mi_dominio.com';3});
Ya realizado estos cambios se puede comprobar si el sistema está funcionando correctamente.
Un video para que entiendan mejor: https://www.youtube.com/watch?v=ejcClKFLrW0
Fuente original: https://tuponcho.com/subir-laravel-5-6-a-hosting-compartido-cpanel/