martes, 2 de abril de 2013

Personalizar listado de archivos WEB / FTP / Apache en Ubuntu Server 14.04

Siguiendo con la documentada de los proyectos toca turno a el listado de archivos de apache dentro de nuestro server ya corriendo con ubuntu server 12.04, este proyecto me dio un dolor de cabeza inmenso ya que no me funcionaba, no corria... al momento de listar tiraba error de configuración.

El problema era que estaba haciendo el procedimiento incorrecto, en unos manuales citaban al .htaccess como la via correcta de hacerlo, pero a mi no me funcionó. lastima...

Segui este Tutorial de los chicos de sinfocol y NO me dio resultado, luego de horas y horas de busqueda eh intentos fallidos uno tras otro, al fin di con un blog Aleman llamado http://blog.is-a-geek.org/. Si, Aleman!  y oh sorpresa, las configuraciones que se manejaban eran las adecuadas y concordaban casi al 100% con lo que yo necesitaba. Leer en aleman esta cabron, y traducirlo me imagino yo que mas... me di a la habilidad de tratar de comprender lo que escribieron y lo logré, funcionó y ahora tengo un listing muy bueno que pronto publicaré.

Hare un pequeño resumen del post que ellos publicaron

Hay que activar el a2enmod autoindex

Primero nos damos permisos de root con sudo -i luego:

sudo a2enmod autoindex

Luego nos posicionamos en la consola con el comando cd /ruta del directorio que quiero personalizar en listado, y ejecutamos este codigo:

sudo wget /var/www/ http://blog.is-a-geek.org/downloads/autoindex_chaltheme.tar
sudo tar xvf /var/www/autoindex_chaltheme.tar

Una vez descargado y descomprimido procedemos a eliminar el archivo tar... que ya no nos sirve de nada.
sudo rm autoindex_chaltheme.tar

Ahora vamos a editar la configuracion de nuestro server, nuevamente con el comando:

nano /etc/apache2/sites-available/default

Seguido de esto dentro ya de la configuracion buscamos el documentroot y agregamos 2 alias

DocumentRoot   /tudocumentroot/carpeta/subcarpetaAlistar
Alias /icons/  /tudocumentroot/carpeta/subcarpetaAlistar/include/icons/
Alias /include/ /tudocumentroot/carpeta/subcarpetaAlistar/include/

Despues de estas lineas tenemos que identificar nuestro directorio /turoot/carpetaroot/, justamente
En este caso de ejemplo
< Directory /tudocumentroot/carpeta/ >
.
.
.
  Options Indexes FollowSymLinks
  IndexOptions +FancyIndexing
  IndexOptions +VersionSort
  IndexOptions +HTMLTable
  IndexOptions +FoldersFirst
  IndexOptions +IconsAreLinks
  IndexOptions +IgnoreCase
  IndexOptions +SuppressDescription
  IndexOptions +SuppressHTMLPreamble
  IndexOptions +XHTML
  IndexOptions +IconWidth=16
  IndexOptions +IconHeight=16
  IndexOptions +NameWidth=*
  IndexOptions +DescriptionWidth=200
  IndexOrderDefault Descending Name
  HeaderName /include/header.html
  ReadmeName /include/footer.html


Luego le agregamos los iconos dentro del mismo directorio, exactamente despues del ReadName /include/footer.html


