En mi sitio web utilizo sesiones PHP. La información de la sesión se almacena en archivos en mi ruta ./session. Después de unos meses descubrí que estos archivos de sesión nunca se borran, ahora hay 145,000 de ellos en este directorio.limpiar archivos de sesión php
¿Cómo se deben limpiar? ¿Tengo que hacerlo programáticamente, o es una configuración que puedo usar en algún lugar que haría que esta limpieza se realice automáticamente?
EDIT se olvidó de mencionar: este sitio se ejecuta en un proveedor, por lo que no tengo acceso a una línea de comandos. Tengo ftp-access, pero los archivos de sesión pertenecen a otro usuario (el que ejecuta el servidor web, supongo). De las primeras respuestas que obtuve, creo que no se trata solo de una configuración en el servidor o PHP, así que supongo que lo haré. tiene que implementar algo para ello en PHP, y llamarlo periódicamente desde un navegador (tal vez desde un trabajo cron ejecutándose en mi propia máquina en casa)
NOTA: Si está utilizando la opción de subdirectorio para almacenar archivos de sesión (consulte session.save_path arriba), entonces la recolección de basura * no * ocurre automáticamente. Tendrá que hacer su propia recolección de basura a través de un script de shell, entrada de cron o algún otro método. Por ejemplo, el siguiente script sería el equivalente a configurando session.gc_maxlifetime a 1440 (1440 segundos = 24 minutos): cd/path/to/sessions; encuentra -cmin +24 | xargs rm – Jehy
@Jehy Parece que PHP ahora puede realizar la recolección de elementos no utilizados incluso cuando tiene una session.save_path personalizada. –
@DarrellBrogdon ¿Tiene un recurso o más información sobre la recolección automática de basura de PHP cuando usa una ruta personalizada de session.save? Esto sería bueno si fuera el caso. – maartenmachiels