Requisitos previos del sistema
Antes de iniciar el proceso de instalación de erpsaas, una solución ERP basada en el framework Laravel, es indispensable validar que el servidor o entorno de desarrollo cuente con los siguientes componentes:
- Motor de PHP: Versión 8.2 o superior, incluyendo las extensiones
bcmath,ctype,fileinfo,openssl,pdo,tokenizereintl. - Gestor de dependencias: Composer 2.x.
- Entorno de ejecución JavaScript: Node.js (v16+) y gestor de paquetes NPM.
- Base de datos: MySQL 8.0+ o PostgreSQL 14+.
- Servidor de caché: Redis es altamente recomendado para el manejo de sesiones y colas.
Configuración del entorno de desarrollo local
Siga estos pasos para poner en marcha una instancia local para pruebas o desarrollo:
1. Obtención del código fuente:
# Descargar el repositorio
git clone https://gitcode.com/gh_mirrors/er/erpsaas erp-app
cd erp-app
2. Instalación de librerías y dependencias:
# Instalar dependencias de PHP
composer install
# Instalar dependencias de frontend y compilar
npm install
npm run dev
3. Configuración de variables de entorno:
Cree una copia del archivo de ejemplo y ajuste las credenciales de acceso a su base de datos local:
cp .env.example .env
Dentro del archivo .env, modifique los siguientes parámetros:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_erpsaas_dev
DB_USERNAME=usuario_local
DB_PASSWORD=clave_segura
4. Inicialización del aplicativo:
# Generar clave de cifrado
php artisan key:generate
# Ejecutar migraciones y carga de datos base
php artisan migrate --seed
Para visualizar el proyecto, ejecute php artisan serve y acceda a http://localhost:8000.
Estrategia de despliegue en producción
Para un entorno productivo, se recomienda el uso de un stack LEMP (Linux, Nginx, MySQL, PHP-FPM).
1. Gestión de archivos y permisos:
Mueva el código al directorio raíz del servidor web y asigne la propiedad al usuario del servicio (comúnmente www-data):
chown -R www-data:www-data /var/www/erpsaas
chmod -R 775 /var/www/erpsaas/storage /var/www/erpsaas/bootstrap/cache
2. Optimización de la aplicación:
En producción, es vital optimizar la carga de clases y la configuración:
# Instalación optimizada sin dependencias de desarrollo
composer install --no-dev --optimize-autoloader
# Caché de configuración y rutas
php artisan config:cache
php artisan route:cache
php artisan view:cache
# Compilación final de assets
npm run build
3. Configuración del servidor web (Nginx):
Cree un bloque de servidor para dirigir el tráfico al directorio público de Laravel:
server {
listen 80;
server_name erp.tu-dominio.com;
root /var/www/erpsaas/public;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Gestión de procesos en segundo plano
El sistema ERP requiere que las colas de trabajo y las tareas programadas funcionen constantemente.
Configuración de Supervisor para el worker de colas (/etc/supervisor/conf.d/erpsaas-worker.conf):
[program:erp-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/erpsaas/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
user=www-data
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
numprocs=2
stdout_logfile=/var/www/erpsaas/storage/logs/worker.log
Programación de tareas (Cron):
Añada la siguiente línea al crontab del sistema para ejecutar el programador de Laravel cada minuto:
* * * * * cd /var/www/erpsaas && php artisan schedule:run >> /dev/null 2>&1
Resolución de incidencias comunes
- Errores de conexión a DB: Verifique que el servicio de base de datos acepte conexiones y que las credenciales en el archivo
.envsean correctas. Usephp artisan config:cleartras realizar cambios. - Problemas de visualización de imágenes: Asegúrese de crear el enlace simbólico al almacenamiento:
php artisan storage:link. - Logs de error: Ante cualquier pantalla blanca o error 500, consulte el archivo de registro en
storage/logs/laravel.logpara obtener detalles técnicos.