Instalando o Noosfero no Debian 7.0 (Wheezy) com Nginx e Phushion Passenger

Publicado por Marcelo Soares Souza em 12/11/2012

[ Hits: 6.892 ]

Blog: https://agroecologymap.org/

 


Instalando o Noosfero no Debian 7.0 (Wheezy) com Nginx e Phushion Passenger



Este tutorial mostrará como instalar a plataforma para redes sociais e de economia solidária Noosfero, desenvolvida em Ruby on Rails, utilizando o módulo para implantação de aplicativos Ruby Phushion Passenger sobre o servidor Web de alta performance Nginx no GNU/Linux Debian 7.0 - Wheezy.

Neste tutorial usaremos o PostgreSQL como banco de dados.

1. Preparando o ambiente

1.1. Primeiro vamos instalar as dependências para o Noosfero, PostgreSQL, Nginx e Phushion Passenger. Como administrador do sistema (root):

# nano /etc/apt/sources.list

1.2. Acrescente as seguintes linhas ao final do arquivo, salve (CTRL + o) e saia do Nano (CTRL + x):

deb http://ftp.br.debian.org/debian wheezy main contrib
deb-src http://ftp.br.debian.org/debian wheezy main contrib

1.3. Atualize a base de pacotes local:

# apt-get update

1.4. Instale as dependências para o Noosfero, PostgreSQL, Nginx e Phushion Passenger:

# apt-get build-dep nginx -y
# apt-get build-dep ruby-passenger -y
# apt-get install git rubygems1.8 postfix postgresql-9.1 postgresql-client-9.1 postgresql-server-dev-9.1 po4a rcov iso-codes openjdk-6-jre tango-icon-theme libxslt1-dev libxml2-dev memcached bzip2 -y


* Opcionalmente, limpe o cache dos pacotes baixados com o comando:

# apt-get clean

1.5. Troque a versão do Ruby padrão do Debian Wheezy (1.9.1) para o Ruby 1.8.

Alterando o Ruby:

# update-alternatives --config ruby

Escolha a opção: /usr/bin/ruby1.8

Alterando o Ruby Gem:

# update-alternatives --config gem

Escolha a opção: /usr/bin/gem1.8

2. Instalando o Phushion Passenger

2.1. Baixe o código-fonte do Phushion Passenger do Git (repositório de código-fonte).

Clonando o repositório Git do Phushion Passenger:

# git clone https://github.com/FooBarWidget/passenger.git

Faça checkout da última versão estável do Phusion Passenger (3.0.18):

# cd passenger
# git checkout release-3.0.18


2.2. Compilando e criando o pacote Gem do Phushion Passenger.

Instale o gerenciador de tarefas Rake:

# gem install rake
# rake package


2.3. Instale a Gem do Phusion Passenger:

# gem instal pkg/passenger-3.0.18.gem

3. Instalando o Nginx com suporte ao Phusion Passenger

3.1. Baixe o código-fonte do nginx e descompacte:

# cd ~
# wget -c
http://nginx.org/download/nginx- 1.3.8.tar.gz
# tar xvf nginx-1.3.8.tar.gz

3.2. Configure e compile o Nginx:

# cd nginx-1.3.8

# ./configure --sbin-path=/usr/sbin --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log -- pid-path=/var/run/nginx.pid --lock-path=/var/lock/nginx.lock --http-log-path=/var/log/nginx/access.log --http-client- body-temp-path=/var/lib/nginx/body --http-proxy-temp-path=/var/lib/nginx/proxy --http-fastcgi-temp- path=/var/lib/nginx/fastcgi --with-debug --with-http_stub_status_module --with-http_flv_module --with- http_ssl_module --with-http_dav_module --with-ipv6 --with-poll_module --with-pcre --with-http_gzip_static_module -- add-module=/var/lib/gems/1.8/gems/passenger-3.0.18/ext/nginx

# make
# make install


Crie o diretório /var/lib/nginx/body:

# mkdir -p /var/lib/nginx/body

4. Instalando o Noosfero

4.1. Baixe o código fonte do Noosfero:

# cd ~
# mkdir /var/lib/noosfero


Clonado repositório do Noosfero:

# git clone https://git.gitorious.org/noosfero/noosfero.git /var/lib/noosfero/current

Crie diretórios/links auxiliares ao Noosfero:

# mkdir /var/run/noosfero
# mkdir /var/log/noosfero
# mkdir /var/tmp/noosfero
# mkdir -p /var/tmp/noosfero/solr
# ln -s /var/tmp/noosfero /var/lib/noosfero/current/tmp
# ln -s /var/run/noosfero /var/lib/noosfero/current/tmp/pids
# ln -s /var/log/noosfero /var/lib/noosfero/current/log


Defina Dono/Grupo www-data para o Noosfero:

# chown www-data.www-data /var/lib/noosfero /var/run/noosfero /var/log/noosfero /var/tmp/noosfero- R

4.1.1. Alterando o Gemfile:

# rm /var/lib/noosfero/current/Gemfile
# rm /var/lib/noosfero/current/Gemfile.lock


Crie um novo arquivo Gemfile:

