Volver al blog

Mejorando la vista de nuestro FTP usando h5ai vía web

h5ai

Buenas a todos, hoy les quiero mostrar como configurar el _h5ai para darle otro estilo a los mal llamados FTP vía web que no es mas mediante un php darle un estilo a nuestras carpetas compartidas.

Lo mas común encontrado en la red de redes es encontrar carpetas indexadas o listadas por el propio servidor web es decir las conocidas que encontramos como "Index of ", en Cuba hace ya un tiempo se hacia eso con un proyecto llamado httpdirindex, bueno hoy les mostrare como hacerlo con _h5ai. Pueden ver el demo.

h5ai es un indexador de archivos moderno para servidores web HTTP. Los directorios se muestran de una manera atractiva y la exploración se mejora mediante diferentes vistas, una ruta de navegación y una vista general de árbol. Inicialmente, h5ai era un acrónimo de HTML5 Apache Index, pero ahora también es compatible con otros servidores web.

Dicho sistema php requiere PHP 5.5+ y funciona bien con Apache httpd, lighttpd, nginx y Cherokee. La mejor experiencia de usuario con las últimas versiones de Chrome, Firefox, Opera, Vivaldi, Safari y Edge, pero se proporciona una alternativa estática para navegadores antiguos o si JavaScript está desactivado.

Características

Hay muchas extensiones opcionales y opciones de configuración para personalizar el aspecto web de sus listados de directorios. Todas las marcas son HTML5 válido aderezado con CSS3 y el mejor JavaScript para construir una interfaz de usuario fresca pero mínima y una experiencia de usuario que se centra en sus archivos.

Algunas de las características opcionales son:

  • clasificación
  • modos de visualización
  • localización
  • ruta de navegación
  • vista de árbol
  • encabezados personalizados
  • pies de página
  • filtro
  • búsqueda
  • tamaños de carpeta
  • actualización automática
  • descarga empaquetada
  • Códigos QR
  • miniaturas:
    imagen
  • texto
  • audio
  • vista previa de vídeo

Instalación

  1. Descarge el h5ai wget -c https://release.larsjung.de/h5ai/h5ai-0.29.0.zip
  2. Descomprímelo y Copie la carpeta _h5ai en el directorio raíz del documento del servidor web: DOC_ROOT/_h5ai.
    DOC_ROOT
    ├─ _h5ai ├─ Archivos
    └─ Carpetas
  3. Abra en su navegador http://YOUR-DOMAIN.TLD/_h5ai/public/index.php, para verificar que le carge el h5ai.
  4. Agregue /_h5ai/public/index.php (observe la barra inclinada inicial) al final de la lista predeterminada de archivos de índice. De esta forma, h5ai administrará todos los directorios en y por debajo de DOC_ROOT que no tengan un archivo de índice.

    Estos son algunos ejemplos de dicha configuración del h5ai como indexador

    Apache httpd 2.2 / 2.4: en httpd.conf o en el archivo .htaccess del directorio raíz, por ejemplo:
    DirectoryIndex index.html index.php /_h5ai/public/index.phplighttpd 1.4: en lighttpd.conf ejemplo:
    index-file.names += ("index.html", "index.php", "/_h5ai/public/index.php")nginx : en nginx.conf ejemplo:
    index index.html index.php /_h5ai/public/index.php;Cherokee 1.2: en cherokee.conf por ejemplo:
    vserver!1!directory_index = index.html,index.php,/_h5ai/public/index.php

Configuración

El archivo de configuración principal es _h5ai/private/conf/options.json. Es posible que desee cambiar algunas de las configuraciones documentadas. Pero hay algunos archivos más en _h5ai/private/conf que puede ver.

Sugerencias

  • No se admiten cosas específicas del servidor web, ¡eso incluye restricciones de acceso! La mejor oportunidad para hacer que las áreas restringidas funcionen y sean seguras puede ser colocar la carpeta _h5ai completamente dentro de esa área restringida. ¡Úselo bajo su propio riesgo!
  • No funciona con carpetas con alias en general (como está disponible en Apache httpd). Las carpetas con alias no permiten mapear las URL a las carpetas del sistema de archivos.
  • Si no se muestran iconos, es probable que deba agregar el tipo SVG MIME a su servidor.
  • En los servidores de Ubuntu, es posible que necesite instalar un paquete adicional para soporte de PHP JSON
  • Para usar funciones opcionales basadas en comandos de shell, las funciones PHP exec y passthru no se deben deshabilitar en php.ini (busque funciones de desactivación).

Ejemplo de Virtual Host

Ahora les comparto un ejemplo del uso del _h5ai en un servidor web nginx:

server {
    listen 80 default_server;
    server_name _;
    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;
    root /var/ftp/;
    index index.html index.php /_h5ai/public/index.php;

    location ~ \.php$ {
        fastcgi_pass  unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_send_timeout 5m;
        fastcgi_read_timeout 5m;
        fastcgi_connect_timeout 5m;
        include /etc/nginx/fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME /var/ftp/$fastcgi_script_name;
    }

}

Algunos parámetros a tener en cuenta en esta configuración es:
listen 80 default_server; --> ponemos default_server ya que es un servidor que lo único que brindará es el ftp, de no ser así elimina ese parámetroserver_name _; --> con esta configuración especificamos que cualquier virtualhost que no este declarado le mostrara el ftproot /var/ftp/; --> este es nuestro DOC_ROOT es decir,es donde están todos los archivos que queremos compartir incluido la carpeta _h5aiindex index.html index.php /_h5ai/public/index.php; --> Declaramos el paso 4 de la instalación En este webserver usamos php-fpm como soporte para nginx en este caso el 7.0 de ubuntu 16.04Declaramos de nuevo el DOC_ROOT como medida de seguridad para restringir que carpetas pueden ver y prevenir la escalabilidad de carpetas fuera de ese DOC_ROOT

Suscríbete · Newsletter

Mantente al día, cada semana

Artículos prácticos sobre Linux, redes, seguridad, virtualización y la nube — escritos por sysadmins cubanos.

  • Guías y tutoriales de administración de sistemas
  • Nuevos artículos sobre servidores, redes y nube
  • Sin spam, cancela cuando quieras

Respetamos tu bandeja de entrada. Cancela con un clic.

Patrocinado por SYSCU

¿Tu infraestructura en la nube te cuesta de más?

SYSCU optimiza tu nube de punta a punta — FinOps, DevOps & CI/CD, migraciones a AWS, seguridad y observabilidad. Equipo 100 % senior que reduce tu factura hasta un 40 % y acelera tus despliegues en semanas.

Nuevo · BetaSYSCU Atlas Insight — la plataforma FinOps que convierte tu gasto AWS en decisiones: visibilidad multi-cuenta, recomendaciones automáticas y alertas de anomalías.

No comments yet