176 lines
4.3 KiB
Markdown
176 lines
4.3 KiB
Markdown
# 📘 Guía de Instalación — Sistema de Gestión de Documentación
|
||
|
||
## Requisitos del Sistema
|
||
|
||
| Requisito | Mínimo |
|
||
|---|---|
|
||
| PHP | 8.0+ |
|
||
| MySQL / MariaDB | 5.7+ / 10.3+ |
|
||
| Servidor Web | Apache 2.4+ (con mod_rewrite) |
|
||
| Extensiones PHP | PDO, PDO_MySQL, mbstring, openssl, fileinfo |
|
||
|
||
---
|
||
|
||
## Paso 1: Clonar / Copiar el Proyecto
|
||
|
||
Copie la carpeta `ProyectoGestion` a la raíz web de su servidor:
|
||
|
||
- **XAMPP (Windows):** `C:\xampp\htdocs\ProyectoGestion\`
|
||
- **LAMP (Linux):** `/var/www/html/ProyectoGestion/`
|
||
- **cPanel:** Carpeta `public_html/ProyectoGestion/`
|
||
|
||
---
|
||
|
||
## Paso 2: Crear la Base de Datos
|
||
|
||
1. Abra **phpMyAdmin** o el cliente MySQL de su preferencia.
|
||
2. Cree una nueva base de datos llamada `gestion_documentos` con codificación `utf8mb4`.
|
||
3. Importe el archivo: `database/gestion_documentos.sql`
|
||
|
||
```sql
|
||
-- Desde línea de comando:
|
||
mysql -u root -p -e "CREATE DATABASE gestion_documentos CHARACTER SET utf8mb4;"
|
||
mysql -u root -p gestion_documentos < database/gestion_documentos.sql
|
||
```
|
||
|
||
---
|
||
|
||
## Paso 3: Configurar Variables de Entorno
|
||
|
||
1. Edite el archivo `.env` (ya creado desde `.env.example`):
|
||
|
||
```ini
|
||
DB_HOST=localhost
|
||
DB_NAME=gestion_documentos
|
||
DB_USER=root
|
||
DB_PASS=SU_CONTRASEÑA
|
||
|
||
APP_URL=http://localhost/ProyectoGestion
|
||
APP_SECRET_KEY=GENERE_UNA_CLAVE_ALEATORIA_DE_64_CARACTERES
|
||
|
||
MAIL_HOST=smtp.gmail.com
|
||
MAIL_PORT=587
|
||
MAIL_USERNAME=su_correo@gmail.com
|
||
MAIL_PASSWORD=su_contraseña_de_aplicacion
|
||
|
||
INSTITUCION_NOMBRE=Nombre de su Institución
|
||
```
|
||
|
||
> ⚠️ **NUNCA** suba el archivo `.env` a Git ni repositorios públicos.
|
||
|
||
---
|
||
|
||
## Paso 4: Instalar Dependencias (Librerías)
|
||
|
||
Las librerías PHP van en la carpeta `lib/`. Descárguelas manualmente:
|
||
|
||
### PHPMailer (para correos)
|
||
```bash
|
||
# Con Composer:
|
||
composer require phpmailer/phpmailer
|
||
|
||
# O descargue desde: https://github.com/PHPMailer/PHPMailer/releases
|
||
# Extraiga en: lib/PHPMailer/
|
||
```
|
||
|
||
### DomPDF (para PDF)
|
||
```bash
|
||
# Con Composer:
|
||
composer require dompdf/dompdf
|
||
|
||
# O descargue desde: https://github.com/dompdf/dompdf/releases
|
||
# Extraiga en: lib/dompdf/
|
||
```
|
||
|
||
### PhpSpreadsheet (para Excel – opcional)
|
||
```bash
|
||
composer require phpoffice/phpspreadsheet
|
||
```
|
||
|
||
---
|
||
|
||
## Paso 5: Permisos de Carpetas
|
||
|
||
En Linux/Mac, asigne permisos de escritura:
|
||
|
||
```bash
|
||
chmod -R 755 ProyectoGestion/
|
||
chmod -R 775 ProyectoGestion/uploads/
|
||
chmod -R 775 ProyectoGestion/exports/
|
||
chmod -R 775 ProyectoGestion/logs/
|
||
```
|
||
|
||
---
|
||
|
||
## Paso 6: Configurar el Cron Job (Alertas)
|
||
|
||
Para recibir alertas automáticas, configure una tarea programada:
|
||
|
||
**Linux (crontab):**
|
||
```bash
|
||
crontab -e
|
||
# Agregar esta línea (ejecuta a las 8 AM todos los días):
|
||
0 8 * * * php /ruta/completa/ProyectoGestion/cron/enviar_alertas.php
|
||
```
|
||
|
||
**Windows Task Scheduler:**
|
||
- Acción: `php.exe C:\xampp\htdocs\ProyectoGestion\cron\enviar_alertas.php`
|
||
- Activador: Diariamente a las 8:00 AM
|
||
|
||
**Prueba manual desde navegador:**
|
||
```
|
||
http://localhost/ProyectoGestion/cron/enviar_alertas.php?secret=SU_CLAVE_SECRETA
|
||
```
|
||
|
||
---
|
||
|
||
## Paso 7: Primer Acceso
|
||
|
||
Acceda a la URL del sistema:
|
||
```
|
||
http://localhost/ProyectoGestion/
|
||
```
|
||
|
||
**Credenciales de administrador por defecto:**
|
||
| Campo | Valor |
|
||
|---|---|
|
||
| **Usuario** | `admin` |
|
||
| **Contraseña** | `Admin@2026` |
|
||
|
||
> 🔐 **CAMBIAR LA CONTRASEÑA INMEDIATAMENTE** después del primer acceso.
|
||
> Ir a: Perfil → Cambiar Contraseña
|
||
|
||
---
|
||
|
||
## Paso 8: Configuración Inicial
|
||
|
||
1. Ir a **Usuarios** → Crear usuarios del sistema
|
||
2. Ir a **Alertas** → Configurar tiempos de notificación
|
||
3. Subir logo institucional en `assets/img/logo.png`
|
||
4. Actualizar `INSTITUCION_NOMBRE` en `.env`
|
||
|
||
---
|
||
|
||
## Estructura de Archivos Importantes
|
||
|
||
| Archivo | Descripción |
|
||
|---|---|
|
||
| `.env` | Configuración del sistema (NO subir a Git) |
|
||
| `database/gestion_documentos.sql` | Script SQL completo |
|
||
| `cron/enviar_alertas.php` | Script de alertas automáticas |
|
||
| `uploads/` | Documentos adjuntos (protegido) |
|
||
| `exports/` | Respaldos y exportaciones |
|
||
| `logs/` | Logs del sistema |
|
||
|
||
---
|
||
|
||
## Solución de Problemas Comunes
|
||
|
||
| Error | Solución |
|
||
|---|---|
|
||
| `Error de conexión a la BD` | Verificar credenciales en `.env` |
|
||
| `403 Forbidden en uploads` | Revisar `.htaccess` y permisos |
|
||
| `Correos no se envían` | Verificar credenciales SMTP, `MAIL_PASSWORD` debe ser "contraseña de app" si usa Gmail |
|
||
| `PDF no descarga` | Instalar librería DomPDF en `lib/dompdf/` |
|
||
| `Modo debug` | Cambiar `APP_DEBUG=true` en `.env` para ver errores |
|