Proyecto

General

Perfil

GONG_GOR_2.46_Manual_instalacion_v1.0.txt

Plexus Plexus, 2015-07-03 13:35

Descargar (14,5 KB)

 
1
-------------------------------------------
2
| MANUAL DE INSTALACIÓN DE GONG-GOR  v2.x |
3
-------------------------------------------
4

    
5

    
6
################################################################################
7
 Copyright 2010-2013 Free Software's Seed (Semilla de Software Libre), CENATIC y IEPALA
8

    
9
 Licencia con arreglo a la EUPL, Versión 1.1 o –en cuanto sean aprobadas por la Comisión Europea– 
10
 versiones posteriores de la EUPL (la «Licencia»);
11
 Solo podrá usarse esta obra si se respeta la Licencia.
12
 Puede obtenerse una copia de la Licencia en:
13

    
14
 http://www.osor.eu/eupl/european-union-public-licence-eupl-v.1.1
15

    
16
 Salvo cuando lo exija la legislación aplicable o se acuerde por escrito, 
17
 el programa distribuido con arreglo a la Licencia se distribuye «TAL CUAL»,
18
 SIN GARANTÍAS NI CONDICIONES DE NINGÚN TIPO, ni expresas ni implícitas.
19
 Véase la Licencia en el idioma concreto que rige los permisos y limitaciones que
20
 establece la Licencia.
21
################################################################################
22

    
23

    
24

    
25

    
26

    
27
La instalación descrita fue efectuada sobre Debian 6.0 (Squeeze) y Ubuntu 11.04 (Natty).
28
Es posible realizar los mismos pasos en cualquier otro sistema operativo, aunque algunos
29
detalles es posible que sean distintos.
30

    
31

    
32
NOTAS:
33

    
34
- Sobre la versión de GONG-GOR
35

    
36
El presente documento está realizado para la instalación de GONG-GOR en versiones 2.30 en adelante.
37

    
38
Si desea instalar una versión anterior, diríjase al documento de instalación:
39

    
40
https://gong.org.es/svn/gong/tags/gong-gor-2.19/INSTALL
41

    
42
Si desea actualizar GONG-GOR desde una versión < 2.30, póngase en contacto con la comunidad de desarrollo
43
de GONG en:
44

    
45
gong@gong.org.es
46

    
47

    
48
- Sobre el gestor de BBDD
49

    
50
Aunque el proceso es similar utilizando una BBDD sqlite o postgress, este documento se refiere a
51
la instalación sobre un motor de BBDD MySQL y no incluye los pasos específicos para otros gestores 
52
de BBDD. Se asume que MySQL está correctamente instalado y configurado, así como el cliente
53
local de MySQL desde línea de comandos. En la siguiente URL se describe el proceso de instalación:
54

    
55
http://www.debianadmin.com/mysql-database-server-installation-and-configuration-in-debian-2.html
56

    
57

    
58
- Sobre el servidor web
59

    
60
Aunque el uso de otro servidor web es posible, en este manual se utiliza Apache2. Se asume que Apache2
61
está correctamente instalado y configurado. En caso de no ser así, siga la siguiente guía:
62

    
63
https://help.ubuntu.com/12.04/serverguide/httpd.html
64

    
65

    
66
Convenciones
67

    
68
  * Una linea que empieza por "$" indica el prompt bash en consola. A no ser que se especifique lo contrario,
69
    los comandos se ejecutarán como el usuario root.
70

    
71
  * Una linea que empieza por "mysql>" indica el prompt en la consola de mysql.
72

    
73

    
74

    
75
*********************************************************************************************
76

    
77
Indice
78
1.- Instalación
79
  1.1.- Instalación de dependencias
80
  1.2.- Instalación de GONG-GOR
81
  1.3.- Instalación del entorno de ejecución
82
  1.4.- Instalación del generador de PDFs
83
  1.5.- Instalación de módulos de Apache
84
2.- Configuración
85
  2.1.- Configuración de Apache
86
  2.2.- Creación de la BBDD de GONG-GOR
87
  2.3.- Configuración de la BBDD en GONG-GOR
88
  2.4.- Migración inicial
89
  2.5.- Permisos
90
  2.6.- Listo para empezar
91
3.- Multisitio
92
4.- Problemas conocidos
93
  4.1.- Passenger y multisitio
94

    
95
*********************************************************************************************
96

    
97
1.- Instalación
98

    
99

    
100
1.1.- Instalación de dependencias
101

    
102
Instalaremos las dependencias necesarias:
103

    
104
  $ apt-get install bash curl git build-essential openssl libreadline6 libreadline6-dev \
105
       curl git-core zlib1g zlib1g-dev libgnutls-dev libyaml-dev libsqlite3-0 libsqlite3-dev \