AddIcon /icons/type_application.png .exe .app .EXE .APP
AddIcon /icons/type_binary.png .bin .hqx .uu .BIN .HQX .UU
AddIcon /icons/type_box.png .tar .tgz .tbz .tbz2 bundle .rar .TAR .TGZ .TBZ .TBZ2
AddIcon /icons/type_rar.png .rar .RAR
AddIcon /icons/type_html.png .htm .html .HTM .HTML
AddIcon /icons/type_code.png .htx .htmls .dhtml .phtml .shtml .inc .ssi .c .cc .css .h .rb .js .rb .pl .py .sh .shar .csh .ksh .tcl .as
AddIcon /icons/type_database.png .db .sqlite
AddIcon /icons/type_disc.png .iso .image
AddIcon /icons/type_document.png .ttf
AddIcon /icons/type_excel.png .xlsx .xls .xlm .xlt .xla .xlb .xld .xlk .xll .xlv .xlw
AddIcon /icons/type_flash.png .flv
AddIcon /icons/type_illustrator.png .ai .eps .epsf .epsi
AddIcon /icons/type_pdf.png .pdf
AddIcon /icons/type_php.png .php .phps .php5 .php3 .php4 .phtm
AddIcon /icons/type_photoshop.png .psd
AddIcon /icons/type_monitor.png .ps
AddIcon /icons/type_powerpoint.png .ppt .pptx .ppz .pot .pwz .ppa .pps .pow
AddIcon /icons/type_swf.png .swf
AddIcon /icons/type_text.png .tex .dvi
AddIcon /icons/type_vcf.png .vcf .vcard
AddIcon /icons/type_word.png .doc .docx
AddIcon /icons/type_zip.png .Z .z .tgz .gz .zip
AddIcon /icons/type_globe.png .wrl .wrl.gz .vrm .vrml .iv
AddIcon /icons/type_android.gif .apk .APK
AddIconByType (TXT,/icons/type_text.png) text/*
AddIconByType (IMG,/icons/type_image.png) image/*
AddIconByType (SND,/icons/type_audio.png) audio/*
AddIconByType (VID,/icons/type_video.png) video/*
AddIconByEncoding (CMP,/icons/type_box.png) x-compress x-gzip
AddIcon /icons/back.png ..
AddIcon /icons/information.png README INSTALL
AddIcon /icons/type_folder.png ^^DIRECTORY^^
AddIcon /icons/blank.png ^^BLANKICON^^

DefaultIcon /icons/type_document.png

Quedandonos de esta manera:

< Directory /euerdirectory / >
.
.
.

  Options Indexes FollowSymLinks
  IndexOptions +FancyIndexing
  IndexOptions +VersionSort
  IndexOptions +HTMLTable
  IndexOptions +FoldersFirst
  IndexOptions +IconsAreLinks
  IndexOptions +IgnoreCase
  IndexOptions +SuppressDescription
  IndexOptions +SuppressHTMLPreamble
  IndexOptions +XHTML
  IndexOptions +IconWidth=16
  IndexOptions +IconHeight=16
  IndexOptions +NameWidth=*
  IndexOptions +DescriptionWidth=200
  IndexOrderDefault Descending Name
  HeaderName /include/header.html
  ReadmeName /include/footer.html
  AddIcon /icons/type_application.png .exe .app .EXE .APP
  AddIcon /icons/type_binary.png .bin .hqx .uu .BIN .HQX .UU
  AddIcon /icons/type_box.png .tar .tgz .tbz .tbz2 bundle .rar .TAR .TGZ .TBZ .TBZ2
  AddIcon /icons/type_rar.png .rar .RAR
  AddIcon /icons/type_html.png .htm .html .HTM .HTML
  AddIcon /icons/type_code.png .htx .htmls .dhtml .phtml .shtml .inc .ssi .c .cc .css .h .rb .js .rb .pl .py . sh .shar .csh .ksh .tcl .as
 AddIcon /icons/type_database.png .db .sqlite
 AddIcon /icons/type_disc.png .iso .image
 AddIcon /icons/type_document.png .ttf
 AddIcon /icons/type_excel.png .xlsx .xls .xlm .xlt .xla .xlb .xld .xlk .xll .xlv .xlw
 AddIcon /icons/type_flash.png .flv
 AddIcon /icons/type_illustrator.png .ai .eps .epsf .epsi
 AddIcon /icons/type_pdf.png .pdf
 AddIcon /icons/type_php.png .php .phps .php5 .php3 .php4 .phtm
 AddIcon /icons/type_photoshop.png .psd
 AddIcon /icons/type_monitor.png .ps
 AddIcon /icons/type_powerpoint.png .ppt .pptx .ppz .pot .pwz .ppa .pps .pow
 AddIcon /icons/type_swf.png .swf
 AddIcon /icons/type_text.png .tex .dvi
 AddIcon /icons/type_vcf.png .vcf .vcard
 AddIcon /icons/type_word.png .doc .docx
 AddIcon /icons/type_zip.png .Z .z .tgz .gz .zip
 AddIcon /icons/type_globe.png .wrl .wrl.gz .vrm .vrml .iv
 AddIcon /icons/type_android.gif .apk .APK
 AddIconByType (TXT,/icons/type_text.png) text/*
 AddIconByType (IMG,/icons/type_image.png) image/*
 AddIconByType (SND,/icons/type_audio.png) audio/*
 AddIconByType (VID,/icons/type_video.png) video/*
 AddIconByEncoding (CMP,/icons/type_box.png) x-compress x-gzip
 AddIcon /icons/back.png ..
 AddIcon /icons/information.png README INSTALL
 AddIcon /icons/type_folder.png ^^DIRECTORY^^
 AddIcon /icons/blank.png ^^BLANKICON^^
DefaultIcon /icons/type_document.png


< / ifModule >
< / Directory >


Se cierra el ifmodule y el directory, NOTA IMPORTANTE: Cuidado con los espacios que pase yo aqui en el ejemplo, si los pego a la apertura y cierre del directory e ifmodule blogger me los reconoce como atributos html.

Update! ---- Descarga de Default.txt  asi solo sustituimos los valores de nuestra carpeta root y subcarpetas y lo enviamos como root a la ruta "/etc/apache2/sites-available/default" nos preguntara la consola si deseamos sobreescribir y le indicamos que si.

y reseteamos apache con el siguiente comando

sudo service apache2 restart

Listo, ya tenemos nuestro listing muy modeado a nuestro gusto, ya de aqui podemos editar el header y el footer agregandole lo que nosotros queramos, ip, reloj, musica, propiedades o paneles de control.



2 comentarios:

Hola amigo,

Como hago para que cuado abra o vaya al inicio los directorios aparezcan ordenados por nombre ya que por defecto aparecen ordenados por fecha de modificación

gracias de antemano

Hola que tal, gracias por tu visita, te dejo estos 2 enlaces
1.- http://httpd.apache.org/docs/2.2/mod/mod_autoindex.html
2.- http://people.brandeis.edu/manual/mod/mod_autoindex.html

Tendrás que modificar por medio de URL el parametro de orden de listado, osea C=N para ordenar por Nombre o crear un filtro en html para que lo haga por ti, es muy sencillo. Saludos

Publicar un comentario

Proyectos Documentados, Trabajos, Ideas...

Donar

Noize Nación Radio

Compartir

Twitter Delicious Facebook Digg Stumbleupon Favorites More

Social...