# nano /var/lib/noosfero/current/Gemfile

Adicione ao Gemfile:

source 'https://rubygems.org'
gem 'rails', '2.3.14'
gem 'rack', '~> 1.1.0'
gem 'bundle'
gem 'pg'
gem 'i18n'
gem 'will_paginate', '2.3.12'
gem 'gettext'
gem 'RedCloth'
gem 'hpricot'
gem 'cucumber', '0.4.0'
gem 'webrat', '0.5.1'
gem 'sunspot_rails'
gem 'builder'
gem 'nokogiri', '~>1.5.5'

Instale as dependências do Ruby e Noosfero:

# cd /var/lib/noosfero/current
# gem install bundle
# bundle install


4.2. Alterando o Noosfero para trabalhar com uma versão mais nova do Ruby on Rails.

Edite o arquivo config/environment.rb:

# nano /var/lib/noosfero/current/config/environment.rb

Alterar a linha:
RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION

Para:

RAILS_GEM_VERSION = '2.3.14' unless defined? RAILS_GEM_VERSION

4.3. Configurando o banco de dados PostgreSQL:

# nano /etc/postgresql/9.1/main/postgresql.conf

Descomente a linha (Retirar o #):
#listen_addresses = 'localhost'

Alterar modo de acesso ao banco de dados:

# nano /etc/postgresql/9.1/main/pg_hba.conf

Alterar a linha:
hostall all ::1/128 md5

Para:

hostall all ::1/128 trust

Reinicie o PostgreSQL:

# /etc/init.d/postgresql restart

4.4. Configurando o acesso ao banco de dados do Noosfero:

# nano /var/lib/noosfero/current/config/database.yml

Adicionar ao arquivo config/database.yml:

development:
adapter: postgresql
database: noosfero_development
username: postgres
password:
host: localhost

test: &TEST
adapter: postgresql
database: noosfero_test
username: postgres
password:
host: localhost

production:
adapter: postgresql
database: noosfero_production
username: postgres
password:
host: localhost

cucumber:
<<: *TEST

4.4.1. Criando o banco de dados noosfero_production:

# createdb -U postgres -h localhost noosfero_production

4.4.2. Criando o schema do banco de dados:

# RAILS_ENV=production bundle exec rake db:schema:load
# RAILS_ENV=production bundle exec rake noosfero:translations:compile


4.4.3. Carregando dados de exemplo no banco de dados do Noosfero:

# RAILS_ENV=production ./script/sample-data

4.4.4. Ativando o servidor de busca Apache Solr. Fazendo download:

# RAILS_ENV=production bundle exec rake solr:download

Configurando e iniciando o Solr:

# cp /var/lib/noosfero/current/config/solr.yml.dist /var/lib/noosfero/current/config/solr.yml
# RAILS_ENV=production bundle exec rake solr:start


5. Configurando o Nginx

Apague a configuração antiga do nginx.conf:

# rm /etc/nginx/nginx.conf

Crie/edite um novo arquivo de configuração:

# nano /etc/nginx/nginx.conf

Acrescente ao nginx.conf:

user www-data;
worker_processes 1;

events { worker_connections256; }

http {
include mime.types;
default_typeapplication/octet-stream;
sendfileon;
keepalive_timeout 90;

passenger_root /var/lib/gems/1.8/gems/passenger-3.0.18/;

server {
listen 80;
server_namelocalhost;

passenger_enabled on;
rails_env production;

root /var/lib/noosfero/current/public;

error_log/var/log/nginx/noosfero.error.log;
access_log /var/log/nginx/noosfero.access.log;

error_page 500 502 503 504 /50x.html;
location = /50x.html { root html; }
}
}

Redefina dono/grupo do Noosfero:

# chown www-data.www-data /var/lib/noosfero -R

5.1. Iniciando o servidor web nginx e testando a aplicação em Ruby on Rails. Pare o Apache 2 (caso esteja ativo):

# service apache2 stop

Inicie o nginx:

# nginx

6. Acesse a nova instalação do Noosfero

No navegador: http://localhost

Login: ze
Password: test

Originalmente publicado em:
Outras dicas deste autor

Instalando Friendica no Debian 7.0 Wheezy - Rede social livre e distribuída

Phusion Passenger 4.0 no Nginx - Instalando e testando no Debian Wheezy

Leitura recomendada

G'MIC: adicionando centenas de efeitos ao GIMP

Como criar uma ProgressBar no Gambas

Configurando o Conky para iniciar corretamente no sistema

Visualizando compartilhamentos samba com smb4k

Instalando o VMWare Server no Ubuntu 8.04 64 bits

  

Comentários
[1] Comentário enviado por vcordeiro em 26/12/2013 - 12:53h

Tudo bem Marcelo,

Estou configurando o noosfero para fazer um teste e estou com um problema na criação do schema do bd. Quando executo o comando
RAILS_ENV=production bundle exec rake db:schema:load gera um erro [deprecated] I18n.enforce_available_locales will default to true in the future. If you
really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.

Não consegui localizar onde fica o arquivo de config. Se puder me ajudar com alguma dica para finalizar essa configuração agradeço.



Contribuir com comentário