Idioma
Categoria
Pesquisar

Instalando Redmine 4 no Linux Slackware 14.2

Aplicação web de código aberto para gerenciamento de projetos, escrito usando Ruby on Rails, que é poderoso framework para desenvolvimento de aplicações web

Em Open Source Por Rudi Drusian Lange
Publicado em
Última atualização

Com o Redmine é possível definir permissões e regras para cada usuário do sistema, logar e planejar o tempo gasto, customizar os campos relacionados as tarefas e projetos, acompanhar cada projeto através de gráficos Ganttt e calendário, definir status e porcentagem concluída de cada tarefa, gerar versões para um software definindo o roadmap de conclusão. Também é possível criar Wiki, Forum, News, repositórios, adicionar documentos entre outras funcionalidades.

Este artigo demonstra de forma simples como como instalar o Redmine no Slackware. Para que a aplicação fique online em modo de produção, será necessário habilitar um modulo para que o apache possa executar a linguagem Ruby, podem ser utilizados módulos como fast_cgi ou fcgid, porém para esta instalação foi escolhido o modulo passenger por sua maior simplicidade e eficiência.

  • Ambiente de instalação
  • Redmine 2019-12-20 v4.0.6
  • Ruby 2.3.8 - versões suportadas 2.3, 2.4, 2.5, 2.6
  • Rails 5.2.4.2
  • Distribuição Slackware 14.2 x86_64
  • Banco de dados MariaDB 10.0.38

O slackware 14.2 possui a versão do Ruby 2.2.10 disponível para instalação mas para este artigo será necessário usar uma versão mais recente. Comecemos com esta atualização, a versão utilizada foi a 2.3.8, veja as versões suportadas em ambiente de instalação, o download pode ser feito na página do projeto Ruby.

Caso esteja usando o Slackware Current provavelmente já terá uma versão mais recente instalada e poderá pular esta etapa. A instalação será demonstrada abaixo, para melhor entendimento do processo utilizado veja este artigo.

# Shell

cd /usr/local/src/
mkdir ruby
cd ruby

# Download do SlackBuild
wget --passive-ftp ftp://ftp.slackware-brasil.com.br/slackware64-14.2/source/d/ruby/*

# Download do Ruby
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.8.tar.gz

chmod +x ruby.SlackBuild
./ruby.SlackBuild

# Instale
installpkg /tmp/ruby-2.3.8-x86_64-1.txz

# Ou atualize
upgradepkg /tmp/ruby-2.3.8-x86_64-1.txz

Agora entre no diretório onde deseja baixar o redmine, neste caso será utilizado /home/www. Baixe a última versão estável através do subversion, este é o método mais fácil de instalar e para atualizar basta executar o comando svn update dentro do diretório de instalação do redmine, outros métodos de download estão disponíveis no site do redmine.

$ Shell

cd /home/www
svn co https://svn.redmine.org/redmine/branches/4.0-stable redmine-4.0
cd redmine-4.0

Banco de dados

Acesse o mysql.

$ Shell

mysql -u root -p

Crie o banco de dados e o usuário para para acessá-lo.

MySQL

CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'minha_senha';
GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';

Dentro do diretório do redmine faça uma cópia do arquivo config/database.yml.example para config/database.yml.

$ Shell

cp config/database.yml.example config/database.yml

Acesse o arquivo config/database.yml e faça as alterações deixando conforme abaixo:

database.yml

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: "minha_senha"
  encoding: utf8

Gems

O Redmine utiliza bundler para instalar as dependências gems. Gems são plugins ou bibliotecas que são instaladas para atender necessidades específicas . Instale o bundler.

# Shell

gem install bundler

Agora instale os gems requeridos pelo Redmine.

# Shell

bundle install --without development test

Gere a chave randômica utilizada pelo Ruby para armazenar os cookies da sessões.

# Shell

bundle exec rake generate_secret_token

Banco de dados

Dentro do diretório de redmine crie a estrutura do banco de dados com o comando:

# Shell

RAILS_ENV=production bundle exec rake db:migrate

Insira os dados padrões no banco de dados utilizando o comando abaixo, será solicitado a escolha da linguagem padrão.

# Shell

RAILS_ENV=production bundle exec rake redmine:load_default_data

Permissões do sistema de arquivos

A conta de usuário executando a aplicação deve ter permissão nos seguintes subdiretórios:

  • files armazenamento de anexos
  • log arquivo de log da aplicação em produção
  • tmp e tmp/pdf crie estes diretórios se não existirem, são usados na geração de documentos pdf entre outras coisas
  • public/public_assets plugins

