Garumpedia Garum Fundatio

Cerrar Sesión

Descargar e instalar Bazar

De Garumpedia

Este es el manual de instalación y configuración del proyecto Bazar de Garum Fundatio

Contenido

Requisitos del Sistema

Los requisitos hardware recomendados del proyecto Bazar son:

Mínimo Recomendado
CPU 4 cpus 8 – 16 cpus
Memoria 4 GB 8 – 16 GB
Almacenamiento 400 GB 1 TB
Ancho de Banda Internet 100 MB 1000 MB / 1000 MB

Preparando tu sistema para Bazar

El sistema operativo recomendado para instalar bazar es linux, más en concreto la distribución Debian. Se puede usar cualquier otra distribución pero en este manual vamos a describir como se realizaría la instalación con Debian versión 6.

El proyecto Bazar usa el framework de desarrollo rails. Durante el proceso de instalación se instalará rails, ruby (el lenguaje interpretado en el que está escrito rails) y las herramientas de terceros que son necesarias para que funcione rails y bazar.

La versión de ruby recomendada es ruby enterprise versión 1.8.7 2011.03
La versión de rails que se está utilizando es la versión 3.0.7

En cuanto a la base de datos nos hemos decantado por mysql como gestor. Nuestra recomendación a la vista de los últimos resultados y evolución de producto es migrar a mariaDB a corto medio/plazo.

Como gestor de peticiones web usamos nginx + passenger

Los pasos/instalaciones a realizar para preparar nuestro sistema son:

  • (1) Primero instalamos algunos programas y librerias.
apt-get install build-essential zlib1g-dev libssl-dev libreadline5-dev libcurl4-openssl-dev git-core mysql-client libmysqlclient15-dev memcached imagemagick gs

Importante: Bazar usa memcache y la versión tiene que ser >= 1.4 Con versiones inferiores no funcionan las políticas de cache. Debian 6 por ejemplo ya incluye la versión 1.4.6. Se puede revisar la versión instalada con los siguientes pasos:

telnet localhost 11211

teclear:

version

y para salir

quit 

Esto nos dará la versión de memcache instalada. Para salir teclee exit + return>

  • (2) Descargamos ruby enterprise y lo instalamos
wget "http://rubyenterpriseedition.googlecode.com/files/ruby-enterprise-1.8.7-2011.03.tar.gz"
tar zxvf ruby-enterprise-1.8.7-2011.03.tar.gz

Ejecutamos el instalador de ruby-enterprise. Si se baja una versión diferente cambiará el nombre del directorio.

./ruby-enterprise-1.8.7-2011.03/installer

Lanzamos el instalador del módulo passenger-nginx

/opt/ruby-enterprise-1.8.7-2011.03/bin/passenger-install-nginx-module

Enlazamos los binarios de ruby-enterprise para que se conviertan en la versión utilizada por el sistema.

ln -sf /opt/ruby-enterprise-1.8.7-2011.03/bin/rake /usr/bin/rake
ln -sf /opt/ruby-enterprise-1.8.7-2011.03/bin/rails /usr/bin/rails
ln -sf /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby /usr/bin/ruby
ln -sf /opt/ruby-enterprise-1.8.7-2011.03/bin/bundle /usr/bin/bundle

Descargar Bazar

La última versión del proyecto bazar está online en github. Lo primero que haremos será crearnos un directorio para instalar la aplicación:

mkdir /opt/garum && cd /opt/garum

Una vez situados en este directorio nos bajaremos la aplicación:

git clone git@gaman.coop:/proyectos/git/Bazar.git
git clone git@gaman.coop:/proyectos/git/bazarcms.git

Con la primera linea nos bajamos el core del Proyecto Bazar y con la segunda el módulo de bazarcms.

Ahora debería ir al directorio Bazar

cd Bazar 

Antes de ejecutar el proceso de instalación cree y configure la base de datos de bazar.

  • Configuración de la base de datos

Cree la base de datos:

#mysql -h localhost -u <su_nombre_usuario> -p
>CREATE DATABASE bazar  DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
>exit

La aplicación Bazar usa el fichero database.yml del directorio config/ para determinar cual va a ser la base de datos de bazar y como conectarse a ella.

Este fichero no se incluye en la instalación de Bazar. Debe copiar el contenido y modificarlo según su configuración de base de datos: como se llama la base de datos, usuario y password, donde está el servidor de base de datos, tipo de base de datos.

