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: