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

Publicado por Marcelo Soares Souza em 12/11/2012

[ Hits: 6.268 ]

Blog: https://mapadaagroecologia.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

GNU Solfege - Software de aprimoramento musical para Linux

Software Center no Linux Mint

Proxy no Chrome / Chromium em outros WMs

ClamTK - Interface Gráfica do ClamAV

Webcam no Linux de forma simples

  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts