Instalar Laravel 5.1 en panel de control VestaCP

En este tutorial, veremos como instalar Laravel 5.1 en el panel de control VestaCP.
Me he basado en otros tutoriales para poder realizar correctamente dicha instalación.

Cuando damos de alta una nueva web a través del panel de VestaCP este nos proporciona de manera predeterminada una serie de carpeta por defecto.

Carpetas vestaCP
Estructura de carpetas cuando damos de alta una nueva página web

La idea es guardar el contenido de la carpeta public de Laravel dentro de public_html y el resto de ficheros y carpetas dentro de la carpeta private.

Como hemos comentado, vamos a copiar todo el contenido de public a public_html, quedando de esta manera.

Carpeta public_html
Carpeta public_html con el contenido de public

El siguiente paso, es crear dentro de la carpeta private otra carpeta donde guardaremos el resto de carpetas y ficheros de laravel.

Lo crearemos con el nombre de app_data (podéis elegir el nombre que queráis), quedando de esta manera.

Carpeta app_data

Procedemos a guardar el resto de carpetas y ficheros, quedándonos la siguiente estructura.

Carpeta con el resto de carpetas y ficheros.

Una vez que tenemos todas las carpetas y ficheros en sus respectivos lugares, vamos a proceder a editar el fichero index.php de la carpeta public_hml.

Vamos a sustituir:

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

por

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

y

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

por

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

 

Además debemos asignar correctamente nuestro public_path de esta manera

$app->bind('path.public', function() {
    return __DIR__;
});

Nuestro index.php quedaría de la siguiente manera.

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

$app = require_once __DIR__.'/../private/app_data/bootstrap/app.php';
$app->bind('path.public', function() {
    return __DIR__;
});

Nota: Se agrega en el index.php el bind de path.public para asignar correctamente la ruta, si lo agregamos en otro lugar, por ejemplo en app/Providers/AppServiceProvider.php, nos devolvería otra ruta.

Ejemplo:
Realizando un dd(public_path()) veremos lo que nos devuelve cada uno

//index.php nos devolverá
/home/xxxx/web/xxxx.com/public_html
//AppServiceProvider.php nos devolverá:
/home/xxxx/web/xxxx.com/private/app_data/public_html

4 comentarios en “Instalar Laravel 5.1 en panel de control VestaCP”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *