Configuração de um servidor de produção para o Redmine, em ambiente Windows, servidor http Apache+Mongrel, acessando base de dados armazenada no MySQL. Este post tem a finalidade de descrever esse processo, passo a passo.

Requisitos

Windows XP SP2: este tutorial foi feito utilizando um XP SP2 previamente instalado. Provavelmente funcionará sem problemas em outras versões de Windows.
Apache Webserver 2.x: neste tutorial foi utilizada a versão “Win32 Binary without crypto (no mod_ssl) (MSI Installer)” que pode ser obtida no endereço: http://ftp.unicamp.br/pub/apache/httpd/binaries/win32/apache_2.2.11-win32-x86-no_ssl.msi
One-Click Ruby Installer: neste tutorial foi utilizada a versão “One-Click Ruby Installer 1.8.6-25″ que pode ser obtida no endereço: http://rubyforge.org/frs/download.php/18566/ruby186-25.exe
MySQL: neste tutorial foi utilizada a versão “mysql-essential-5.1.31-win32″ que pode ser obtida no endereço: http://ftp.astral.ro/mirrors/mysql.com/Downloads/MySQL-5.1/mysql-essential-5.1.31-win32.msi
Redmine: neste tutorial foi utilizada a versão “redmine-0.8.1″ que pode ser obtida no endereço: http://rubyforge.org/frs/download.php/51748/redmine-0.8.1.zip

Instalação do Apache Web Server

1.Execute o instalador do Apache Webserver, clicando sobre o arquivo “apache_2.2.11-win32-x86-no_ssl.msi” a partir do Windows Explorer. Clique então sobre o botão “Next”.


2.Selecione a opção “I accept the terms…” e clique sobre o botão “Next”.


3.Clique sobre o botão “Next”.


4.Informe os endereços solicitados e clique no botão “Next”.


5.Selecione a opção “Typical” e clique sobre o botão “Next”.


6.Clique sobre o botão “Change…” para alterar o caminho onde o servidor será instalado.


7.Informe o caminho desejado. Neste tutorial utilizamos o caminho “c:\apache”. Clique sobre o botão “Ok”.


8.Clique sobre o botão “Next”.


9.Clique sobre o botão “Install”.


10.Clique sobre o botão “Finish”.


11.Teste se o servidor foi instalado corretamente, digitando “http://localhost” no campo url do browser. Se tudo estiver ok, a tela apresentada será semelhante a tela abaixo:


Instalação do Ruby

1.Execute o instalador do Ruby, clicando sobre o arquivo “ruby186-25.exe” a partir do Windows Explorer. Clique então sobre o botão “Next”.


2.Clique sobre o botão “I Agree”.


3.Clique sobre o botão “Next”.


4.Informe o caminho desejado. Neste tutorial utilizamos o caminho “c:\ruby”. Clique sobre o botão “Next”.


5.Clique sobre o botão “Install”.


6.Clique sobre o botão “Next”.


7.Clique sobre o botão “Finish”.


Instalação dos pacotes Rails, Mongrel, Win32 Services

1.Os próximos passos serão executados em linha de comando do Windows, para isso clique no botão iniciar do Windows. Clique em “Executar” e na linha de comando digite “cmd” e pressione a tecla “Enter”. Todas as operações levam alguns minutos e é necessário que você esteja conectado à internet.
2.Mude para o diretório “c:\ruby\bin” e digite o comando de atualização do gerenciador de pacotes do Ruby RubyGems:
gem update --system
3.Digite o comando de atualização e instalação do Rails:
Obs: Em uma instalação no Windows Vista tive o seguinte erro:
C:\ruby\bin>gem install rails
ERROR: While executing gem ... (Errno::ENOENT)
No such file or directory - C:\Users\André Dourado

Provavelmente pelo espaço no caminho do diretório. Setei a variável “userprofile” para o diretório do ruby e o problema foi solucionado.
C:\ruby\bin>set userprofile=c:\ruby
gem install rails
4.Digite o comando de atualização e instalação do Mongrel:
gem install mongrel
5.Digite o comando de atualização e instalação do suporte aos serviços Win32:
gem install win32-service
6.Digite o comando de atualização e instalação do mongrel como serviço Win32:
gem install mongrel_service

Instalação do MySQL

1.Execute o instalador do MySQL, clicando sobre o arquivo “mysql-essential-5.1.31-win32.msi” a partir do Windows Explorer. Clique então sobre o botão “Next”.


2.Clique sobre o botão “Next”.


3.Clique sobre o botão “Change”.


4.Entre com o caminho da instalação, no caso “c:\mysql”. Clique sobre o botão “Ok”.


5.Clique sobre o botão “Next”.


6.Clique sobre o botão “Install”.


