Instalando o Trac Standalone + MySQL no Ubuntu Server 12.04

E ai galera aqui eu vou abordar a instalação do Trac trabalhando de modo Standalone com o MySQL no Ubuntu Server 12.04, a configuração eu acho bem simples.

Vamos fazer alguns acertos em nosso Ubuntu.

Vamos mandar atualizar os repositórios e fazer um upgrade do sistema

aptitude update && aptitude dist-upgrade -y

Agora vamos mandar instalar alguns pacotes necessário

aptitude install vim vim-scripts ctags vim-doc zip unzip rar p7zip bzip2 less links telnet locate\
 openssh-server sysv-rc-conf rsync build-essential libncurses5-dev ntpdate cmake sudo git -y

Agora vamos instalar alguns dependências do trac

aptitude install python-subversion python-mysqldb libapache2-mod-wsgi python-reportlab python-imaging libapache2-mod-python\
 python-babel python-nibabel python-openbabel python-pybabel -y

Agora vamos instalar o servidor MySQL

aptitude install mysql-server-5.5 mysql-client-5.5 mysql-server-core-5.5 -y

Agora vamos instalar o trac e alguns plugins

aptitude install trac trac-odtexport trac-wikiprint trac-wikitablemacro trac-wysiwyg trac-icalviewplugin -y

Agora vamos habilitar alguns módulos do apache

a2enmod dav_fs dav ldap authnz_ldap

Agora vamos criar a nossa base de dados para o nosso projeto do trac

mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 41
Server version: 5.5.24-0ubuntu0.12.04.1 (Ubuntu)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> CREATE DATABASE trac;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON trac.* TO trac@localhost IDENTIFIED BY 'senha';
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye

Agora vamos criar o nosso projeto trac

trac-admin /srv/trac initenv
 trac-admin /srv/trac initenv
Creating a new Trac environment at /srv/trac

Trac will first ask a few questions about your environment 
in order to initialize 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]> Trac #Nome do projeto
 
 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]> mysql://trac:senha@localhost:3306/trac
[...]
The latest documentation can also always be found on the project
website:

  http://trac.edgewall.org/

Congratulations!
  • Acima temos a conexão com o banco de dados
    • driver de dados: mysql
    • usuário: trac
    • senha: senha
    • host: localhost
    • porta: 3306
    • banco: trac

Agora vamos desabilitar o site default do apache

a2dissite default

Agora vamos criar o nosso virtualhost para o trac

vim /etc/apache2/sites-available/trac
<VirtualHost *:80>
        ServerAdmin webmaster@douglasqsantos.com.br
        ServerName www.douglasqsantos.com.br
        DocumentRoot /srv/trac

   WSGIScriptAlias / /srv/trac/cgi-bin/trac.wsgi

  <directory /srv/trac/cgi-bin>
        WSGIApplicationGroup %{GLOBAL}
        Order deny,allow
        Allow from all
  </directory>

        <Location /login>
                AuthType Basic
                AuthName "Trac"
                AuthUserFile /srv/trac/.trac.htpasswd
                Require valid-user
        </Location>

        CustomLog /srv/trac/htdocs/logs/trac.access.log combined
        ErrorLog /srv/trac/htdocs/logs/trac.error.log

        LogLevel warn
</VirtualHost>

Agora vamos criar o arquivo de controle a área administrativa do trac

htpasswd -c /srv/trac/.trac.htpasswd admin

Agora vamos orientar ao trac que o usuário que cadastramos vai ser o admin trac

trac-admin /srv/trac/ permission add admin TRAC_ADMIN

Agora precisamos mandar fazer o deploy do nosso projeto para que ele possa ser chamado como uma página comum

trac-admin /srv/trac deploy /tmp/trac

Agora vamos copiar os arquivos para o nosso projeto

cp -Rfa /tmp/trac/* /srv/trac/

Agora vamos criar o diretório para armazenar os logs

mkdir -p /srv/trac/htdocs/logs

Agora vamos acertar as permissões

find /srv/trac/ -type d -exec chmod 775 {} \;
find /srv/trac/ -type f -exec chmod 664 {} \;
chmod 775 /srv/trac
chmod 775 /srv/trac/cgi-bin/trac.wsgi
chown -R www-data:www-data /srv/trac

Agora vamos habilitar o nosso virtualhost

a2ensite trac 

Agora vamos reiniciar o nosso apache

/etc/init.d/apache2 restart

Agora é só acessar http://www.douglasqsantos.com.br ou o http://ip_servidor se não foi criada uma entra em /etc/hosts ou no dns

Para acessar o painel de administração precisamos efetuar login primeiro acesse http://www.douglasqsantos.com.br/login ou http://ip_servidor/login informe o usuário admin e a senha, após isto acesse a nova opção que apareceu no menu admin, neste painel que vão ser habilitados os plugins e vai ser feito o controle das permissões de acesso ao trac ;)

Referências