:::: MENÚ ::::

Usar Laravel en un Hosting

Como nota curiosa y desde hace tiempo, he visto que hay muchos desarrolladores que elaboran sus aplicaciones en #Laravel, y después se encuentran con la dificultad de hacerlos funcionar en un hosting compartido, ya que no todos los proyectos necesitan la potencia de un VPS o algo mayor. Es más, justamente he recibido un correo de otro programador solicitándome ayuda para publicar un #Laravel.

Publicando nuestro Laravel

El proceso es realmente sencillo, simplemente tendremos que subir a nuestros Hosting TODOS los archivos de nuestro Laravel, incluyendo la carpeta /vendors, ya que no podemos usar composer para generarlo, porque no tenemos acceso al SSH/CLI.

En cuanto a la base de datos, tampoco podemos usar Artisan, así que tendrás que realizar una migración a mano (exportar/importar).

Una vez tengamos todo listo y configurado tu .env, sólo nos quedará editar el archivo /public/index.php. Este punto depende exclusivamente de si deseas o no mantener la palabra /public o poner tu #Laravel en una carpeta o subdominio. En caso de querer cambiarlo tendrás que modificar los require de dicho archivo, concretamente cuando se llama a bootstrap/autoload.php y bootstrap/app.php, especificando la ubicación de ellos en relación a la carpeta en la que está index.php ahora mismo.

Para que te hagas una idea de como configurar index.php cambiando la ubicación, imagina que yo he decido meter mi index.php en un carpeta llamada /foo, por lo que la URL example.com/foo debería responder mi aplicación de #Laravel, y, el resto de los archivos y carpetas en otra llamada /bar. Mi index.php quedaría del siguiente modo:


require __DIR__.'/../bar/bootstrap/autoload.php';

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

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

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

$response->send();

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

Conclusión

No es un proceso para nada complicado, pero resulta curioso que algunos programadores se encuentren con una pared que no pueden sortear a la hora de realizar este proceso, con el único detalle de que habría que realizar todo manualmente. La única parte complicada es configurar el /public/index.php para enlazarlos con los archivos del núcleo de #Laravel.

Para que puedas comprobar que todo funciona perfectamente siguiendo las indicaciones, te dejo un enlace a mi lab, en donde podrás ver una instalación de Laravel limpia funcionando.

Usar Laravel en un Hosting Compartido

Share on Facebook0Tweet about this on TwitterShare on Google+1Share on LinkedIn0Share on Tumblr0Pin on Pinterest0Email this to someone

  • John Cesar Osorio

    Buen dia gracias por responder hasdpk segui los pasos y super
    me cargo bn la aplicacion pero tengo un problema cuando voy a utilizar
    las rutas me sale el sgt error

    Not Found

    The requested URL /login was not found on this server.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
    ese por ejemplo es la ruta que me lleva al login.

    la aplicacion esta en http://www.controlparqueo.com al darle click en la login que esta de esta manera

    Login

    la ruta

    Route::get(‘login’, function () {
    return view(‘auth/login’);
    });

    la pagina recarga en http://www.controlparqueo.com/login

    ahi es donde me sale
    Not Found

    The requested URL /login was not found on this server.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

  • Herly

    Hola John Cesar, pudiste resolver el tema de las rutas? a mi me pasa lo mismo y no encuentro el motivo, pero solo con login y el dashboard que usa middleware de Auth, al parecer el problema radica alli, en Auth.

  • Herly

    Hola ruben, gracias por tu respuesta, no, que codigo debe llevar el htaccess? si me puedes explicar un poco por favor.

    • En /public hay un .htacces, deberás de copiarlo y ponerlo en donde desees que sea la página principal. En el ejemplo del artículo, yo tendría que ponerlo en la carpeta /foo/bar.

  • Herly

    Ruben, si existe el .htacces y contiene este codigo:

    Options -MultiViews

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder…

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller…

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^ index.php [L]

  • Jonathan Espinosa

    Hola Ruben, espero puedas ayudarme que ya me voy a dar un tiro jajaja, tengo un vps y en el tengo instalado Whm/Cpanel para mis dominios y paginas, ya instale el composer, ya logre instalar laravel y todos los archivos en un dominio que tengo, el problema viene que asi fresca la instalacion me tira error 500, ya di permisos a las carpetas de storage, logs, cache, etc y sigue con error 500, ya modifique los htaccess de mil maneras y sigo con error 500, no logro hacer que jale.

    Ya actualice a php 7, instale todos los requerimientos, ya hice de todo y no logro hacer que funcione.

    Lo mas raro es que compre un sistema llamado “Laravel Sximo” esta en laravel 5.1 y ese asi como esta lo subo y si funciona, pero ya es una aplicacion hecha y modificada, y yo necesito laravel desde 0 porque es para un proyecto grande.

    Espero me puedas asistir y gracias.

    • ¿has modificado los archivos de la carpeta /pubic, y subido TODOS los archivos de /vendor?

  • Keli Zorrilla

    Hola sabes que hago todo lo que dice aqui, incluso lo de cambiar la ubicacion del htaccess y me sigue saliendo este error: View [auth.login] not found sabes si hay alguna otra solucion para esto?

    • ¿Has modificado los archivos de la carpeta /public de tu Laravel?

      • Keli Zorrilla

        Si.. yo estoy usando hostinguer que trae instalador automático. Me trae la versión 5.1 de Laravel y yo trabaje con la 5.2 pero no se si es por eso pero he hecho todo lo que leí aquí e incluso seguido vídeos donde funciona pero a mi no