Instalación de Laravel en un entorno real

Generación de claves SSH y configuración en GitLab

Para poder clonar el repositorio de GitLab mediante SSH (y evitar tener que introducir usuario/contraseña constantemente), es necesario generar un par de claves SSH y registrar la clave pública en GitLab.

1. Generar claves SSH

Desde la máquina local ejecutamos el siguiente comando:

ssh-keygen -t ed25519 -C "a231698dj@correu.escoladeltreball.org"
  • -t ed25519: especifica el tipo de clave (más segura y moderna que RSA).
  • -C: comentario para identificar la clave (usualmente tu email).

Presionamos Enter para aceptar la ruta por defecto (~/.ssh/id_ed25519).

2. Copiar la clave pública

cat ~/.ssh/id_ed25519.pub

Esto mostrará el contenido de nuestra clave pública. Lo copiamos completamente.

3. Añadir la clave a GitLab

  1. Iniciamos sesión en GitLab.
  2. Vamos a PreferencesSSH Keys.
  3. Pegamos la clave pública en el campo.
  4. Pulsa Add key.

4. Clonamos nuestro proyecto a la máquina real

Antes de empezar, debemos conectarnos a la máquina real de la escuela.

ssh root@10.1.1.109
# Contraseña: password

Este comando nos conecta como usuario root al servidor con la IP 10.1.1.109, utilizando la contraseña proporcionada. Una vez conectados, ya podremos ejecutar todos los comandos necesarios directamente sobre el entorno de producción.

Para desplegar Laravel en un entorno real, el primer paso es obtener el código fuente del proyecto desde el repositorio remoto. Utilizaremos el sistema de control de versiones git, una conexión segura mediante SSH.

Ejecutamos los siguientes comandos:

cd /var/www/html
git clone ssh://git@gitlab.inf.edt.cat:5505/a232221gc/proyecto-laravel.git
cd proyecto-laravel

Explicación detallada:

  • cd /var/www/html: este es el directorio estándar donde NGINX busca servir contenido web. Laravel se alojará aquí.
  • git clone ssh://git@gitlab.inf.edt.cat:5505/a232221gc/proyecto-laravel.git:
  • Clona el proyecto desde el repositorio de GitLab del centro educativo.
  • cd proyecto-laravel: accede al directorio recién clonado.

5. Instalar dependencias PHP con Composer

Una vez clonado el proyecto, instalamos todas las dependencias necesarias de Laravel.

composer install

¿Qué hace este comando?

  • Lee el archivo composer.json, que define todas las librerías y versiones que el proyecto necesita (como Laravel, Symfony, Carbon, etc.).
  • Descarga e instala esas dependencias en la carpeta vendor/.
  • Crea también el archivo composer.lock (si no existe ya) que fija las versiones exactas de cada dependencia.

Este paso es obligatorio para que Laravel pueda funcionar. Si no se ejecuta composer install, no tendremos acceso a las clases, helpers y comandos esenciales del framework.

6. Configurar el archivo .env

Una vez instaladas las dependencias del proyecto, necesitamos configurar las variables de entorno. Laravel gestiona esta configuración a través del archivo .env.

cp .env.example .env
nano .env

Explicación:

  • cp .env.example .env: crea una copia del archivo de ejemplo que Laravel proporciona como base.
  • nano .env: abre el archivo en el editor de texto para editarlo manualmente.

Dentro del archivo .env es fundamental configurar correctamente:

  • APP_NAME, APP_ENV, APP_DEBUG: nombre del proyecto, entorno (local, production) y si se mostrarán errores.
  • APP_URL: la URL base de tu aplicación, por ejemplo http://10.1.1.109.
  • DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD: los datos de conexión a tu base de datos MariaDB.
  • Otros servicios como correo, colas, almacenamiento si aplica.

⚠️ Importante: estamos trabajando en un entorno real, así que nos aseguramos de que DB_HOST=localhost o 127.0.0.1 y no mysql o db, como suele estar en Docker.


7. Generar la clave de la aplicación

Laravel necesita una clave segura para cifrar datos sensibles, como sesiones o tokens.

php artisan key:generate

¿Qué hace este comando?

  • Genera automáticamente una clave única.
  • La guarda en el archivo .env como valor de APP_KEY.
  • Esta clave es fundamental para la seguridad de la aplicación.

8. Migrar base de datos

Con la base de datos correctamente creada y configurada en el .env, podemos crear las tablas necesarias ejecutando las migraciones de Laravel.

php artisan migrate

¿Qué hace?

  • Ejecuta los archivos de migración ubicados en database/migrations.
  • Crea las tablas básicas necesarias como users, password_resets, etc., y las que hemos definido enn nuestro proyecto.

9. Configurar permisos

Laravel necesita permisos de escritura en ciertas carpetas para almacenar logs, archivos temporales, caché, etc.

chown -R www-data:www-data /var/www/html/laravel
chmod -R 775 storage bootstrap/cache

Explicación:

  • chown -R www-data:www-data /var/www/html/laravel: cambia la propiedad de todo el proyecto al usuario y grupo www-data, que es el que utiliza NGINX y PHP-FPM para servir la web.
  • chmod -R 775: otorga permisos de lectura, escritura y ejecución al propietario y grupo en los directorios storage y bootstrap/cache, esenciales para el funcionamiento de Laravel.

Permisos del proyecto

📸 Verificamos los permisos con:

ls -la /var/www/html/proyecto-laravel

La aplicación Laravel ya está funcional y conectada a la base de datos.


📸 Ver imagen de referencia de permisos: permisos_proyecto.png