Instalação
Efetuar o download do Redmine no endereço abaixo:
Descompactar o arquivo em alguma pasta de sua preferência. Neste caso, farei no
/opt:
# tar -xzfv redmine-2.4.6.tar.gz
Acessar o MySQL e criar a base de dados
redmine, seu usuário e uma senha:
>
CREATE DATABASE redmine CHARACTER SET utf8;
>
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'senha_redmine';
>
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
>
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost' IDENTIFIED BY 'senha_redmine';
Renomear ou copiar o arquivo:
/opt/redmine{versão}/config/database.yml.example
Para:
database.yml
Agora colocaremos a informações sobre o banco de dados nesse arquivo:
# vi /opt/redmine{versão}/config/database.yml
production:
adapter: mysql2
database: redmine
host: localhost (ou o nome do servidor do banco)
username: redmine
password: senha_redmine
Fique atento para alterar os dados no bloco de linhas de
production.
Salve o arquivo.
Os comandos a seguir, devem executados na pasta do Redmine
/opt/redmine{versão}:
# gem install mysql
Instalar o bundler (resolve as dependências dos pacotes em Ruby):
# gem install bundler
Instalar as "Gems" necessárias para o Redmine:
# bundle install --without development test
Obs.: neste caso, o ambiente de desenvolvimento e de teste não serão instalados.
Cria uma chave randômica usada pelo Rails, para prevenir que os cookies seja alterados indevidamente (segurança é sempre bom):
rake generate_secret_token
Cria a estrutura do banco de dados:
RAILS_ENV=production rake db:migrate
Insere os dados "default" no banco de dados:
RAILS_ENV=production REDMINE_LANG=pt-BR rake redmine:load_default_data
Obs.:
REDMINE_LANG=pt-BR indica a linguagem que será usada.
Criar subpastas necessárias e corrigir as permissões (usar usuário do apache2):
# mkdir -p tmp tmp/pdf public/plugin_assets
# chown -R wwwrun:www files log tmp public/plugin_assets
# chmod -R 755 files log tmp public/plugin_assets
Obs.: substituir
www e
wwwrun por seu grupo e usuário do Apache respectivamente.
Agora, está instalado.
Para testar:
# ruby script/rails server webrick -e production
Acessar via browser a aplicação pela URL:
http://servidor:3000/
Se a página do Redmine não aparecer, algo deu errado, comece de novo ou poste sua dúvida aqui.
Configuração do Apache
Uma vez funcionando, está na hora de configurar o Redmine no Apache.
Para funcionar com o Apache, é necessário que tenha o módulo do Passenger (APP e WEB Server) funcionando no Apache. Então, vamos instalar o Passenger (tem uma música bacana com esse nome):
# gem install passenger
Configurar o Passenger:
# passenger-install-apache2-module
Essa configuração é interativa, porém, a única opção para ser alterada é a linguagem de programação que será usada. Escolha Ruby.
O instalador do Passenger irá informar os diretórios usados, essa informação é importante para criar o arquivo de configuração do Redmine no Apache. Portanto, é bom anotá-la para facilitar o processo.
Obs.: pode ser que o comando para instalação mude um pouco, uma vez fui instalar e estava "passenger-install-apache2-module1.9".
Para resolver isso, basta procurar por "passenger-apache2-module**" dentro de
/usr/bin/ e identificar qual o comando correto (digitar:
passenger-install e depois, a boa tecla
Tab também ajuda).
Vou explicar como fazer o Redmine funcionar de duas formas.
1ª forma - Acessar o Redmine usando o nome do servidor onde está instalado:
A URL de acesso ao redmine ficará assim:
http://servidor_do_redmine/redmine
Criar um link na pasta
/srv/www para a pasta do Redmine:
# ln -s /opt/redmine{versão} /srv/www/redmine
Criar um arquivo de configuração no Apache para o Redmine:
# vi /etc/apache2/conf.d/redmine.conf
LoadModule passenger_module /usr/lib64/ruby/gems/1.8/gems/passenger4.0.48/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/lib64/ruby/gems/1.8/gems/passenger-4.0.48
PassengerDefaultRuby /usr/bin/ruby
</IfModule>
DocumentRoot /srv/www
<Directory /srv/www>
RailsEnv production
RackBaseURI /redmine
Options -MultiViews +FollowSymLinks
AllowOverride all
Order allow,deny
Allow from all
</Directory>
Errorlog /var/log/apache2/redmine_error.log
CustomLog /var/log/apache2/redmine_access.log combined
Onde:
- LoadModule passenger_module :: deve apontar para o arquivo do módulo Passenger - informado na instalação do Passenger.
- PassengerRoot :: deve apontar para o diretório raiz de instalação do Passenger - informado na instalação do Passenger.
- PassengerRuby :: deve apontar para o diretório do executável do Ruby - informado na instalação do Passenger, normalmente /usr/bin/.
Salvar o arquivo, restart/reload no Apache e testar.
2ª forma - Usar vhost. O Redmine terá sua própria URL de acesso:
A URL de acesso ao redmine ficará algo parecido com isso:
http://projetosminhaempresa
Criar um arquivo de configuração do Redmine dentro da pastas de vhosts do Apache:
# vi /etc/apache2/vhosts/redmine.conf
LoadModule passenger_module /usr/lib64/apache2/mod_passenger.so
PassengerRoot /usr/lib64/ruby/gems/1.9.1/gems/passenger-3.0.18
PassengerRuby /usr/bin/ruby
<VirtualHost *:80>
ServerName projetosminhaempresa
DocumentRoot /opt/redmine/public
<Directory /opt/redmine/public>
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
allow from all
</Directory>
ErrorLog /var/log/apache2/redmine/redmine_error.log
CustomLog /var/log/apache2/redmine/redmine-access.log
</VirtualHost>
Onde:
- LoadModule passenger_module :: deve apontar para o arquivo do módulo Passenger - informado na instalação do Passenger.
- PassengerRoot :: deve apontar para o diretório raiz de instalação do Passenger - informado na instalação do Passenger.
- PassengerRuby :: deve apontar para o diretório do executável do Ruby - informado na instalação do Passenger, normalmente /usr/bin/.
Neste caso, deve ser cadastrado um alias no DNS para o endereço
projetosminhaempresa apontar para o IP da máquina onde está instalado o Redmine.
Salvar o arquivo, restart/reload no Apache e testar.
Conclusão
Jovens, espero que tenham gostado do meu primeiro artigo.
Se tiverem alguma dúvida, sintam-se livres para perguntar. Em breve, espero (conseguir tempo) escrever um artigo sobre como integrar o Redmine com o Subversion.