Настройка листинга директорий Apache2  english

Накрутил я на домашний роутер когда только его установил apache2 и pure-ftpd. В apache2 крутится у меня torrentflux, ну а pure-ftpd я думаю понятно для чего. Настроил, но что-то незаладилось и pure-ftpd я решил пересобрать от недостатка опций, потом у него сорвало крышу от каких-то настроек или их отключения ещё до пересборки и он перестал меня пускать залогинится, я его выключил до лучших времён, а отдавать файлы решил через apache2. И тут вспомнилось мне, что читал я когда-то о приведении листинга директорий, генерируемого в apache2 с помощью mod_autoindex, к человеческому виду. Полез читать. Того, чего я себе представлял, я не нашёл. Но всё же полученные результаты приведу в виде маленького howto.

задача: хотим читабельный листинг директорий с современными иконками, пользуясь лишь втроенными средствами apache2.
решение: включаем и настраиваем mod_autoindex, качаем и устанавливаем современные иконки к apache2.

предисловие: всё ниженаписанное применимо для debian/ubuntu, т.к. насколько я знаю их(debian) конфигурация apache2 специфична.

  • включаем mod_autoindex, идёт в пакете с самим apache2

    ln -s /etc/apache2/mods-available/autoindex.load /etc/apache2/mods-enabled/autoindex.load
    /etc/init.d/apche2 restart

  • в конфигурацию виртуального хоста (находится в /etc/apache2/sites-enabled и/или /etc/apache2/sites-available) или самого apache2 пишем следующее:

    Options Indexes
    IndexOptions FancyIndexing NameWidth=60 FoldersFirst SuppressColumnSorting SuppressDescription SuppressLastModified

    Options Indexes - включает индекс директории;
    IndexOptions … - опции для mod_autoindex

  • Качаем иконки для apache - apache-icons-gartoon (зеркало gartoon и nuvola). Пакет не устанавливаем через
    dpkg -i

    , а просто клацаем

    Enter

    в mc, и копируем CONTENTS/usr/share/apache/icons-gartoon в /usr/share/apache2/icons-gartoon, если пакет - apache-icons-gartoon_20060221f_all.deb. Далее:

    cd /usr/share/apache2/
    mv icons icons.orig
    mv icons-gartoon icons

  • Находим в /etc/apache2/apache2.conf фрагмент:

    AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip

    AddIconByType (TXT,/icons/text.gif) text/*
    AddIconByType (IMG,/icons/image2.gif) image/*
    AddIconByType (SND,/icons/sound2.gif) audio/*
    AddIconByType (VID,/icons/movie.gif) video/*

    AddIcon /icons/binary.gif .bin .exe
    AddIcon /icons/binhex.gif .hqx
    AddIcon /icons/tar.gif .tar
    AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
    AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
    AddIcon /icons/a.gif .ps .ai .eps
    AddIcon /icons/layout.gif .html .shtml .htm .pdf
    AddIcon /icons/text.gif .txt
    AddIcon /icons/c.gif .c
    AddIcon /icons/p.gif .pl .py
    AddIcon /icons/f.gif .for
    AddIcon /icons/dvi.gif .dvi
    AddIcon /icons/uuencoded.gif .uu
    AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
    AddIcon /icons/tex.gif .tex
    AddIcon /icons/bomb.gif core

    AddIcon /icons/back.gif ..
    AddIcon /icons/hand.right.gif README
    AddIcon /icons/folder.gif ^^DIRECTORY^^
    AddIcon /icons/blank.gif ^^BLANKICON^^

    # DefaultIcon is which icon to show for files which do not have an icon
    # explicitly set.

    DefaultIcon /icons/unknown.gif

    закомментировываем его (добавляем # в начале каждой строчки) и вставляем ниже (или выше) следующий фрагмент:

    AddIconByType (TXT,/icons/text.png) text/*
    AddIconByType (IMG,/icons/image2.png) image/*
    AddIconByType (SND,/icons/sound2.png) audio/*
    AddIconByType (VID,/icons/movie.png) video/*

    AddIcon /icons/binary.png .bin .exe
    AddIcon /icons/binhex.png .hqx
    AddIcon /icons/tar.png .tar
    AddIcon /icons/world2.png .wrl .wrl.gz .vrml .vrm .iv
    AddIcon /icons/compressed.png .Z .z .tgz .gz .zip
    AddIcon /icons/a.png .ps .ai .eps
    AddIcon /icons/layout.png .html .shtml .htm .pdf
    AddIcon /icons/text.png .txt
    AddIcon /icons/c.png .c
    AddIcon /icons/p.png .pl .py
    AddIcon /icons/f.png .for
    AddIcon /icons/dvi.png .dvi
    AddIcon /icons/uuencoded.png .uu
    AddIcon /icons/script.png .conf .sh .shar .csh .ksh .tcl
    AddIcon /icons/tex.png .tex
    AddIcon /icons/bomb.png core

    AddIcon /icons/back.png ..
    AddIcon /icons/hand.right.png README
    AddIcon /icons/folder.png ^^DIRECTORY^^
    AddIcon /icons/blank.png ^^BLANKICON^^

    #
    # DefaultIcon is which icon to show for files which do not have an icon
    # explicitly set.
    #
    DefaultIcon /icons/unknown.png

  • Делаем

    /etc/init.d/apache2 restart

    и получаем индексы директории следующего вида:

    Apache2 directory listing screenshot

  • На этом вроде всё, в скором времени недеюсь собрать пакет с иконками чтобы отменить большинство геммороя - будет устанавливаться в нужное место и иконки будут в gif.

    Leave a Reply