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:
Le aparecerá un menú como este debajo de la cabecera:
Si hace click en el botón de Administrador le aparecerá este submenú:
Debe configurar los siguientes parámetros:
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.