106
       sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool \
107
       libssl-dev bison subversion libmysqlclient-dev subversion imagemagick libmagickwand-dev
108

    
109
y las que necesitaremos para configurar el servidor web:
110

    
111
  $ apt-get install libcurl4-gnutls-dev apache2-prefork-dev libapr1-dev libaprutil1-dev
112

    
113

    
114
1.2.- Instalación de GONG-GOR
115

    
116
El directorio de instalación recomendado para GONG-GOR es bajo /usr/share/gong, aunque es posible otro path
117
de instalación. En primer lugar lo crearemos:
118

    
119
  $ mkdir -p /usr/share/gong
120
  $ cd /usr/share/gong
121

    
122
y descargaremos la copia del último tag estable (el indicado aquí puede cambiar desde la realización de este
123
manual, asegúrese de seleccionar la última versión disponible):
124

    
125
  $ svn export https://gong.org.es/svn/gong/tags/gong-gor-2.30
126

    
127
y renombrándolo a:
128

    
129
  $ mv /usr/share/gong/gong-gor-2.30 /usr/share/gong/gor
130

    
131

    
132
1.3.- Instalación del entorno de ejecución
133

    
134
La instalación del entorno de ejecución podemos realizarla para que afecte a todo nuestro sistema
135
en el caso de vayamos a instalar un servidor dedicado a GONG, o unicamente a un usuario particular
136
en el caso de que no dispongamos de un servidor dedicado para GONG o queramos desarrollar sobre
137
GONG.
138

    
139
Para la instalación de un servidor dedicado ejecutaremos los siguientes comandos como el usuario root,
140
y si queremos una instalación personal, como el usuario que elijamos.
141

    
142
En primer lugar instalaremos RVM (Ruby Version Manager) para gestionar las versiones de ruby y rails:
143
  
144
  $ gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
145

    
146
  $ curl -sSL https://get.rvm.io | bash -s stable --ruby
147

    
148
si la instalación del entorno es para todo el sistema, además ejecutaremos:
149

    
150
  $ source /etc/profile.d/rvm.sh
151

    
152
y si no lo es, incluimos en el entorno del usuario (fichero ~/.bashrc) las siguientes dos líneas:
153

    
154
  # This loads RVM into a shell session.
