Ir para o conteúdo
ou

Software livre Brasil

 Voltar a Blog do Marc...
Tela cheia

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

8 de Novembro de 2012, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.
Visualizado 572 vezes

Logo DebianEste tutorial mostrara 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 Passenger Phusion 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 Passenger Phusion. Como administrador do sistema (root)

  nano /etc/apt/sources.list

Logo Nginx1.2) Acrescente as seguintes linhas no 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 Passenger Phusion

  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


Logo Phusion Passenger  * 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

Logo PostgreSQL2) Instalando o Phusion Passenger

2.1) Baixe o código-fonte do Passenger Phusion do Git (Repositório de Código-Fonte)

  - Clonando o repositório Git do Passenger Phusion

  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 Phusion 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 depedê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

  - Edit 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

  host    all             all             ::1/128                 md5

  - Para

  host    all             all             ::1/128                 trust

  - Re-inicie 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_connections  256; }

  http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile      on;
    keepalive_timeout 90;

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

    server {
        listen       80;
        server_name  localhost;

        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 Apache2 (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


Tags deste artigo: linux gnu postgresql tutorial web noosfero phusion passenger nginx software livre ruby on rails ruby redes sociais livres colivre economia solidária debian