UD 3 Parámetros Relativos a la Configuración Web
Desarrolla aplicaciones web identificando y aplicando mecanismos para separar el código de presentación de la lógica de negocio.
- E Se han identificado y aplicado los parámetros relativos a la configuración de la aplicación web.
El aspecto acerca de **los parámetros de la configuración web implica comprender, configurar y utilizar las directivas y parámetros de configuración que controlan el entorno y el comportamiento de una aplicación PHP.
¿Qué son los parámetros de configuración en PHP?
Los parámetros de configuración en PHP se gestionan principalmente a través del archivo php.ini
, funciones específicas como ini_set()
, o directivas en archivos .htaccess
. Estos parámetros afectan aspectos como la gestión de errores, el manejo de sesiones, los límites de memoria, entre otros.
Aspectos clave
- Configuración del entorno de ejecución:
- Ajustar límites de tiempo, memoria y tamaño de subida.
- Gestión de errores y depuración:
- Habilitar y personalizar la visualización de errores.
- Control de sesiones:
- Configurar la duración de sesiones y su almacenamiento.
- Parámetros relacionados con seguridad:
- Ajustar opciones como
register_globals
o deshabilitar funciones peligrosas.
Ejemplos prácticos
1. Configuración de parámetros en php.ini
El archivo php.ini
, como ya vimos anteriormente, permite establecer valores globales para la aplicación.
Ejemplo: Ajustar el tamaño máximo de subida de archivos
upload_max_filesize = 10M
post_max_size = 12M
2. Configuración dinámica con ini_set()
En algunos casos, es útil cambiar parámetros de configuración durante la ejecución de un script en lugar de hacerlo globalmente.
Ejemplo: Cambiar límites de tiempo de ejecución
<?php
ini_set('max_execution_time', '60'); // 60 segundos
ini_set('memory_limit', '256M'); // 256 MB de memoria
?>
3. Gestión de errores
Habilitar y personalizar cómo se muestran los errores es esencial para depurar aplicaciones web
Ejemplo: Habilitar errores durante el desarrollo
<?php
error_reporting(E_ALL); // Mostrar todos los errores
ini_set('display_errors', '1'); // Activar visualización
?>
Debes tener en cuenta que en producción, como ya hemos comentado, es importante NO mostrar los mismo errores que se realizan depurando el código, ya que puede ser fuente de posibles ataques:
<?php
error_reporting(0); // No mostrar errores
ini_set('display_errors', '0'); // Desactivar visualización
log_errors = On; // Habilitar el registro de errores
error_log = "/path/to/error.log"; // Archivo de registro
?>
4. Configuración de sesiones
Aunque este aspecto lo veremos con más detalle en el próximo tema, es bueno ir conociendo que es posible configurar cómo se gestionan las sesiones para personalizar su comportamiento.
Ejemplo: Configuración del tiempo de vida de las sesiones
<?php
ini_set('session.gc_maxlifetime', '3600'); // 1 hora
session_set_cookie_params(3600); // Cookies expiran en 1 hora
session_start();
?>
5. Configuración de seguridad
Ejemplo: Restringir el acceso a ciertas funciones
En php.ini
:
disable_functions = exec,passthru,shell_exec,system
Aplicarlo en un proyecto web
Aunque, hasta ahora, nuestros proyectos no han tenido una emvergadur importante, es bueno saber algunas de las buenas prácticas o convenciones a la hora de diseñar una aplicación real.
-
Analizar los requisitos de la aplicación:
-
¿Qué funcionalidades necesitan ajustes en configuración? Por ejemplo, sesiones largas, subida de archivos grandes, etc.
-
Realizar ajustes en el entorno:
-
Cambiar configuraciones en
php.ini
o utilizarini_set()
según sea necesario. -
Documentar configuraciones aplicadas:
-
Crear una sección en la documentación del proyecto que detalle los cambios realizados y por qué.
-
Probar y verificar la configuración:
-
Usar scripts de prueba para asegurar que los ajustes funcionan como se espera.
Ejemplo completo: Configurar una aplicación con ajustes personalizados
<?php
// 1. Configuración de ejecución
ini_set('max_execution_time', '120'); // 2 minutos
ini_set('memory_limit', '512M'); // 512 MB de memoria
// 2. Configuración de errores
error_reporting(E_ALL);
ini_set('display_errors', '1');
// 3. Configuración de sesiones
ini_set('session.gc_maxlifetime', '3600'); // 1 hora
session_set_cookie_params(3600);
session_start();
// 4. Prueba de parámetros configurados
echo "Tiempo de ejecución máximo: " . ini_get('max_execution_time') . " segundos<br>";
echo "Límite de memoria: " . ini_get('memory_limit') . "<br>";
echo "Duración de la sesión: " . ini_get('session.gc_maxlifetime') . " segundos<br>";
?>
Actividad
Prueba este ejemplo en la carpeta UD3/5 Parametros
Prueba este pequeño ejemplo de confiuración en tu repositorio y fíjate en algunas de las funciones utilizadas. Puedes incorporar alguna de ellas en tu proyecto UD3