Esta es la configuración que incluye el fichero database.yml.example:

# esta es la configuración de ejemplo
# modificala de acuerdo con tu configuración
# de mysql
defaults: &defaults
 adapter: mysql2
 encoding: utf8
 reconnect: false
 pool: 5
 username: bazar
 password: secreta
development:
 database: bazar_development
 socket: /var/run/mysqld/mysqld.sock
 <<: *defaults
test:
 database: bazar_test
 socket: /var/run/mysqld/mysqld.sock
 <<: *defaults
production:
 database: bazar
 host: mysqlserver
 <<: *defaults


Donde:

username: bazar 
password: secreta

bazar es el usuario con permisos para la base de datos secreta es el password del usuario bazar

El acceso se puede hacer por host o por socket:

host: mysqlserver
socket: /var/run/mysqld/mysqld.sock


Donde mysqlserver es el nombre del servidor mysql

Instalar Bazar

El siguiente paso después de Descargar Bazar será movernos al directorio de bazar para terminar la instalación. Esto lo lograremos con:

cd Bazar


Una vez realizado este paso es necesario cargar los registros iniciales de la base de datos.

sh -x install.sh

Este proceso instalará el software, y si es necesario, recompilará para optimizar en su máquina local. Además generará los ficheros necesario para cada una de las gemas que usa Bazar.

Configurar Bazar

Bazar Garum requiere algunos pasos adicionales para el paso a producción.

Configuración de los párametros básicos del bazar

El usuario de administrador por defecto de bazar es:

usuario: admin
password: garum2011

Importante: Cambie la clave por defecto

Estando logueado con este usuario acceda a las opciones avanzadas con el siguiente enlace:

http://tu_dominio.com/clusters

o

http://tu_subdominio.tu_dominio.com/clusters

Importante: Esto va a depender de tu instalación

y pulsando en el icono:

Opciones avanzadas.png

Le aparecerá un menú como este debajo de la cabecera:


Menus de administración.png

Si hace click en el botón de Administrador le aparecerá este submenú:


Opciones administracion desplegadas.png

Debe configurar los siguientes parámetros:

Parametros de configuracion.png

Titular: Texto que aparecerá en todas la páginas de bazar.

Subtitular: Texto del subtitular de todas páginas de bazar.

CorreoAdmin: Correo de administrador del sistema.

BazarId: Número único del bazar. Este número es fundamental y se lo faciltará la fundación garum una vez que se haya dado de alta el bazar en el sistema.

Inclusión en el cron de las siguientes tareas:

21 3 * * * sh -c "cd /opt/garum/Bazar; RAILS_ENV=production rake bazar:actualiza >> /tmp/actualiza.log"
21 3 * * * sh -c "cd /opt/garum/Bazar; RAILS_ENV=production rake sitemap:refresh  >> /tmp/actualiza.log"

En general conviene seleccionar las tareas del cron a una hora con poca actividad. En el caso del proceso “actualiza” recoge información de otros bazares para entre otras cosas almacenar en local el número de empresas asociado a un sector empresarial. El primer número el minuto en el que se lanzará y el segundo a que hora. Esta tarea se lanza todos los días. Puede cambiarlo a la hora que le parezca más adecuado y le recomendamos que no use los mismo valores que en el ejemplo para que no coincida con otros bazares.

La tarea sitemap:refresh es la encargada de generar y enviar los sitemaps del bazar a losprincipales buscadores (google, yahoo, bing, ask). Es una buena frecuencia enviarlos una vez al día pero si cree que esta frecuencia debería ser mayor por la actividad del bazar, modifique la configuración del cron como le parezca más adecuada.

Otras configuraciones

Carga de la base de datos inicial

La base de datos de bazar inicialmente esta vacía. Hay una base de datos con los datos mínimos que requiere bazar:

  • Registros con los sectores de actividad.
  • Países
  • Ciudades.
  • Un usuario.

Solo se crea el usuario admin con password garum2011.

Para cargarla ejecute el siguiente programa:

mysql <nombrebasededatos> -u <usuario> -p < ini.sql

Donde:

<nombrebasededatos> es la base datos que ha metido en la configuración de base de datos. Por defecto es bazar si ha usado el fichero de configuración de ejemplo.

