=============================================================== GUIA DE DESPLIEGUE - REPORTA (MEDSURSA) en cPanel =============================================================== REQUISITOS DEL HOSTING: - PHP 8.1 o superior (recomendado 8.2) - Extensiones PHP: gd, mbstring, openssl, pdo_mysql, fileinfo, exif, zip - MySQL 5.7+ o MariaDB 10.3+ - Acceso SSH (recomendado) o Terminal de cPanel - Composer instalado en el servidor =============================================================== PASO 1: PREPARAR ARCHIVOS =============================================================== En tu computadora local: a) Comprimir TODO el proyecto reporta3 en un ZIP EXCEPTO estas carpetas/archivos: - /node_modules (no existe, pero por si acaso) - /vendor (se reinstala en el servidor) - /.env (se crea nuevo en el servidor) - /test_gd.php (archivo de test) b) El archivo database/reporta3_backup.sql ya esta incluido (es la exportacion de tu base de datos) =============================================================== PASO 2: CREAR BASE DE DATOS EN cPanel =============================================================== a) Ir a cPanel > Bases de datos MySQL b) Crear nueva base de datos, ejemplo: tuusuario_reporta3 c) Crear nuevo usuario de BD con contrasena segura d) Asignar el usuario a la base de datos con TODOS los privilegios e) Ir a cPanel > phpMyAdmin f) Seleccionar la base de datos creada g) Ir a "Importar" y subir el archivo: database/reporta3_backup.sql ANOTA ESTOS DATOS: - Nombre BD: ________________________ - Usuario BD: ________________________ - Password BD: ________________________ =============================================================== PASO 3: SUBIR ARCHIVOS (Estructura en cPanel) =============================================================== La estructura en el hosting debe quedar asi: /home/tuusuario/ | |-- reporta3/ <-- Proyecto Laravel (FUERA de public_html) | |-- app/ | |-- bootstrap/ | |-- config/ | |-- database/ | |-- resources/ | |-- routes/ | |-- storage/ | |-- vendor/ (se crea con composer install) | |-- .env (se crea en el paso 4) | |-- artisan | |-- composer.json | +-- ... | |-- public_html/ <-- Solo el contenido de /public va aqui |-- .htaccess (el que esta en public/) |-- index.php (MODIFICADO - ver paso 3c) |-- robots.txt +-- storage/ (enlace simbolico - ver paso 5) PASOS: a) Subir el ZIP a /home/tuusuario/ via Administrador de Archivos b) Extraer el ZIP -> queda /home/tuusuario/reporta3/ c) COPIAR todo el contenido de reporta3/public/ a public_html/ (NO mover, COPIAR, para mantener referencia) d) Editar public_html/index.php y reemplazar su contenido con: ---- COPIAR DESDE AQUI ---- handleRequest(Request::capture()); ---- COPIAR HASTA AQUI ---- NOTA: Si tu carpeta se llama diferente, cambia 'reporta3' en $projectPath =============================================================== PASO 4: CONFIGURAR .env =============================================================== a) En la carpeta /home/tuusuario/reporta3/ crear archivo .env b) Copiar el contenido de .env.produccion (incluido en el proyecto) c) Editar estos valores: APP_URL=https://tudominio.com <-- Tu dominio real DB_DATABASE=tuusuario_reporta3 <-- BD del paso 2 DB_USERNAME=tuusuario_reportauser <-- Usuario del paso 2 DB_PASSWORD=tu_password_segura <-- Password del paso 2 d) Generar APP_KEY (ver paso 6) =============================================================== PASO 5: COMANDOS SSH (Terminal de cPanel) =============================================================== Accede por SSH o usa Terminal de cPanel y ejecuta: # 1. Ir al directorio del proyecto cd ~/reporta3 # 2. Instalar dependencias composer install --optimize-autoloader --no-dev # 3. Generar clave de aplicacion php artisan key:generate # 4. Crear enlace simbolico de storage # OPCION A (si funciona artisan storage:link): php artisan storage:link # OPCION B (si NO funciona, crear manualmente): ln -s /home/tuusuario/reporta3/storage/app/public /home/tuusuario/public_html/storage # 5. Permisos de carpetas chmod -R 775 storage chmod -R 775 bootstrap/cache # 6. Cachear configuracion para produccion php artisan config:cache php artisan route:cache php artisan view:cache =============================================================== PASO 6: CONFIGURAR PHP EN cPanel =============================================================== a) Ir a cPanel > Seleccionar version de PHP (o MultiPHP Manager) b) Seleccionar PHP 8.2 para tu dominio c) Ir a cPanel > Extensiones PHP (o MultiPHP INI Editor) d) Asegurarse que estas extensiones estan HABILITADAS: [x] gd [x] mbstring [x] openssl [x] pdo_mysql [x] fileinfo [x] exif [x] zip e) En MultiPHP INI Editor, ajustar: upload_max_filesize = 10M post_max_size = 12M max_execution_time = 120 memory_limit = 256M =============================================================== PASO 7: VERIFICAR =============================================================== a) Visitar https://tudominio.com -> Debe mostrar el formulario de reporte publico b) Visitar https://tudominio.com/login -> Debe mostrar el login -> Ingresar con: usuario = admin / password = admin123 c) Probar generar un PDF desde un reporte =============================================================== SOLUCION DE PROBLEMAS COMUNES =============================================================== ERROR: "500 Internal Server Error" -> Revisar permisos: chmod -R 775 storage bootstrap/cache -> Revisar .env existe y tiene APP_KEY -> Revisar logs: cat storage/logs/laravel.log ERROR: "The stream or file could not be opened" -> chmod -R 775 storage/logs -> chown -R tuusuario:tuusuario storage ERROR: "Class not found" o "Composer autoload" -> Ejecutar: composer dump-autoload -> Ejecutar: php artisan config:clear ERROR: "SQLSTATE Connection refused" -> En cPanel MySQL el host es 'localhost', NO '127.0.0.1' -> Verificar nombre de BD, usuario y password en .env ERROR: "GD extension required" -> Ir a cPanel > Seleccionar version PHP > Extensiones -> Habilitar extension 'gd' ERROR: Imagenes/firmas no se ven -> Verificar enlace simbolico storage: ls -la ~/public_html/storage -> Debe apuntar a: /home/tuusuario/reporta3/storage/app/public -> Si no existe, crearlo manualmente (ver paso 5, opcion B) ERROR: CSS/Estilos no cargan -> Verificar APP_URL en .env coincide con tu dominio -> Verificar que .htaccess esta en public_html/ =============================================================== CREDENCIALES POR DEFECTO =============================================================== Admin: usuario = admin / password = admin123 Supervisor: usuario = supervisor / password = super123 ** IMPORTANTE: Cambiar estas contrasenas despues del primer login ** =============================================================== ESTRUCTURA DE ARCHIVOS FINAL EN cPanel =============================================================== /home/tuusuario/ |-- reporta3/ | |-- app/ | |-- bootstrap/ | |-- config/ | |-- database/ | |-- resources/ | |-- routes/ | |-- storage/ | | |-- app/public/ <-- Fotos y firmas aqui | | |-- framework/cache/ | | |-- framework/views/ | | +-- logs/ | |-- vendor/ | |-- .env | |-- artisan | +-- composer.json | |-- public_html/ |-- .htaccess |-- index.php <-- Modificado (apunta a ../reporta3) |-- robots.txt +-- storage -> ../reporta3/storage/app/public (enlace simbolico)