Como subir proyecto en Larevel 5.x, a Servidor compartido, con cpanel. - Chuda
15484
post-template-default,single,single-post,postid-15484,single-format-standard,bridge-core-3.1.2,qode-page-transition-enabled,ajax_fade,page_not_loaded,,qode-child-theme-ver-1.0.0,qode-theme-ver-30.1,qode-theme-bridge,disabled_footer_top,qode_header_in_grid,wpb-js-composer js-comp-ver-7.6,vc_responsive

Como subir proyecto en Larevel 5.x, a Servidor compartido, con cpanel.

Como subir proyecto en Larevel 5.x, a Servidor compartido, con cpanel.

Hola me he visto en la tarea de subir un proyecto realizado con Laravel 5.1 a un servidor, por motivos del cliente (costos, facilidad de uso, etc.) es lo que me imagino uso un servidor compartido con cPanel instalado, esto no esta del todo mal, pero es un poco tedioso no usar un VPS o un servidor por el cual se pueda ingresar conectando por ssh, para hacer la instalación de laravel vía el manejador de dependencias composer.

Bueno el tema es que después de buscar en la web “existen muchos ejemplos y tutoriales de como hacerlo” pero lamento decirles que ninguno me funciono, en eso me dedique a tratar de revisar el porque del asunto y es que en los servidores compartidos nos crean una cuenta que apunta a path /home/usuario/public_html/ o este fue mi caso y Laravel tiene en su path publico apuntado a su carpeta public.

Lo que hice fue lo siguiente:

Paso 1.- Subir el proyecto bien sea por ftp o por el manejador de archivos del panel (subir todo incluyendo la carpeta vendor) esto va a durar bastante, mientras busque un café.

Paso 2.- cambien los datos de su archivo de entorno .env y usen los datos del servidor para conexión a base de datos.

Paso 3.- Crear un archivo index.php en la carpeta raíz de el servidor (public_html).

Paso 4.- Crear un archivo .htaccess también en la carpeta raíz de el servidor (public_html).

si se dan cuenta los archivos .htaccess y index.php quedan a la altura de nuestra carpeta de proyecto donde están todos nuestros directorios y archivos propios del Framework, esto se debe a que el servidor compartido apunta a public_html y nosostros con el Framewok Laravel debemos apuntar a la carpeta public, esos archivos van a contener lo que va a hacer que se vea nuestro proyecto.

en el index.php vamos a colocar lo siguiente:

<?php

/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell &lt;taylorotwell@gmail.com&gt;
*/

/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader for
| our application. We just need to utilize it! We'll simply require it
| into the script here so that we don't have to worry about manual
| loading any of our classes later on. It feels nice to relax.
|
*/

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

/*
|--------------------------------------------------------------------------
| Turn On The Lights
|--------------------------------------------------------------------------
|
| We need to illuminate PHP development, so let us turn on the lights.
| This bootstraps the framework and gets it ready for use, then it
| will load up this application so that we can run it and send
| the responses back to the browser and delight our users.
|
*/

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

/*
|--------------------------------------------------------------------------
| Run The Application
|--------------------------------------------------------------------------
|
| Once we have the application, we can handle the incoming request
| through the kernel, and send the associated response back to
| the client's browser allowing them to enjoy the creative
| and wonderful application we have prepared for them.
|
*/

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

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

$response->send();

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

en el archivo .htaccess colocamos:

Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteRule ^ index.php [L]

Listo con esto tendremos nuestro proyecto en Laravel corriendo en un servidor compartido.

NOTA: puede que las rutas puestas de enlaces a imagenes o descargas en el directorio public de Laravel no funcionen bien ya que apuntan a /public/img/nombre de la imagen por ejemplo y ahora nuestro path es /public_html/public/img/ se entiende.

Bueno esto es todo por ahora, espero poder seguir posteando ayudas sobre estos temas.

Happy Hacking!