<usuario> es el usuario que ha definido al crear la base de datos.

Ejemplo de configuración de nhttp://garumfundatio.org/garumpedia/P%C3%A1gina_Principalginx + passenger

Hemos incluido en el directorio otros un ejemplo de configuración para nginx. Si ha seguido los pasos de esta instalación este fichero debería estar en:

/opt/nginx/conf/nginx.conf

Si ha instalado nginx + passenger por su cuenta revise y modifique el fichero que ha creado su instalador. Además hemos incluido en el directorio 'otros' de la aplicación Bazar una copia de ejemplo del fichero nginx.conf.

El contenido del fichero nginx.conf es:

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    passenger_root /opt/ruby-enterprise-1.8.7-2011.03/lib/ruby/gems/1.8
/gems/passenger-3.0.7;
    passenger_ruby /opt/ruby-enterprise-1.8.7-2011.03/bin/ruby;

    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

   server {
       listen       80;
       server_name bazar.garumfundatio.org;
       access_log  logs/$host.log;
       location / {
           root /opt/garum/Bazar/public;
           index  index.html index.htm;
           passenger_enabled on;
           rails_env "production";
       }
   }


    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #} 

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #} 

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
 

    # another virtual host using mix of IP-, name-, and port-based   
configuration

    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias; 

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
  

    # HTTPS server
    #
    #server {
    #    listen       443;
    #    server_name  bazar.garumfundatio.org;

    #    ssl                  on;
    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_timeout  5m;

    #    ssl_protocols  SSLv2 SSLv3 TLSv1;
    #    ssl_ciphers   
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    #    ssl_prefer_server_ciphers   on;

    #    location / {
    #        root   /opt/garum/Bazar/public;
    #        index  index.html index.htm;
    #    }
    #}

}

Las textos marcados en negrita son los que debería cambiar para personalizar su bazar y/o si decide instalar la aplicación de bazar en otro directorio.

Configuración del Servidor SMTP

Bazar Garum envía correos y da por echo que hay un servidor SMTP instalado. La configuración del servidor SMTP es la siguiente:

ActionMailer::Base.smtp_settings = {
         :address
         => "localhost",
         :port
         => 25,
         :domain
         => "garumfundatio.org",
         :enable_starttls_auto => false
}

Configure su servidor para que el puerto 25 este escuchando un servicio SMTP que se encargue de enviar los correos. No modifique esta configuración se actualizará periódicamente. Tiene que configurar un servidor SMTP y/o hacerlo funcionar en modo relay para que gestione el envio de correos.

Configuración de memcache

Bazar Garum usa memcache. Este es el fichero de configuración de memcache por defecto:

# memcached default config file
# 2003 - Jay Bonci <jaybonci@debian.org>
# This configuration file is read by the start-memcached script provided as
# part of the Debian GNU/Linux distribution.
# Run memcached as a daemon. This command is implied, and is not needed for the
# daemon to run. See the README.Debian that comes with this package for more
# information.
-d
# Log memcached's output to /var/log/memcached
logfile /var/log/memcached.log
# Be verbose
# -v
# Be even more verbose (print client commands as well)
# -vv
# Start with a cap of 64 megs of memory. It's reasonable, and the daemon
default
# Note that the daemon will grow to this size, but does not start out holding  
this
much
# memory
-m 64
# Default connection port is 11211
-p 11211
# Run the daemon as root. The start-memcached will default to running as root 
if
no
# -u command is present in this config file
-u nobody
# Specify which IP address to listen on. The default is to listen on all IP
addresses
# This parameter is one of the only security measures that memcached has, so 
make
sure
# it's listening on a firewalled interface.
-l 127.0.0.1
# Limit the number of simultaneous incoming connections. The daemon default is
1024
# -c 1024
# Lock down all paged memory. Consult with the README and homepage before you 
do
this
# -k
# Return error when memory is exhausted (rather than removing items)
# -M
# Maximize core file limit
# -r

La memoria por defecto son 64Mb, si tiene memoria suficiente le recomendamos que lo incremente.

Si por ejemplo tiene 8Gb de memoria podría ponerlo a 512Mb/1Gb. Muchas de las peticiones se resolveran en 10/20 veces menos tiempo y podrá tener más usuarios simultáneos con mejores resultados.

Herramientas personales
TOOLBOX
LANGUAGES