Percebeu alguma mudança? Veja o porquê.
Este é o Jornal do Jerimum, um blog mantido por Allan Garcia, sócio e administrador da ADG Soluções. Neste blog tratamos de assuntos relacionados com Tecnologia, Linux, Redes, Programação e outros.

Como montar uma biblioteca virtual para uso em uma Intranet Allan Garcia 30 de janeiro de 2009

No laboratório onde pesquiso, na UFRN (http://www.ufrn.br/), surgiu a necessidade de uma pequena estrutura de biblioteca virtual para indexar e catalogar nossas teses, dissertações e artigos publicados. Precisávamos agilizar e facilitar a busca por palavras chaves e facilmente acessar e ler o trecho ou o artigo todo que havia sido publicado.

Para resolver essa necessidade resolvi implantar uma pequena biblioteca virtual de teses para uso interno usando o Swish-E (http://www.swish-e.org/). Segue abaixo o passo a passo utilizado para a implantação do mesmo, a fim de que outras instituições de ensino e pesquisa possam utilizar-se desse manual para seus próprios propósitos. Favor, caso utilize este tutorial, deixe um recado para sabermos qual a utilidade que este artigo proporcionou para você.

Primeiramente é preciso ter uma máquina Linux instalada, para este tutorial eu estou utilizando um Desktop com o Ubuntu 8.10 Desktop instalado, é uma das máquinas do laboratório, nada muito sofisticado. Para saber como instalar o Linux procure no Google, este manual não se propõe a isto.

Devemos instalar um servidor web para executar os códigos do Swish-E, você pode utilizar qualquer servidor que execute Perl, o mais conhecido servidor web utilizado no Linux é o Apache, portanto para instalar o apache execute:

$ sudo su -

Para mudar para o modo super usuário

# aptitude install apache2

Depois precisamos dos códigos do Swish-E, por sorte nessa versão do Ubuntu ele já está disponível no repositório. Para instalar execute:

# aptitude install swish-e

Na ocasião da instalação do apache deve ter sido criada uma pasta /var/www , acessaremos ela para criar o site da biblioteca

# cd /var/www

# mkdir swishe

# cd swishe

Em seguida criaremos o arquivo de configuração da nossa biblioteca virtual

# touch swishe.conf

E copie o conteúdo abaixo para o arquivo

#
# Swish-e Configuration File
# by Allan Garcia (allan.garcia@gmail.com)
#
WordCharacters abcdefghijklmnopqrstuvwxyz\&#;0123456789.@|,-'"[](~!@$%^{}_+?
IndexFile    ./swishe.index
IndexDir    ./biblioteca/
IndexOnly    .pdf
IndexReport    1
FilterDir    /usr/share/doc/swish-e/examples/filter-bin
FileFilter    .pdf    /usr/bin/pdftotext    "'%p' -"
IndexContents    TXT* .pdf

Neste caso eu estou indexando apenas arquivos PDF, para indexar outros tipos de arquivo consulte o site do Swish-E e veja a documentação.

OBS: Nesta versão o binário pdftotext já vem instalado por padrão, se isso não for verdade para você instale o pacote xpdf.

Vamos criar agora o diretório que armazenará os arquivos pdf.

# mkdir biblioteca

Copie os arquivo desejados para esta pasta via SSH ou crie um compartilhamento do SAMBA ou ainda instale um servidor FTP. Eu estou usando o SSH por ser mais simples.

Apartir de uma outra máquina Linux abra o Nautilus e digite na barra de endereços:

sftp://<ipdoservidor>/var/www/swishe/biblioteca/

Agora é só copiar os arquivos para este diretório.

Vamos instalar agora o cgi do swish-e. Lembre-se que estamos ainda na pasta /var/www/swishe.

# pwd

/var/www/swishe

# cp /usr/share/doc/swish-e/examples/swish.cgi .

Altere as permissões para execução

# chmod +x swish.cgi

Para facilitar o processo de indexação, eu criei um pequeno script para ser agendado no cron.

# touch make_index.sh

Copie o conteúdo seguinte para este arquivo.

#!/bin/bash
#
# Swish-e Index make file
# by Allan Garcia (allan.garcia@gmail.com)
#
CURRDIR="/var/www/swishe"
LOGFILE="swish.log"
cd $CURRDIR
echo "Iniciando o backup..." > $LOGFILE
date +%Y-%m-%d_%H:%M:%S >> $LOGFILE
swish-e -c swishe.conf >> $LOGFILE
date +%Y-%m-%d_%H:%M:%S >> $LOGFILE

Para criar o primeiro índice execute o script criado.

# ./make_index.sh

Agora vamos configurar o apache. Acesse o diretório de configuração na pasta e crie o arquivo do site.

# cd /etc/apache2/site-available/

# touch swishe

Copie o conteúdo abaixo

#
# Web Configuration for Biblios Search Engine
# by Allan Garcia (allan.garcia@gmail.com)
#

<VirtualHost *:80>
    ServerAdmin root@labsis.ufrn.br
    DirectoryIndex swish.cgi

    AddHandler cgi-script    cgi pl
    DocumentRoot /var/www/swishe/
    <Directory /var/www/swishe/>
        AuthType Basic
        AuthName "Area protegida do LabSIS
        AuthUserFile /var/www/swishe/.htpasswd
        Require valid-user
        Options Indexes FollowSymLinks MultiViews +ExecCGI
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ErrorLog /var/log/apache2/swishe-error.log
    LogLevel warn
    CustomLog /var/log/apache2/swishe-access.log combined

    Alias /biblioteca/ "/var/www/swishe/biblioteca/"
    <Directory "/var/www/swishe/biblioteca/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

</VirtualHost>

Faça as adaptações necessárias para funcionar no seu servidor

Agora habilite o site, desabilite o default e reinicie o apache

# a2ensite swishe

# a2dissite default

# /etc/init.d/apache2 restart

Falta agora apenas um passo adicional, criar um mini-sistema de autenticação para pedir login e senha para acessar o site.

Volte para a pasta do site

# cd /var/www/swishe

Crie um arquivo de senhas e configure uma senha desejada

# htpasswd -c .htpasswd login
New password: ****
Re-type new password: ****

Se tudo correu bem você poderá agora testar o serviço de biblioteca. Acesse pelo navegador:

http://<ipdoservidor>/

Digite seu login e senha e você deverá se deparar com a seguinte tela:

Por último, isso é opcional e depende do seu objetivo, vamos agendar no cron a execução da indexação dos arquivos. Adicione a seguinte linha no cron.

00 12    * * *    root    /var/www/swishe/make_index.sh

Não se esqueça de comentar se este arquivo lhe for útil.

3 comentários para “Como montar uma biblioteca virtual para uso em uma Intranet”

  1. Marcelo Alexandrino disse:

    Olá Felicitações pelo Projeto:

    Estou desenvolvendo projetos para o setor público municipal para oferecer a secretarias de educação do municípios do estado da Bahia, gostaria de manter contato para trocarmos esperiencia e adquirir com você sobre uma Biblioteca Digital.

    Marcelo Alexandrino
    Consultor Tecnológica

  2. Eloísa disse:

    Não sou da área da informática. Como o pessoal dessa área sempre diz não para as minhas observações, resolvi, por conta própria, pesquisar. Receio que a instituição em que trabalho perca a memória, pois, embora existam projetos de gestão de documentos, ainda acho falha no resgate do documento. Não basta, e já tenho experiência, a busca da plavra no texto, pois nunca se sabe que palavra a pessoa que o criou usou. Existe um método de armazenamento, já testado, contendo, por exemplo, um tesauro ou sei eu o que, de forma que não se fique na dependência da pessoa que criou o texto ? (as vezes só ela sabe a palavra que usou, ou às vezes, até, ela esqueceu). Ficar nessa dependência significa voltar às origem, ou seja, como era antigamente no serviço público “eu sou o dono das fichinhas”

  3. Allan Garcia disse:

    Cara Eloísa, estou enviando minha resposta por aqui pois não consegui fazê-lo por email.

    Se eu acho que entendi sua questão, você está precisando indexar o documento com outras palavras, é isso? realmente o Switch-E não faz isso, mas como é um software aberto, seria relativamente simples incluir uma opção de indexar por outras palavras. Atualmente ele apenas indexa as palavras de dentro do texto, bem como o nome do arquivo e outros detalhes.

Deixe um comentário