As permissões serão concedidas para o usuário e grupo do apache já que é este que irá executar a aplicação. Lembre-se de utilizar o usuário root e de executar os comandos abaixo dentro do diretório do redmine.

# Shell

cd /home/www/redmine-4.0/
mkdir -p tmp tmp/pdf public/plugin_assets
chown -R apache:apache files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

Testando a instalação

Se tudo correu normalmente o Redmine já estará instalado, e poderá ser testado utilizado o WEBrick web server. Utilize este método somente para efeito de testes, para ambiente de produção iremos instalar o módulo passenger para o apache. Execute o comando:

# Shell

bundle exec rails server webrick -e production

Agora acesse a url: http://localhost:3000 com login admin e senha admin, será solicitada a troca da senha. No menu Administração->Configurações podem ser personalizadas a maioria das opções da aplicação.

Habilitando o módulo passenger

Instale a gem passenger.

# Shell

gem install passenger

A instalação do módulo do apache é interativa, após executado o comando abaixo será perguntada a linguagem de programação que deseja habilitar, antes do final será requisitado que se edite o arquivo de configuração do apache, httpd.conf, e acrescente algumas linhas.

Se o local de instalação do apache for diferente do padrão da distribuição, por exemplo se o apache estiver instalado em /usr/local/apache, execute o comando passando o parâmetro --apxs2-path /usr/local/apache/bin/apxs.

# Shell

passenger-install-apache2-module

# Deixe somente Ruby selecionada utilizando a barra de espaço para marcar/desmarcar as opções e então pressione enter

Which languages are you interested in?

Use space to select.
If the menu doesn't display correctly, press '!'

 ‣ ⬢  Ruby
   ⬡  Python
   ⬡  Node.js
   ⬡  Meteor

Quando aparecer a mensagem abaixo:

# Shell

Almost there!

Please edit your Apache configuration file, and add these lines:

LoadModule passenger_module /usr/lib64/ruby/gems/2.3.0/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/lib64/ruby/gems/2.3.0/gems/passenger-6.0.4
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

After you restart Apache, you are ready to deploy any number of web applications on Apache, with a minimum amount of configuration!

Press ENTER when you are done editing.

Abra um novo terminal e edite o apache acrescentando as linhas informadas acima no arquivo httpd.conf. Repare que se estiver usando versões de pacotes diferentes das utilizadas neste artigo estas linha irão diferir, portanto copie às a partir do resultado da execução do comando.

httpd.conf

LoadModule passenger_module /usr/lib64/ruby/gems/2.3.0/gems/passenger-6.0.4/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/lib64/ruby/gems/2.3.0/gems/passenger-6.0.4
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

Reinicie o apache.

# Shell

apachectl restart

Agora retorne ao comando de compilação do módulo do apache e pressione enter para iniciar a validação e finalizar o script.

# Shell

Validating installation...

 * Checking whether this Passenger install is in PATH... ✓
 * Checking whether there are no other Passenger installations... ✓
 * Checking whether Apache is installed... ✓
 * Checking whether the Passenger module is correctly configured in Apache... ✓

Everything looks good. :-)

Finalizando e testando

Existem diferentes formas de criar uma hospedagem virtual, do inglês virtual host, neste exemplo o acesso será realizado através do protocolo https na maquina local, não na rede.

Comece pelo o arquivo /etc/hosts, adicione um nome para ser utilizado na url do acesso.

/etc/hosts

127.0.0.1   redmine.lan.br

Configure o virtual host no apache:

httpd.conf

<VirtualHost redmine.lan.br:80>
	ServerName redmine.lan.br
	DocumentRoot /home/www/redmine-4.0/public/
	Redirect / https://redmine.lan.br/
</VirtualHost>

<VirtualHost redmine.lan.br:443>
	ServerName redmine.lan.br
	ServerAlias redmine.lan.br
	DocumentRoot /home/www/redmine-4.0/public/
	<Directory "/home/www/redmine-4.0/public/">
		SSLRequireSSL
		AllowOverride All
		Options Indexes MultiViews FollowSymLinks
		Require all granted
	</Directory>
</VirtualHost>

Reinicie novamente o apache:

# Shell

apachectl restart

Acesse a url https://redmine.lan.br para ter acesso ao redmine.

Configurações ↓

Screenshot Redmine - Menu configurações

Gantt ↓

sreenshot-redmine

Calendário ↓

Screenshot Redmine Calendário