GPS Tracker (Laravel 9 + PHP 8.1 + MySQL 8)
Plataforma de gestión de dispositivos Sinotrack ST-90x creada con Laravel 9 + PHP 8.1 y MySQL 8.
Instalación
-
Creamos la base de datos en MySQL.
-
Clonamos el repositorio.
git clone https://github.com/eusonlito/GPS-Tracker.git
- Realizamos la primera instalación (recuerda que siempre usando el binario de PHP 8.0).
composer install --no-scripts --no-dev
composer install --no-dev --optimize-autoloader --classmap-authoritative
- Configuramos el fichero
.env
con los datos necesarios.
cp .env.example .env
- Generamos la clave de aplicación. Recuerda guardar una copia de seguridad de esta clave (
.env
>APP_KEY
).
php artisan key:generate
- Regeneramos las cachés.
composer artisan-cache
- Lanzamos la migración inicial.
php artisan migrate --path=database/migrations
- Lanzamos el seeder.
php artisan db:seed --class=Database\\Seeders\\Database
- Configuramos la tarea cron para el usuario relacionado con el proyecto:
* * * * * cd /var/www/tracker.domain.com && install -d storage/logs/artisan/$(date +"\%Y-\%m-\%d") && /usr/bin/php artisan schedule:run >> storage/logs/artisan/$(date +"\%Y-\%m-\%d")/schedule-run.log 2>&1
- Creamos el usuario principal.
php artisan user:create [email protected] --name=Admin --password=StrongPassword2 --enabled --admin
-
Configuramos el servidor para acceso web con
DOCUMENT_ROOT
enpublic
. -
Profit!
Actualización
La actualización de la plataforma se puede realizar de manera sencilla con el comando composer deploy
ejecutado por el usuario que gestiona ese projecto (normalmente www-data
).
Este comando realiza las siguientes acciones:
"rm -f bootstrap/cache/*.php",
"git checkout .",
"git pull",
"@composer env-version --ansi",
"@composer install --no-dev --optimize-autoloader --classmap-authoritative --ansi",
"@php artisan migrate --force --ansi",
"@php artisan db:seed --force --ansi --class=\"Database\\Seeders\\Database\"",
"@php artisan maintenance:migration:clean",
"@php artisan socket:server:all --reset"
Comandos
Alta de usuario:
php artisan user:create {--email=} {--name=} {--password=} {--enabled} {--admin}