Instalação do Trac no AOLServer

Como o AOLServer não tem um módulo nativo para o Trac como o Apache, o processo de configuração do é um pouco mais complicado. Acresentamos ainda a complexidade de fazê-lo funcionar de maneira integrada como OpenACS. Na verdade, a única dificuldade é entender a configuração dos scripts CGI e fazer o Trac ser executado dessa forma pelo servidor. Ainda não consegui fazer a autenticação funcionar, mas esse deve ser o próximo passo do meu trabalho.

Instalação do Trac e SVN

Instalação do setuptools

# apt-get install python-setuptools

Genshi

# apt-get install python-genshi

Clear silver (parece opcional, mas vamos instalar)

# apt-get install python-clearsilver

Psycopg2

# apt-get install python-psycopg2

Subversion

# apt-get install python-subversion

Trac

# easy_install --prefix=/usr/local http://svn.edgewall.org/repos/trac/tags/trac-0.11

Atualização

Atualizei minha versão do Debian do Etch para o Lenny e o Trac parou de funcionar. O easy_install também não funcionou mais e precisei alterar um pouco os procedimentos de instalação:

# cd /usr/local
# svn co http://svn.edgewall.org/repos/trac/tags/trac-0.11
#  ln -s trac-0.11/ trac
# cd trac
#  python ./setup.py install

Obs.: Temos que sair e entrar para recarregar o bash, já que o caminho dos executáveis mudou.

Executamos o comando para configurar o Trac. No caso, considero o banco acessado em máquina local pelo usuário padrão do OpenACS (service0).

trac-admin /srv/trac/openacs initenv

Trac will first ask a few questions about your environment
in order to initalize and prepare the project database.

Please enter the name of your project.
This name will be used in page titles and descriptions.

Project Name [My Project]> OpenACS Fixes
Please specify the connection string for the database to use.
By default, a local SQLite database is created in the environment
directory. It is also possible to use an already existing
PostgreSQL database (check the Trac documentation for the exact
connection string syntax).

Database connection string [sqlite:db/trac.db]>  postgres://service0:@localhost:5432/trac?schema=trac

O banco de dados deve estar criado. Ele vai criar um novo esquema. Precisa ser um que não exista ainda.

Please specify the type of version control system,
By default, it will be svn.

If you don't want to use Trac with version control integration,
choose the default here and don't specify a repository directory.
in the next question.
Repository type [svn]>

Please specify the absolute path to the version control
repository, or leave it blank to use Trac without a repository.
You can also set the repository location later.

Path to repository [/path/to/repos]> /srv/svn/openacs
Aqui é necessário colocar o caminho para o seu repositório.

Alterações na Configuração

No OpenACS, será necessário alterar o arquivo config.tcl

ns_section "ns/server/${server}/module/nscgi"
ns_param map "GET /trac /usr/local/trac/cgi-bin/trac.fcgi"
ns_param map "POST /trac /usr/local/trac/cgi-bin/trac.fcgi"
ns_param map "HEAD /trac /usr/local/trac/cgi-bin/trac.fcgi"
ns_param environment cgi ;# Config. section which defines
;# additional environment variables.
# ns_param Interps CGIinterps

ns_section "ns/environment/cgi"
ns_param TRAC_ENV /srv/trac/openacs ;# defines env. var "FOO=BAR"

Parece fácil, mas levei quase dois dias para conseguir fazer isso. Os truques envolvidos são:

  1. Mapear o endereço certo para o script. O secreto é fazer que, para qualquer URL que tenha /trac, seja executado o script no local informado. O meu problemafoi que /trac/ não funciona, e não adianta tentar fornecer o caminho do script na mão. Ele deve ser executado para cada requisição de URL.
  2. Inserir a variável de ambiente. É fácil, mas pode dar algum trabalho.
  3. Inserir a carga do módulo nscgi:
    ns_param   nscgi              ${bindir}/nscgi.so

Múltiplos ambientes

Para ajustar mais de um ambiente do Trac, basta alterar a configuração da variável de ambiente dos scripts cgi:

ns_section "ns/environment/cgi"
ns_param   TRAC_ENV_PARENT_DIR    /srv/trac     ;# defines env. var "FOO=BAR"

0saves


Se você gostou desse post, deixe um comentário ou inscreva-se no feed RSS para ter todas os posts enviados para o seu agregador preferido.

Author Description

Eduardo Santos

Mestre em Computação Aplicada pela Universidade de Brasília (UnB), Tecnologista na Agência Espacial Brasileira, professor do Uniceub e cientista de dados (data scientist).

No comments yet.

Leave a Reply

Twitter

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 504 other subscribers

Alguns direitos reservados

Licença Creative Commons
Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-NãoComercial 4.0 Internacional.