155
  [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 
156

    
157

    
158
Ejecutaremos el siguiente comando para probar que la instalación de RVM funciona y revisar las
159
dependencias que nos indique la salida de pantalla:
160

    
161
  $ rvm notes
162

    
163
Instalar y configurar ruby:
164

    
165
  $ rvm install 1.9.2
166
  $ rvm --default ruby-1.9.2
167
  $ rvm gemset create gor
168
  $ rvm use 1.9.2@gor --default
169

    
170
y desde el directorio donde hayamos descargado GONG (/usr/share/gong/gor) las gemas necesarias para GONG-GOR:
171

    
172
  $ gem install bundle
173
  $ RAILS_ENV=production bundle install
174

    
175

    
176
1.4.- Instalación del generador de PDFs
177

    
178
Para la generación de algunos informes en PDF, es necesario instalar un generador de PDFs.
179

    
180
En primer lugar, instalaremos los paquetes de fuentes:
181

    
182
  $ apt-get install fontconfig
183

    
184
Luego, si nuestro sistema es de 64bits, el proceso sería
185

    
186
  $ wget https://phantomjs.googlecode.com/files/phantomjs-1.9.2-linux-x86_64.tar.bz2
187
  $ tar xvjf phantomjs-1.9.2-linux-x86_64.tar.bz2
188
  $ mv phantomjs-1.9.2-linux-x86_64/bin/phantomjs /usr/local/bin
189

    
190
y si es de 32bits, el siguiente:
191

    
192
  $ wget https://phantomjs.googlecode.com/files/phantomjs-1.9.2-linux-i686.tar.bz2
193
  $ tar xvjf phantomjs-1.9.2-linux-i686.tar.bz2
194
  $ mv phantomjs-1.9.2-linux-i686/bin/phantomjs /usr/local/bin
195

    
196
Finalmente, comprobamos que la instalación ha sido correcta:
197

    
198
  $ /usr/local/bin/phantomjs --version
199

    
200

    
201
1.5.- Instalación del entorno de ejecución para Apache
202

    
203
Si queremos instalar GONG para utilizarlo y no sólo para desarrollar sobre él, instalaremos el módulo de Apache:
204

    
205
  $ gem install passenger -v=3.0.18
206

    
207
lo compilaremos siguiendo las instrucciones del comando:
208

    
209
  $ passenger-install-apache2-module -a
210

    
211
y lo configuraremos en apache, creando como root el fichero /etc/apache2/mods-available/passenger.load con el contenido:
212

    
213
   LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.2-p320@gor/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
214
   PassengerRoot /usr/local/rvm/gems/ruby-1.9.2-p320@gor/gems/passenger-3.0.18
215
   PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.2-p320@gor/ruby
216

    
217
si estábamos instalándolo en todo el sistema, o con el contenido:
218

    
219
   LoadModule passenger_module /home/USUARIO/.rvm/gems/ruby-1.9.2-p320@gor/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
220
   PassengerRoot /home/USUARIO/.rvm/gems/ruby-1.9.2-p320@gor/gems/passenger-3.0.18
221
   PassengerRuby /home/USUARIO/.rvm/wrappers/ruby-1.9.2-p320@gor/ruby
222

    
223
si estábamos instalando el entorno de ejecución anterior sólo para el usuario USUARIO (sustituya en las líneas anteriores esa
224
cadena por el nombre real del usuario).
225

    
226

    
227
Por último, como usuario root, active el módulo y reinicie Apache:
228

    
229
  $ a2enmod passenger && /etc/init.d/apache2 restart
230

    
231

    
232

    
233
2.- Configuración 
234

    
235

    
236
2.1.- Configuración de Apache
237

    
238
Generamos un nuevo virtual-host en apache copiando el siguiente contenido en el fichero
239
/etc/apache2/sites-available/gong-gor :
240

    
241
<VirtualHost *:80>
242
  ServerName gong.miong.org
243
  DocumentRoot /usr/share/gong/gor/public
244
  <Directory /usr/share/gong/gor/public>
245
    AllowOverride all
246
    Options -MultiViews
247
  </Directory>
248

    
249
  PassengerDefaultUser www-data
250
  RailsEnv production
251
</VirtualHost>
252

    
253
Y lo activamos:
254

    
255
  $ a2ensite gong-gor
256

    
257
NB: hay que reemplazar el nombre del servidor ("ServerName gong.miong.org") bien por
258
"ServerName localhost" si se trata de una instalación para testear (entonces la
259
aplicación será visible en "http://localhost") o bien por un nombre internet válido
260
y entonces la aplicación será visible en "http://gong.miong.org" por ejemplo.
261

    
262

    
263
2.2.- Creación de la BBDD de GONG-GOR.
264

    
265
Crearemos la BBDD 'gong_gor' y el usuario 'gong_gor_user' con password 'gong_gor_user_pass' (todos estos valores
266
se pueden cambiar por los que elijamos para nuestra instalación):
267

    
268
    mysql> create DATABASE gong_gor DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
269
    mysql> grant ALL ON gong_gor.* TO gong_gor_user@'localhost' IDENTIFIED BY 'gong_gor_user_pass';
270
    mysql> grant CREATE VIEW ON gong_gor.* to gong_gor_user@'localhost';
271

    
272

    
273
2.3.- Configuración de la BBDD en GONG-GOR
274

    
275
Copiamos el fichero de ejemplo de definición de conexiones a BBDD:
276

    
277
  $ cp /usr/share/gong/gor/config/database.yml.example /usr/share/gong/gor/config/database.yml
278

    
279
Editaremos en el fichero recién copiado (/usr/share/gong/gor/config/database.yml) los parámetros
280
correctos de BBDD para el entorno de producción (production) según los definidos en el punto anterior
281
anterior de forma que quede algo similar a:
282

    
283
production:
284
  adapter: mysql2
285
  socket: /var/run/mysqld/mysqld.sock
286
  database: gong_gor
287
  username: gong_gor_user 
288
  password: gong_gor_user_pass
289
  encoding: utf8
290

    
291

    
292
2.4.- Migración de Datos inicial
293

    
294
Hacemos la carga inicial de la BBDD ejecutando:
295

    
296
  $ LANG=es_ES RAILS_ENV=production rake db:migrate
297

    
298
cargamos los datos preeliminares de BBDD:
299

    
300
  $ LANG=es_ES RAILS_ENV=production rake db:seed
301

    
302
Cambiando el idioma definido en LANG los datos iniciales cargados en BBDD estarán en el idioma elegido.
303
Actualmente, sólo están disponibles español (es) y portugués (pt).
304

    
305

    
306
2.5.- Permisos
307

    
308
Cambiamos el propietario de los directorios escribibles por el navegador web según el indicado en el punto 2.1 :
309

    
310
  $ chown -R www-data.www-data /usr/share/gong/gor/files
311
  $ chown -R www-data.www-data /usr/share/gong/gor/logs
312
  $ chown -R www-data.www-data /usr/share/gong/gor/tmp
313

    
314

    
315
2.6.- Listo para comenzar
316

    
317
Rearrancamos apache:
318

    
319
  $ /etc/init.d/apache2 restart
320

    
321
y probamos la instalación accediendo con el usuario "admin" y la password "admin".
322

    
323

    
324

    
325
3.- Multisitio
326

    
327
GONG-GOR permite la ejecución multisitio (varias instancias corriendo en la misma máquina) de dos formas:
328

    
329
A.- Instalando GONG-GOR en distintos paths como si fueran aplicaciones distintas y configurándolos
330
adecuadamente en los hosts virtuales de apache
331

    
332
B.- Configurando la variable de entorno GOR_SITEID
333

    
334
Para la segunda posibilidad y suponiendo que queramos instalar las instancias ONG1 y ONG2:
335

    
336
Seguir el paso 1 del manual integramente.
337

    
338
Crear para cada instancia a instalar una BBDD (con nombre de usuario y password distinta para cada BBDD)
339
tal y como se indica en el punto 2.2.
340

    
341
Crear los directorios de logs y configuración:
342

    
343
  $ mkdir -p /etc/gong
344
  $ mkdir -p /var/log/gong
345

    
346
Crear el directorio de cache y asignar permisos:
347

    
348
  $ mkdir -p /var/cache/gong/ong1 && chown www-data.www-data /var/cache/gong/ong1
349
  $ mkdir -p /var/cache/gong/ong2 && chown www-data.www-data /var/cache/gong/ong2
350

    
351
Crear los directorios de datos y asignar permisos:
352

    
353
  $ mkdir -p /var/lib/gong/ong1 && chown www-data.www-data /var/lib/gong/ong1
354
  $ mkdir -p /var/lib/gong/ong2 && chown www-data.www-data /var/lib/gong/ong1
355
  
356
y hacer enlaces simbólicos del código compartido en ellos (ver punto 4.1):
357

    
358
  $ ln -s /usr/share/gong/gor /var/lib/gong/ong1/passenger
359
  $ ln -s /usr/share/gong/gor /var/lib/gong/ong2/passenger
360

    
361
Configurar en apache cada host virtual. En /etc/apache2/sites-available/ong1.miong.org :
362

    
363
<VirtualHost *:80>
364
  ServerName ong1.miong.org 
365
  DocumentRoot /usr/share/gong/gor/public
366
  <Directory /usr/share/gong/gor/public>
367
    AllowOverride all
368
    Options -MultiViews
369
  </Directory>
370

    
371
  SetEnv GOR_SITEID "ong1"
372
  PassengerAppRoot /var/lib/gong/ong2/passenger
373
  PassengerDefaultUser www-data
374
  RailsEnv production
375
</VirtualHost>
376

    
377
y en /etc/apache2/sites-available/ong2.miong.org :
378

    
379
<VirtualHost *:80>
380
  ServerName ong1.miong.org
381
  DocumentRoot /usr/share/gong/gor/public
382
  <Directory /usr/share/gong/gor/public>
383
    AllowOverride all
384
    Options -MultiViews
385
  </Directory>
386

    
387
  SetEnv GOR_SITEID "ong2"
388
  PassengerAppRoot /var/lib/gong/ong2/passenger
389
  PassengerDefaultUser www-data
390
  RailsEnv production
391
</VirtualHost>
392

    
393
Creamos los ficheros de configuración de BBDD tal y como se describe en el punto 2.3
394
pero cambiando sus ubicaciones por /etc/gong/ong1.database.yml y /etc/gong/ong2.database.yml
395

    
396
Hacemos la carga inicial de cada BBDD ejecutando:
397

    
398
  $ cd /usr/share/gong/gor
399
  $ LANG=es_ES RAILS_ENV=production GOR_SITEID=ong1 rake db:migrate
400
  $ LANG=es_ES RAILS_ENV=production GOR_SITEID=ong2 rake db:migrate
401

    
402
cargamos los datos preeliminares de BBDD:
403

    
404
  $ LANG=es_ES RAILS_ENV=production GOR_SITEID=ong1 rake db:seed
405
  $ LANG=es_ES RAILS_ENV=production GOR_SITEID=ong2 rake db:seed
406

    
407
activamos las instancias de apache y rearrancamos:
408

    
409
  $ a2ensite ong1.miong.org
410
  $ a2ensite ong2.miong.org
411
  $ /etc/init.d/apache2 restart
412

    
413

    
414

    
415
4.- Problemas conocidos:
416

    
417

    
418
4.1 Passenger y multisitio
419

    
420
Passenger interpreta una instancia de aplicación según el AppRoot de esta:
421
  http://www.redmine.org/boards/1/topics/16647
422

    
423
por lo tanto y de momento es necesario hacer enlaces simbólicos del código
424
para cada instancia a ejecutar y referirlos como PassengerAppRoot en cada
425
instancia virtual de apache.
426