[Redes] Publicando un repositorio vía http con lighttpd

Conexión entre PCHola lector(a) y/o seguidor(a). Si bien soy un empedernido usuario de la combinación Apache + PHP + MySQL, no dejo de admitir que a veces ese maldito demonio de Apache es un tragón de memoria y recursos para publicar un mísero repositorio de tu distribución preferida. Por eso se recomienda usar otras alternativas que si se adaptan a estos entornos donde lo principal es priorizar la descarga de archivos y no tanto la lógica detrás de su proceder. En esta entrada voy a utilizar “lighttpd” en Ubuntu, pero estoy casi seguro que debe funcionar en casi todo lo que parezca Debian, Ubuntu y derivados. APT INSTALL -F

En algunos tutoriales de internet recomiendan usar el comprimido de código fuente de este proyecto, pero yo les voy a sugerir  la versión que viene en los repositorios oficiales. Para instalarlo solo debemos poner en la consola:

apt install lighttpd

Con esto ya tenemos instalados el webserver que nos servirá para publicar nuestro repositorio, ahora a realizar algunas modificaciones a la configuración por defecto, esto se hace en /etc/lighttpd/lighttpd.conf:

server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
# "mod_rewrite",
)

server.document-root = "/var/www/html"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80

index-file.names = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

compress.cache-dir = "/var/cache/lighttpd/compress/"
compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )

# default listening port for IPv6 falls back to the IPv4 port
## Use ipv6 if available
#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

Nada nuevo para los familiarizados con Apache, aquí falta la magia de la visualización de directorios que viene desactivada por defecto, pero aquí se activa agregando las siguientes líneas al fichero mencionado anteriormente, quedando de una forma como la que presento. Nota: lo señalado en negrita es lo agregado por mi parte.

server.modules = (
        "mod_access",
        "mod_alias",
        "mod_accesslog",
        "mod_compress",
        "mod_redirect",
#       "mod_rewrite",
)

server.document-root        = "/var/www/html"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80

index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
url.access-deny             = ( "~", ".inc" )
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )

dir-listing.encoding        = "utf-8"
server.dir-listing          = "enable"
accesslog.filename          = "/var/log/lighttpd/access.log"

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )

# default listening port for IPv6 falls back to the IPv4 port
## Use ipv6 if available
#include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"

Por último y no menos importante realizar un enlace simbólico al directorio donde está alojado el repositorio a publicar o cambiamos la ruta del document-root del servidor.

!!Y listo!! Ahora le queda a usted verificar y comprobar si es verdad que es tan ligero como lo pintan.

Nota del autor: ¿No les ha sucedido que se tarda un poquito en listar los directorios porque se están ordenando los archivos del directorio listado? Si desean eliminar esta funcionalidad solo deben incluir la directiva dir-listing.external-js y apuntarla a un lugar como localhost o algo parecido. A mi me quedó así:

dir-listing.encoding = "utf-8"
server.dir-listing = "enable"
dir-listing.external-js = "http://127.0.0.1/dir-sort.js"

Enlace permanente a este artículo: http://sasousuke.cubava.cu/2019/03/21/redes-publicando-un-repositorio-via-http-con-lighttpd/

1 comentario

    • ultrahd en jue Mar 21, 2019 a las 6:49 PM

    Exelente, va como la seda

Los comentarios han sido desactivados.