Seguro que en alguna ocasión has tenido que clonar en otro ordenador algún proyecto de Laravel desde GitHub, y posiblemente te haya pasado que cuando has intentado arrancarlo en la nueva ubicación, éste no funciona correctamente.
Si nos fijamos, cuando estamos subiendo el repositorio de Laravel a GitHub, vemos que hay varias carpetas y archivos que por seguridad no se han subido. Por defecto, tanto la carpeta vendor como el archivo .env se encuentran en .gitignore, por lo que git no los tendrá en cuenta y no almacenará las modificaciones.
/node_modules
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.phpunit.result.cache
docker-compose.override.yml
Homestead.json
Homestead.yaml
npm-debug.log
yarn-error.log
Por tanto, una vez hayamos clonado el repositorio de nuestro proyecto Laravel en local, debemos hacer los siguientes ajustes para que éste pueda correr en nuestro equipo.
- Instalar dependencias
- Crear una base de datos
- Crear el archivo .env
- Generar una clave
- Migrar y sembrar la base de datos
Instalar dependencias
Instalaremos con Composer, el manejador de dependencias para PHP, las dependencias definidos en el archivo composer.json. Para ello abriremos una terminal en la carpeta del proyecto y ejecutaremos:
composer install
Vemos cómo se ha creado la carpeta vendor.
También debemos instalar las dependencias de NPM definidas en el archivo package.json con:
npm install
Y en esta ocasión vemos cómo se crea la carpeta node_modules.
Crear una base de datos que soporte Laravel
Entre las bases de datos que soporta Laravel por defecto, encontramos: MySQL, SQL Lite, PostgreSQL y SQL Server.
Según la base de datos que necesites, el proceso de crearla será diferente, pero ten en cuenta que si utilizaras una base de datos PostgreSQL, tendrás que configurar algún dato más en el .env relativo a esto, por ejemplo el puerto y el tipo de conexión.
Crear el archivo .env
Este archivo es necesario para, entre otras cosas, configurar la conexión de la bbdd, el entorno del proyecto, motores para envio y recepción de correos etc …
Como por cuestiones de seguridad tampoco se subió, necesitamos crearlo.
Podemos duplicar el archivo .env.example, renombrarlo a .env e incluir los datos de conexión de la base de datos que indicamos en el paso anterior.
.....
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel_project
DB_USERNAME=root
DB_PASSWORD=secret
....
Generar una clave
La clave de aplicación es una cadena aleatoria almacenada en la clave APP_KEY dentro del archivo .env. Notarás que también falta.
Para crear la nueva clave e insertarla automáticamente en el .env, ejecutaremos:
php artisan key:generate
Ejecutar migraciones
Por último, ejecutamos las migraciones para que se generen las tablas con:
php artisan migrate
Si tuvieramos que incluir o crear nuevas migraciones utilizaríamos:
php artisan migrate:refresh
php artisan migrate:fresh //borra y crea todas las tablas de nuevo
Con esto ya tendría que correr sin problemas la aplicación de Laravel que hemos clonado.
Muchas gracias masterrrr, me salvaste