=================
Instalando o SIGI
=================
Este documento descreve como efetuar a instalação do Sistema de
Informações Gerenciais do Interlegis (SIGI). Os passos são baseados
nas distribuições GNU/Linux Debian e Ubuntu, porém podem ser aplicados
sem dificuldades em outras distribuições, com um pouco de adaptação.
Preparação do ambiente para a instalação
========================================
Há dois tipos de instalação do SIGI, uma para desenvolvimento e outra
para colocar em produção.
Para ambas instalações, certifique-se que os seguintes softwares
estejam instalados em seu sistema:
* Python >= 2.4 < 3.0
* Django 1.0
O Python pode ser instalado à partir do pacote ``python`` com uma
ferramenta de instalação de pacotes como o ``apt-get`` ou
``aptitude``.
Se sua distribuição não possui o pacote ``python-django``, para o
Django na versão 1.0, será necessário obter e configurar o mesmo
manualmente. A próxima seção traz mais detalhes para esta tarefa.
Instalação do Django
--------------------
O Django 1.0 pode ser obtido através da `página de download
`_ do `Django Project
`_ via *tarball* (``tar.gz``) ou via
Subversion (revisão 8961).
Obtendo e instalando o Django
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Primeiramente baixe o `tarball do Django 1.0
`_ ou dê
*checkout* na tag 1.0 disponível no repositório do Subversion do
projeto::
svn checkout http://code.djangoproject.com/svn/django/tags/releases/1.0/
Após isso será necessário colocar o pacote Python do ``django``
(diretório ``django`` disponível dentro do diretório/tarball baixado)
no *path* do Python.
Para saber quais são os diretórios que estão no path do Python,
execute em linha de comando::
python -c 'import sys; print sys.path'
Você tem opção de mover o pacote ``django`` para algum diretório
coberto pelo path ou adicionar um outro local no path utilizando a
variável de ambiente ``PYTHONPATH`` do usuário que rodará o sistema. O
formato do ``PYTHONPATH`` é o mesmo do ``PATH`` do sistema. Exemplo::
PYTHONPATH=/path/to/django:$PYTHONPATH
De maneira simplificada, a instalação do Django é como a instalação de
qualquer outro pacote Python.
Preparando o ambiente para desenvolvimento
------------------------------------------
Se você irá desenvolver pro SIGI, é necessário possuir os seguintes
pacotes instalados em sua máquina:
* sqlite3, para SQLite 3;
* python-pysqlite2, interface Python para SQLite 3.
Preparando o ambiente para produção
-----------------------------------
Para disponibilizar o SIGI em um ambiente para produção você
necessitará do MySQL Server ou PostgreSQL, ou qualquer outro Sistema
Gerenciador de Banco de Dados (SGBD) compatível com Django 1.0, e de
suas seguintes interfaces para Python, como os pacotes
``python-mysqldb`` e ``python-psycopg2`` (respectivamente para MySQL e
PostgreSQL).
Será necessário também possuir o Apache (>= 2.2) instalado para
disponibilizar o sistema via HTTP, de forma cliente/servidor, ou outro
servidor web compatível com Python e WSGI (ou FastCGI).
Opcionalmente, você pode utilizar o servidor web Lighttpd para servir
os arquivos estáticos do sistema.
Você encontrará configurações para Apache com WSGI neste documento,
juntamente com instruções para configurar o SIGI com o banco de dados
escolhido.
Instalação e configuração do SIGI
=================================
O SIGI está disponível no `Colab `_,
um portal colaborativo para a gerência dos projetos de software do
`Interlegis `_.
A página do projeto SIGI no Colab pode ser acessada através do link
http://colab.interlegis.gov.br/wiki/ProjetoSigi.
Obtendo e instalando o SIGI
---------------------------
Para baixar o SIGI, é necessário ter o Subversion instalado em sua
máquina (pacote ``subversion``). Para *checkout* do sistema via
Subversion, execute o comando abaixo::
svn checkout http://repositorio.interlegis.gov.br/SIGI/trunk/ /path/to/SIGI
Substitua ``/path/to/SIGI`` para o local onde deseja instalar o
SIGI. (Iremos considerar o diretório SIGI como a raiz do projeto
durante o restante deste documento.)
Configuração do SIGI
--------------------
Dentro da raiz do projeto, encontra-se um diretório de nome ``sigi``
(pacote Python do projeto). Sua configuração padrão, se encontra no
arquivo ``settings.py``.
Para alterar as configurações do projeto, é recomendado que copie o
arquivo ``local_settings.template`` para ``local_settings.py`` e
altere os parâmetros neste arquivo.
Instalação em ambiente para desenvolvimento
-------------------------------------------
As configurações padrões do projeto já estão direcionadas para um
ambiente de desenvolvimento e não exige demais configurações.
(Os comandos abaixo deverão ser executados dentro do diretório
``sigi``, onde se encontra o arquivo ``manage.py``.)
Base de dados em ambiente para desenvolvimento
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Antes de executar o projeto, é necessário preencher o banco de dados
com suas tabelas e valores padrão.
Considerando que possua o SQLite instalado, basta executar o comando
abaixo::
python manage.py syncdb
Execução do projeto em ambiente para desenvolvimento
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Para rodar o SIGI, execute em linha de comando::
python manage.py runserver
O projeto poderá ser acessado através do endereço
http://127.0.0.1:8000/.
Instalação em ambiente para produção
------------------------------------
Para instalar o SIGI em ambiente para produção, devemos configurar um
Sistema Gerenciador de Banco de Dados (SGBD), o qual armazenará os
dados do sistema, e configurar um servidor HTTP, como o Apache, para
disponibilizar o sistema na web.
Configuração do SGDB
~~~~~~~~~~~~~~~~~~~~
Modifique em seu ``local_settings.py`` as variáveis
``DATABASE_ENGINE``, ``DATABASE_NAME``, ``DATABASE_USER``,
``DATABASE_PASSWORD``, ``DATABASE_HOST`` e ``DATABASE_PORT`` de acordo
com o banco de dados disponibilizado para o SIGI.
Em ``DATABASE_ENGINE``, suas opções são ``postgresql_psycopg2``,
``postgresql``, ``mysql``, ``sqlite3`` ou ``ado_mssql``.
Após isso, é necessário preencher o banco de dados
com suas tabelas e valores padrão. Para tal, execute em linha de
comando::
python manage.py syncdb
Configuração do servidor web Apache com WSGI
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Exemplos de configurações, de um ``VirtualHost``, estão disponíveis no
diretório ``etc/apache/`` dentro do diretório raiz do projeto
(``SIGI/``).