7.Clique sobre o botão “Next”.


8.Clique sobre o botão “Next”.


9.Clique sobre o botão “Finish”.


10.Clique sobre o botão “Next”.


11.Clique sobre o botão “Next”.


12.Clique sobre o botão “Next”.


13.Clique sobre o botão “Next”.


14.Clique sobre o botão “Execute”.


15.Clique sobre o botão “Finish”.


Instalação do Redmine

1.Clique com o botão da direita sobre o arquivo zip do Redmine e selecione a opção “Extrair tudo…”. Ao abrir o “Assistente para extração” clique no botão “Avançar”. Na próxima tela, no campo de diretório de destino, digite “c:\apache\htdocs”.


2.Para facilitar a navegação pelos diretórios do aplicativo, renomeie o diretório criado pelo Redmine de “redmine-0.8.1” para apenas “redmine”;
3.Copie o arquivo “config\database.yml.example” para “config\database.yml”. Neste tutorial utilizamos o banco de dados MySql, com o usuário “root” sem senha e será executado em nossa máquina local. Para este setup a seção “production:” do arquivo “database.yml”, deve ficar:
production:
adapter: mysql
database: redmine
host: localhost
username: root
password:
encoding: utf8

4.Os próximos passos serão executados em linha de comando do Windows, para isso clique no botão iniciar do Windows. Clique em “Executar” e na linha de comando digite “cmd” e pressione a tecla “Enter”.
5.Mude para o diretório “c:\mysql\bin” e digite o comando de execução do mysql para o usuário “root” no banco de dados mysql.
mysql -u root mysql
6.Crie a estrutura do banco de dados “redmine” com o comando:
create database redmine character set utf8;
7.Saia do MySql digitando o comando “quit” e pressionando a tecla “Enter”.
8.Mude para o diretório do redmine “c:\apache\htdocs\redmine”. Crie a estrutura do banco de dados “redmine”, digitando o comando:
\ruby\bin\rake db:migrate RAILS_ENV=production
9.Insira os dados padrão de configuração no banco de dados, digitando o comando:
\ruby\bin\rake redmine:load_default_data RAILS_ENV=production
Ao ser solicitado para informar a língua desejada, digite “pt-br” e pressione a tecla “Enter”.
10.Instale o serviço que irá executar o servidor Mongrel para o Redmine na porta 4000, digitando o comando:
\ruby\bin\mongrel_rails service::install -N Redmine -c c:\apache\htdocs\redmine -p 4000 -e production
11.Inicie o serviço, digitando o comando:
net start Redmine
12.Através do browser teste se o Redmine está no ar. Acesse o endereço “http:\\localhost:4000\login”


Configuração do Apache

1.Crie o arquivo de configuração de proxy para a aplicação “c:\apache\conf\http-proxy-redmine.conf”, com o seguinte conteúdo:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
ProxyRequests Off


Order deny,allow
Allow from all

Alias /redmine “C:/apache/htdocs/redmine/public”

Options Indexes FollowSymLinks
AllowOverride none
Order allow,deny
Allow from all

ProxyPass /redmine/images !
ProxyPass /redmine/stylesheets !
ProxyPass /redmine/javascripts !

ProxyPass /redmine/ http://127.0.0.1:4000/
ProxyPass /redmine http://127.0.0.1:4000/
ProxyPassReverse /redmine http://127.0.0.1:4000/

2.Edite o arquivo de configuração do Apache “c:\apache\conf\httpd.conf”. Acrescente na última linha do arquivo a seguinte linha:
Include conf/http-proxy-redmine.conf
3.Reinicie o serviço do Apache pelo gerenciador de serviços do Windows.

Configuração do Proxy Reverso

O Rails cria internamente endereços de URL para links de folha de estilo, que faz com que a aplicação não execute da forma correta, através do proxy do Apache. Utilizaremos um plugin do Rails, que altera o modo como as URLs são criadas.
1.Mude para o diretório do redmine “c:\apache\htdocs\redmine”. Instale o plugin, digitando o comando abaixo. Responda para a url base “c:\apache\htdocs\redmine” e para a versão do Rails, escolha a opção “3″:
\ruby\bin\ruby script/plugin install http://svn.napcsweb.com/public/reverse_proxy_fix


2.Reinicie o serviço do Redmine pelo gerenciador de serviços do Windows.

Teste do Redmine pelo Proxy

1.Através do browser teste se o Redmine está no ar, sendo acessado pelo proxy configurado no Apache. Acesse o endereço “http:\\localhost\redmine\login”


Post Relacionados:
Tutorial Redmine – Gráficos no Redmine usando a API do Google Charts
Referências:
Serving Multiple Rails Applications on Windows with Apache and Mongrel
Mongrel Win32 HOWTO