OpenMeetings 3.0.3 en Debian 7

OpenMeetings 3.0.3 en Debian 7

OpenMeetings 3.0.3 en Debian 7 - ImprovisaHace mucho que no escribo un tutorial sobre alguna instalación y la verdad que la instalación de este servicio al no ser fácil y haber poca información actualizada me he decidido a escribir estas lineas por si a alguien le sirve de algo y sobre todo para mi, para dejarme claro como hacerlo de nuevas 😉OpenMeetings 3.0.3 en Debian 7 - Improvisa

Para quien no lo sepa, OpenMeetings es un software para realizar videoconferencias a través de la web y utilizarlo como aula virtual, es un software libre que, como viene siendo de costumbre, instalaremos sobre Debian.

Este aplicativo, que es lo que mas confianza me ha dado, lo lleva Apache y al verdad que a día de hoy es lo más sólido que hay en Internet.

Instalaremos OpenMeetings 3.0.3 con Java JDK 1.8.0_25 sobre base de datos MySQL.

Sin más pasaremos a instalar el servicio en nuestro nuevo sistema:

ACLARACIONES INICIALES:

Para el código que veréis en el howto utilizo lo siguiente: código que tecleo ( NEGRITA CURSIVA ).

Para el código que muestra la pantalla ( CURSIVA ).

OJO a los Saltos de Linea

OJO que a veces al copiar código el caracter ‘ lo copia como ?

OJO que a veces al copiar código el caracter — lo copia como ?

INST­ALACIÓN DEL SISTEMA OPERATIVO:

La instalación del sistema operativo será la estándar, a día de hoy utilizaremos Debian Wheezy.

INSTALACIÓN Y CONFIRUACIÓN DE PAQUETES VARIOS:

De primeras y­ en casi todos los servidores que instalo suelo instalar una serie de paquetes, así que hagámoslo:

improvisa:~# apt-get install gpm ssh vi­m ntpdate tcpdump iptraf

Una vez instalados estos paquetes es posible que tengamos que reconfigurar los locales para tener nuestro sistema en español.

improvisa:~# dpkg-reconfigure locales

Seleccionaremos es_ES.UTF-8 UTF-8 y es_ES@euro ISO-8859-15 y como predeterminado es_ES@euro.

Saldremos de la sesión ssh y volveremos a entrar.

Si utilizáis a Vim como editor de texto tendremos que editar el archivo de configuración de VIM, si utilizáis editor otro pues hacedlo al gusto.

improvisa:~# vi /etc/vim/vimrc

Descomentaremos las lineas:

syntax on
set background=dark

y debajo de esta añadiremos la linea:

set noai

Guardaremos y cerraremos.

MODIFICACIÓN DE REPOSITORIOS

Debemos añadir a los actuales repositorios de Debian los repositorios de debian multimedia. No debemos quitar los repositorios «src» ya que un poco más adelante necesitaremos bajar código fuente para compilarlo en nuestro sistema con lo que debemos sólo añadir los de debian multimedia:

improvisa:~# vi /etc/apt/sources.list

Tendremos que añadir a los repositorios existentes las entradas non-free y contrib para que nos busque también esos paquetes y añadiremos al final las siguientes lineas:

# debian-multimedia
deb http://www.deb-multimedia.org wheezy main non-free

deb-src http://www.deb-multimedia.org wheezy main non-free

Para que al final quede el siguiente archivo:

deb http://ftp.de.debian.org/debian/ wheezy main non-free contrib
deb-src http://ftp.de.debian.org/debian/ wheezy main non-free contrib

deb http://security.debian.org/ wheezy/updates main non-free contrib
deb-src http://security.debian.org/ wheezy/updates main non-free contrib

# wheezy-updates, previously known as ‘volatile’
deb http://ftp.de.debian.org/debian/ wheezy-updates main non-free contrib
deb-src http://ftp.de.debian.org/debian/ wheezy-updates main non-free contrib

# debian-multimedia
deb http://www.deb-multimedia.org wheezy main non-free
deb-src http://www.deb-multimedia.org wheezy main non-free

Actualizaremos y activaremos el repositorio de debian-multimedia

improvisa:~# apt-get update
improvisa:~# apt-get install deb-multimedia-keyring
improvisa:~# apt-get update

INSTALACIÓN DE JAVA 

Necesitaremos para poder montar OpenMeetings 3 la versión de JDK más actualizada, no la Open JDK si no la de Oracle, para poder hacer funcionar el servicio red5, es un servicio que corre en java y será el responsable de la emisión de video streaming.

Necesitaremos descargar como ya he dicho, la versión más actualizada, ahora mismo es la versión jdk1.8.0_25. Descargaremos la versión con el siguiente comando, el link cambiará dependiendo de la versión, arquitectura usada, pero lo que debe quedar claro es que debemos descargar la última versión JDK y en formato tar.gz:

Yo he sacado el link después de aceptar los terminos de licencia y pinchar en el link para descargar del fichero jdk-8u25-linux-x64.tar.gz de la siguiente web,:

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

improvisa:~# cd /usr/src/
improvisa:/usr/src# wget http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-x64.tar.gz?AuthParam=1414663047_5ac93271aeb26a2f963d153a923a9fe5 -o jdk-8u25-linux-x64.tar.gz

Lo descomprimimos:

improvisa:/usr/src# tar -xvzf jdk-8u25-linux-x64.tar.gz

Moveremos a su sitio el directorio descomprimido:

improvisa:/usr/src# mkdir /usr/lib/jvm
improvisa:/usr/src# mv /usr/src/jdk1.8.0_25 /usr/lib/jvm/
improvisa:/usr/src# cd /usr/lib/jvm/
improvisa:/usr/lib/jvm# ln -s jdk1.8.0_25/ default-java

Cambiamos los permisos al directorio que hemos descargado:

improvisa:/usr/lib/jvm# chown root:root /usr/lib/jvm -R

Actualizaremos las alternativas para que Debian utilice el Java recién descargado para los comandos java javac y javaws:

improvisa:/usr/lib/jvm# update-alternatives –install /usr/bin/javac javac /usr/lib/jvm/default-java/bin/javac 1
improvisa:/usr/lib/jvm# update-alternatives –install /usr/bin/java java /usr/lib/jvm/default-java/bin/java 1
improvisa:/usr/lib/jvm# update-alternatives –install /usr/bin/javaws javaws /usr/lib/jvm/default-java/bin/javaws 1
improvisa:/usr/lib/jvm# update-alternatives –config javac
improvisa:/usr/lib/jvm# update-alternatives –config java
improvisa:/usr/lib/jvm# update-alternatives –config javaws

Ahora podemos hacer la prueba de que tenemos la versión de java que queremos al utilizar el comando en consola:

improvisa:/usr/lib/jvm# java -version
java version «1.8.0_25»
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

INSTALACIÓN DE LIBREOFFICE Y SCRIPTS DE INICIO

Desde la primera versión de OpenMeetings, éste necesita del paquete OpenOffice o LibreOffice para poder realizar la conversión de documentos. Más adelante también utilizaremos otro paquete llamado JODConverter que hará la conversión de otros archivos pero que necesita de OpenOffice para poder realizar sus conversiones.

improvisa:/# apt-get install libreoffice-l10n-es

Una vez instaladas todas las office necesitamos ejecutar soffice.bin como demonio y a la escucha en el puerto 8100 para ello crearemos los scripts de inicio que ejecutará office para que JODConverter pueda acceder a el y cambiar los formatos de archivo:

improvisa:/# vi /usr/lib/libreoffice/program/soffice-headless.sh

y pondremos este contenido:

#!/bin/bash
# openoffice.org headless server script
#
unset DISPLAY
/usr/lib/libreoffice/program/soffice "-accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" -nologo -headless -nofirststartwizard

Necesitamos crear otro script para que al iniciar el servidor las Office salten a la escucha en el puerto 8100

improvisa:/# vi /etc/init.d/soffice-headless

y pondremos el siguiente contenido:

#!/bin/bash
# openoffice.org headless server script

### BEGIN INIT INFO
# Provides:             soffice-headless
# Required-Start:       $remote_fs 
# Required-Stop:        $remote_fs
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Should-Start:         $network
# Should-Stop:          $network
# Short-Description:    OpenOffice.org headless server
### END INIT INFO


set -e
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DESC="OpenOffice.org headless server"
NAME=soffice-headless
DAEMON_HOME=/usr/lib/libreoffice/program
DAEMON=$DAEMON_HOME/$NAME.sh
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi
# Function that starts the daemon/service.
d_start() {
start-stop-daemon --start --pidfile "${PIDFILE}" --chdir "${DAEMON_HOME}" --background --make-pidfile --exec $DAEMON
}
# Function that stops the daemon/service.
d_stop() {
start-stop-daemon --stop --quiet --pidfile "${PIDFILE}" --name java
rm -f "${PIDFILE}"
}
case "$1" in
        start)
                echo -n "Starting $DESC: $NAME"
                d_start
                echo "."
                ;;
        stop)
                echo -n "Stopping $DESC: $NAME"
                d_stop
                echo "."
                ;;
        restart|force-reload)
                echo -n "Restarting $DESC: $NAME"
                d_stop
                sleep 1
                d_start
                echo "."
                ;;
        *)
                echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

Le damos permisos a los archivos recientemente creados:

improvisa:/# chmod a+x /etc/init.d/soffice-headless
improvisa:/# chmod a+x /usr/lib/libreoffice/program/soffice-headless.sh

Y acutalizaremos el arranque del sistema para que ejecute en su sitio las office:

improvisa:/# update-rc.d soffice-headless defaults

Arranquemos el servicio nuevo:

improvisa:/# /etc/init.d/soffice-headless start

Y hagamos las comprobaciones oportunas:

improvisa:/# netstat -putan|grep 8100

tcp 0 0 127.0.0.1:8100 0.0.0.0:* LISTEN 1883/soffice.bin

Perfecto continuemos con la instalación de los paquetes necesarios para OpenMeetings:

INSTALACIÓN DE PAQUETES VARIOS PARA OPENMEETINGS

OpenMeetings necesita muchísimos paquetes para su correcta instalación, a día de hoy son paquetes como ImageMagick, Unzip, Lame, Sox, Subversion y alguno que otro más, en el siguiente comando instalaremos lo necesario y y todas las dependecias para poder compilar e instalar todos los progrmaas que necesitamos:

improvisa:/# apt-get install libgif-dev xpdf unzip libfreetype6 libfreetype6-dev libjpeg8 libjpeg62 libjpeg8-dev g++ libjpeg-dev libdirectfb-dev libart-2.0-2 libt1-5 zip unzip bzip2 imagemagick subversion git-core checkinstall yasm texi2html libfaac-dev libfaad-dev libxvidcore-dev libmp3lame-dev libsdl1.2-dev libx11-dev libxfixes-dev zlib1g-dev libogg-dev sox libvorbis0a libvorbis-dev libgsm1 libgsm1-dev libfaad2 flvtool2 lame ghostscript

Si el día que instales OpenMeetings con este manual alguno de los paquetes que ves en el comando esta obsoleto simplemente cambialo.

INSTALACIÓN DE MYSQL, PHPMYADMIN Y CREACIÓN DE BBDD:

OpenMeetings por defecto deja los datos sobre una base de datos interna llamada Apache Derby, yo personalmente prefiero sacar este servicio fuera y poder acceder a las bases de datos, para ello utilizo MySQL y un conector de MySQL para Java. Empezaremos instalando el MySQL y configurando el acceso a la BBDD.

Esta instalación nos pedirá el password del usuario root para MySQL el cual habrá que poner dos veces, luego la instalación de PHPMyAdmin nos pedirá este password para poder crear su base de datos y además nos pedirá otros dos nuevos passwords para el usuario PHPMyAdmin. Yo pongo el mismo password a todos.

improvisa:/# apt-get install mysql-server phpmyadmin

Yo securizo una pizca más PHPMyAdmin poniéndole auth password de Apache, para ello hago lo siguiente:

improvisa:/# vi /etc/apache2/conf.d/phpmyadmin.conf

y modifico el Alias a por ejemplo database y añado el password auth, al final el archivo mencionado queda así:

# phpMyAdmin default Apache configuration

Alias /database /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php

                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_admin_flag allow_url_fopen Off
                php_value include_path .
                php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
                php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/
        </IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authn_file.c>
    AuthType Basic
    AuthName "phpMyAdmin Setup"
    AuthUserFile /etc/phpmyadmin/htpasswd.setup
    </IfModule>
    Require valid-user
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
    Order Deny,Allow
    Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Order Deny,Allow
    Deny from All
</Directory>

<Location /database/>
  AuthName "Acceso a phpMyAdmin"
  AuthType Basic
  AuthUserFile /etc/apache2/passwords/phpmyadmin
  require valid-user
</Location>

Nos falta crear el archivo con el password:

improvisa:/# mkdir /etc/apache2/passwords
improvisa:/# htpasswd -c /etc/apache2/passwords/phpmyadmin miusuario

Reiniciamos el servidor Apache:

improvisa:/# /etc/init.d/apache2 restart

Y probamos a acceder por la web al sistema en la siguiente dirección: http://ip_del_servidor/database

Ahora crearemos la base de datos que necesita OpenMeetings con el siguiente comando, nos pedirá el password de root para mysql:

improvisa:/# mysql -u root -p <<< «CREATE DATABASE openmeetings DEFAULT CHARACTER SET ‘utf8’;»

Creamos el usuario y su password (cambiar) para manejar na la base de datos openmeetings, nos pedirá el password de root para mysql:

improvisa:/# mysql -u root -p <<< «GRANT ALL PRIVILEGES ON openmeetings.* TO ‘openmeetings’@’localhost’ IDENTIFIED BY ‘password_usuario_openmmetings’ WITH GRANT OPTION;»

Actualizamos permisos

improvisa:/# mysql -u root -p <<< «FLUSH PRIVILEGES;»

Si quieres comprobar que todo ha ido bien entra por phpmyadmin o por la consola para ver si la nueva base de datos está.

INSTALACIÓN DE SWFTOOLS

Para instalar swftools lo que tenemos que hacer es bajar el paquete, compilar e instalar. Swftools nos dará el paquete pdf2swf que necesitará openmeetings para realizar conversiones de archivos.

No nos valdrá el paquete que esta en los repositorios porque no esta la aplicación pdf2swf, es por ello que tenemos que dascargar de su web y compilar, vamos allá:

improvisa:/# cd /usr/src
improvisa:/usr/src/# wget http://www.swftools.org/swftools-2013-04-09-1007.tar.gz
improvisa:/usr/src/# tar -xvzf swftools-2013-04-09-1007.tar.gz
improvisa:/usr/src/# cd swftools-2013-04-09-1007

Después de descomprimir lo compilamos e instalamos. El comando checkinstall no s hará una seria de preguntas para crear el paquete .deb, como es la versión, fecha, por si queremos modificarlo, yo lo dejo todo por defecto.

improvisa:/usr/src/swftools-2013-04-09-1007/# ./configure
improvisa:/usr/src/swftools-2013-04-09-1007/# make
improvisa:/usr/src/swftools-2013-04-09-1007/# checkinstall

Veamos si se ha instalado bien:

improvisa:/usr/src/swftools-2013-04-09-1007/# pdf2swf –version
pdf2swf – part of swftools 2013-04-09-1007

INSTALACIÓN DE FFMPEG CON SOPORTE x264

Necesitaremos  instalar FFMpeg, este será uno de los paquetes principales que utiliza OpenMeetings para realizar cambios de video en caliente, lo necesitaremos con soporte para el codec x264, que ofrece alta calidad y compresión.

Yo además de instalar FFMpeg con soporte para x264 lo compilo con con soporte para todo tipo de codecs. Voy detallando la instalación:

Instalamos paquetes necesarios, es posible que nos diga que alguno ya está instalado:

improvisa:/usr/src/# apt-get install libfaad-dev faad faac libfaac0 libfaac-dev libmp3lame-dev x264 libx264-dev libxvidcore-dev build-essential checkinstall

Asegurémonos de tener los repositorios source en el sources-list de apt:

improvisa:/usr/src/# cat /etc/apt/sources.list

deb http://ftp2.de.debian.org/debian wheezy main non-free contrib
deb http://security.debian.org/ wheezy/updates main contrib non-free
# wheezy-updates, previously known as ‘volatile’
deb http://ftp2.de.debian.org/debian wheezy-updates main contrib non-free
deb http://www.deb-multimedia.org wheezy main non-free
deb-src http://www.deb-multimedia.org wheezy main non-free

Si os fijáis tengo el src de debian-tools que es de donde sacará el código fuente de ffmpeg

Instalaremos la dependencias para poder compilar:

improvisa:/usr/src/# apt-get build-dep ffmpeg

Ahora descargaremos el fuente, dejará el código en /usr/src

improvisa:/usr/src/# apt-get source ffmpeg

Nos movemos al directorio de la versión que hemos instalado:

improvisa:/usr/src/# cd /usr/src/ffmpeg-dmo-1.0.10/

Y compilamos (¡Ojo! los enable van con doble guión):

improvisa:/usr/src/ffmpeg-dmo-1.0.10/# ./configure –enable-gpl –enable-nonfree –enable-libfaac –enable-libgsm –enable-libmp3lame –enable-libtheora –enable-libvorbis –enable-libx264 –enable-libxvid –enable-zlib –enable-postproc –enable-swscale –enable-pthreads –enable-x11grab –enable-libdc1394 –enable-version3 –enable-libopencore-amrnb –enable-libopencore-amrwb

Antes de continuar con el segundo paso de la compilación tenemos que crear un directorio ya que si no la instalación de ffmepg dará un error:

improvisa:/usr/src/ffmpeg-dmo-1.0.10/# mkdir -p /usr/local/share/ffmpeg

Ahora generaremos el paquete de deb con el siguiente comando, tardará un buen rato:

improvisa:/usr/src/ffmpeg-dmo-1.0.10/# checkinstall -D –install=no –pkgname=ffmpeg-full –autodoinst=yes -y

Si nos da error (libavcodec/libx264.c:492: undefined reference to `x264_encoder_open_125′)  mirar la solución más abajo.

Ahora sólo queda instalar el paquete:

improvisa:/usr/src/ffmpeg-dmo-1.0.10/# dpkg -i ffmpeg-full_1.0.10-1_amd64.deb

Solución al error libavcodec/libx264.c:492: undefined reference to x264_encoder_open_125

Si el comando checkinstall nos da el error:

error libavcodec/libx264.c:492: undefined reference to x264_encoder_open_125

Significa que teníamos instalada la versión x264 de los repositorios de Debian, para solucionar el error tendremos que hacer lo siguiente:

Desinstalamos x264

improvisa:/usr/src/ffmpeg-dmo-1.0.10/# cd /usr/src/
improvisa:/usr/src/# apt-get remove x264

Descargamos de git la versión de videolan y la compilamos

improvisa:/usr/src/# git clone git://git.videolan.org/x264.git
improvisa:/usr/src/# cd /usr/src/x264
improvisa:/usr/src/x264/# ./configure –enable-static –enable-shared
improvisa:/usr/src/x264/# make && make install
improvisa:/usr/src/x264/# ldconfig

Volvemos a compilar ffmpeg con los path adecuados para x264 (¡Ojo! los enable van con doble guión)

improvisa:/usr/src/x264/# cd /usr/src/ffmpeg-dmo-1.0.10
improvisa:/usr/src/ffmpeg-dmo-1.0.10/# LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/src/x264/libx264.a
improvisa:/usr/src/ffmpeg-dmo-1.0.10/#  ./configure –enable-gpl –enable-nonfree –enable-libfaac –enable-libgsm –enable-libmp3lame –enable-libtheora –enable-libvorbis –enable-libx264 –enable-libxvid –enable-zlib –enable-postproc –enable-swscale –enable-pthreads –enable-x11grab –enable-libdc1394 –enable-version3 –enable-libopencore-amrnb –enable-libopencore-amrwb
improvisa:/usr/src/ffmpeg-dmo-1.0.10/# make clean

Generamos el paquete debian.

improvisa:/usr/src/ffmpeg-dmo-1.0.10/# checkinstall -D –install=no –pkgname=ffmpeg-full –autodoinst=yes -y

Instalamos:

improvisa:/usr/src/ffmpeg-dmo-1.0.10/# dpkg -i ffmpeg-full_1.0.10-1_amd64.deb

INSTALACIÓN DE JODConverter

JODConverter será el conversor automático entre formatos de OpenOffice o  LibreOffice, soporta fomatos PDF, RTF, HTML. Word, Excel, PowerPoint y Flash.

Lo utilizará OpenMeetings para convertir los archivos que suben los usuarios para compartir con otros usuarios.

Necesitaremos descargar la aplicación de Google Code: https://code.google.com/p/jodconverter/

improvisa:/usr/src/# cd /usr/src/
improvisa:/usr/src/# wget https://jodconverter.googlecode.com/files/jodconverter-core-3.0-beta-4-dist.zip

Descomprimimos

improvisa:/usr/src/# unzip jodconverter-core-3.0-beta-4-dist.zip

Copiamos a sus destino final

improvisa:/usr/src/# cp -ar jodconverter-core-3.0-beta-4/ /opt
improvisa:/usr/src/# cd /opt

Crearemos un enlace simbólico a esta versión, la instalación de OpenMeetings nos pedirá después la ruta de jodconverter, yo prefiero darle una ruta sin versión ya que si luego cambiamos a la versión superior de jodconverter con crear de nuevo el enlace simbólico no tendremos que cambiar nada en la instalación de OpenMeetings:

improvisa:/opt/# ln -s jodconverter-core-3.0-beta-4 jodconverter
improvisa:/opt/# ls -la
total 16

drwxr-xr-x 4 root root 4096 oct 29 12:15 .
drwxr-xr-x 24 root root 4096 oct 31 14:47 ..
lrwxrwxrwx 1 root root 29 oct 29 12:15 jodconverter -> jodconverter-core-3.0-beta-4/
drwxrwxrwx 4 root root 4096 ago 21 2011 jodconverter-core-3.0-beta-4

DESCARGA, INSTALACIÓN Y CONFIGURACIÓN INICIAL DE OPENMEETINGS:

Ahora pasaremos a descargar OpenMeetings, el paquete con los binarios que descargaremos de Apache, nos traerá el servicio red5 y la aplicación web OpenMeetings. Como expliqué más arriba son servicios separados, OpenMeetings se apoya en red5-server para poder realizar las videoconferencias y OepnMeetings gestionará el acceso de usuarios, creación de VideoSalas, etc.

Descargaremos OpenMeetings de Apache:

improvisa:/# cd /usr/src/
improvisa:/usr/src/# wget http://apache.rediris.es/openmeetings/3.0.3/bin/apache-openmeetings-3.0.3.zip

Crearemos el directorio donde lo descomprimiremos y luego moveremos a su sitio final

improvisa:/usr/src/# mkdir /usr/src/red5
improvisa:/usr/src/# cp -ar /usr/src/apache-openmeetings-3.0.3.zip /usr/src/red5/
improvisa:/usr/src/# cd /usr/src/red5/
improvisa:/usr/src/red5/# unzip apache-openmeetings-3.0.3.zip
improvisa:/usr/src/red5/# rm apache-openmeetings-3.0.3.zip
improvisa:/usr/src/red5/# cd /usr/src/
improvisa:/usr/src/# mv /usr/src/red5 /opt/

Le daremos los permisos adecuados al directorio que acabamos de mover a opt

improvisa:/usr/src/# chown nobody:root /opt/red5 -R

Crearemos los scripts de inicio para que red5 se pare y se inicie con el arranque y parada del equipo.

improvisa:/usr/src/# cd /etc/init.d/
improvisa:/etc/init.d/# vi red5

#! /bin/sh
# red5 initscript

### BEGIN INIT INFO
# Provides:             red5-server
# Required-Start:       $local_fs $remote_fs $network
# Required-Stop:        $local_fs $remote_fs $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Should-Start:         $named
# Should-Stop:          $named
# Short-Description:    red5
# Drescription:         Flash streaming server
# Short-Description:    red5
### END INIT INFO


set -e
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Red5 flash streaming server"
NAME=red5
DAEMON_HOME=/opt/red5
DAEMON=$DAEMON_HOME/$NAME.sh
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi
# Function that starts the daemon/service.
d_start() {
start-stop-daemon --start --pidfile $PIDFILE --chdir $DAEMON_HOME --background --make-pidfile --exec $DAEMON
}
# Function that stops the daemon/service.
d_stop() {
start-stop-daemon --stop --quiet --pidfile $PIDFILE --name java
rm -f $PIDFILE
}
case "$1" in
start)
echo -n "Starting $DESC: $NAME"
d_start
echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"
d_stop
echo "."
;;
restart|force-reload)
echo -n "Restarting $DESC: $NAME"
d_stop
sleep 1
d_start
echo "."
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0

improvisa:/etc/init.d/# chmod a+x /etc/init.d/red5
improvisa:/etc/init.d/# update-rc.d red5 defaults

Podemos comprobar que nos ha generado los scripts de arranque y parada en los niveles adecuados:

improvisa:/etc/init.d/# ls -la /etc/rc2.d/

total 12
drwxr-xr-x 2 root root 4096 oct 29 11:59 .
drwxr-xr-x 83 root root 4096 oct 29 13:11 ..
-rw-r–r– 1 root root 677 jul 14 2013 README
lrwxrwxrwx 1 root root 14 oct 29 09:38 S01motd -> ../init.d/motd
lrwxrwxrwx 1 root root 14 oct 29 11:59 S01red5 -> ../init.d/red5
lrwxrwxrwx 1 root root 17 oct 29 09:38 S01rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root 26 oct 29 10:28 S01soffice-headless -> ../init.d/soffice-headless
lrwxrwxrwx 1 root root 17 oct 29 10:29 S02apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 15 oct 29 10:29 S03acpid -> ../init.d/acpid
lrwxrwxrwx 1 root root 14 oct 29 10:29 S03cron -> ../init.d/cron
lrwxrwxrwx 1 root root 14 oct 29 10:36 S03dbus -> ../init.d/dbus
lrwxrwxrwx 1 root root 13 oct 29 10:29 S03gpm -> ../init.d/gpm
lrwxrwxrwx 1 root root 15 oct 29 10:29 S03mysql -> ../init.d/mysql
lrwxrwxrwx 1 root root 15 oct 29 10:36 S03rsync -> ../init.d/rsync
lrwxrwxrwx 1 root root 13 oct 29 10:29 S03ssh -> ../init.d/ssh
lrwxrwxrwx 1 root root 18 oct 29 10:29 S05bootlogs -> ../init.d/bootlogs
lrwxrwxrwx 1 root root 18 oct 29 10:29 S06rc.local -> ../init.d/rc.local
lrwxrwxrwx 1 root root 19 oct 29 10:29 S06rmnologin -> ../init.d/rmnologin

improvisa:/etc/init.d/# ls -la /etc/rc6.d/

total 12
drwxr-xr-x 2 root root 4096 oct 29 11:59 .
drwxr-xr-x 83 root root 4096 oct 29 13:11 ..
lrwxrwxrwx 1 root root 17 oct 29 10:29 K01apache2 -> ../init.d/apache2
lrwxrwxrwx 1 root root 13 oct 29 09:44 K01gpm -> ../init.d/gpm
lrwxrwxrwx 1 root root 15 oct 29 10:29 K01mysql -> ../init.d/mysql
lrwxrwxrwx 1 root root 14 oct 29 11:59 K01red5 -> ../init.d/red5
lrwxrwxrwx 1 root root 17 oct 29 09:38 K01urandom -> ../init.d/urandom
lrwxrwxrwx 1 root root 18 oct 29 09:44 K02sendsigs -> ../init.d/sendsigs
lrwxrwxrwx 1 root root 17 oct 29 09:44 K03rsyslog -> ../init.d/rsyslog
lrwxrwxrwx 1 root root 20 oct 29 09:44 K04hwclock.sh -> ../init.d/hwclock.sh
lrwxrwxrwx 1 root root 22 oct 29 09:44 K04umountnfs.sh -> ../init.d/umountnfs.sh
lrwxrwxrwx 1 root root 20 oct 29 09:44 K05networking -> ../init.d/networking
lrwxrwxrwx 1 root root 18 oct 29 09:44 K06umountfs -> ../init.d/umountfs
lrwxrwxrwx 1 root root 20 oct 29 09:44 K07umountroot -> ../init.d/umountroot
lrwxrwxrwx 1 root root 16 oct 29 09:44 K08reboot -> ../init.d/reboot
-rw-r–r– 1 root root 351 oct 15 2012 README

Ahora necesitaremos antes de arrancar el servicio que OpenMeetings se comunique con MySQL para ello necesitaremos descargar el conector de MySQL a Java y cambiar un par de cosas en la configuración de OpenMeetings.

Empecemos buscando en MySQL el conector de Java, podéis mirar esta web para encontrar el link http://dev.mysql.com/downloads/connector/j/ posiblemente tengáis que daros de alta para descargar el conector, yo lo he creado con 10 minutes mail para que luego no me manden cosas.

improvisa:/var/log/# cd /usr/src/
improvisa:/usr/src/# wget http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.34.tar.gz
improvisa:/usr/src/# tar -xvzf mysql-connector-java-5.1.34.tar.gz

improvisa:/usr/src/# cd /usr/src/mysql-connector-java-5.1.34

Dejo una copia de la versión que utilizo en el directorio de OpenMeetings:

improvisa:/usr/src/mysql-connector-java-5.1.34/# cp -ar mysql-connector-java-5.1.34-bin.jar /opt/red5/webapps/openmeetings/WEB-INF/lib/

Y ahora copia el mismo archivo pero con el nombre que necesita OpenMeetings, así sabré que versión del connector de Java Mysql utilizo:

improvisa:/usr/src/mysql-connector-java-5.1.34/# cp -ar mysql-connector-java-5.1.34-bin.jar /opt/red5/webapps/openmeetings/WEB-INF/lib/mysql-connector-java.jar

Volvamos a darle permisos adecuados:

improvisa:/usr/src/mysql-connector-java-5.1.34/# chown nobody:root /opt/red5 -R

Ahora cambiaremos la configuración para que OpenMeetings utilice MySQL:

improvisa:/usr/src/mysql-connector-java-5.1.34/# cd /opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/
improvisa:/opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/# cp -ar persistence.xml persistence.xml.ORI
improvisa:/opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/# cp -ar mysql_persistence.xml persistence.xml

Cambiaremos el usuario y la contraseña para acceder a MySQL, para ello editaremos el archivo que acabamos de modificar:

improvisa:/opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/# vi persistence.xml

Y buscaremos El Property Name «openjpa.ConnectionProperties» donde habla de la conexión de MySQL, en  mi fichero está en la linea 81

                        <property name="openjpa.ConnectionProperties"
                                value="DriverClassName=com.mysql.jdbc.Driver
                                        , Url=jdbc:mysql://localhost:3306/nombre_base_de_datos?autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf-8&amp;connectionCollation=utf8_general_ci&amp;cachePrepStmts=true&amp;cacheCallableStatements=true&amp;cacheServerConfiguration=true&amp;useLocalSessionState=true&amp;elideSetAutoCommits=true&amp;alwaysSendSetIsolation=false&amp;enableQueryTimeouts=false&amp;prepStmtCacheSize=3000&amp;prepStmtCacheSqlLimit=1000
                                        , MaxActive=100
                                        , MaxWait=10000
                                        , TestOnBorrow=true
                                        , poolPreparedStatements=true
                                        , Username=usuario_mysql_para_base_de_datos_de_openmeetings
                                        , Password=password" />

Tenemos que cambiar unas cuantas cosas, el nombre de la base de datos, en el caso de este tutorial es openmeetings, el usuario que creamos para acceder a esa base de datos, en el caso de este tutorial openmeetings y el password para este usuaario. También si queremos podemos cambiar el puerto o el host de acceso a MySQL si es que en algún momento lo hemos cambiado.

A mi queda así el archivo:

                        <property name="openjpa.ConnectionProperties"
                                value="DriverClassName=com.mysql.jdbc.Driver
                                        , Url=jdbc:mysql://localhost:3306/openmeetings?autoReconnect=true&amp;useUnicode=true&amp;createDatabaseIfNotExist=true&amp;characterEncoding=utf-8&amp;connectionCollation=utf8_general_ci&amp;cachePrepStmts=true&amp;cacheCallableStatements=true&amp;cacheServerConfiguration=true&amp;useLocalSessionState=true&amp;elideSetAutoCommits=true&amp;alwaysSendSetIsolation=false&amp;enableQueryTimeouts=false&amp;prepStmtCacheSize=3000&amp;prepStmtCacheSqlLimit=1000
                                        , MaxActive=100
                                        , MaxWait=10000
                                        , TestOnBorrow=true
                                        , poolPreparedStatements=true
                                        , Username=openmeetings
                                        , Password=password" />

Con esto ya tendríamos todo para poder comenzar a configurar nuestro nuevo OpenMeetings.

Iniciemos el servicio:

improvisa:/usr/src/mysql-connector-java-5.1.34/# /etc/init.d/red5 start

Creamos el enlace simbólico al log para que esté donde todos los logs.

improvisa:/etc/init.d/# cd /var/log/
improvisa:/var/log/# ln -s /opt/red5/log/red5.log .

Ahora sólo queda acceder a la web y terminar la instalación desde ahí:

http://ip_del_servidor:5080/openmeetings/install

Os dejo pantallazos de la instalación que hay que realizar en la web, los datos irán cambiando según sea nuestra organización:

OpenMeetings 3.0.3 en Debian 7 - Improvisa

Paso 1

OpenMeetings 3.0.3 en Debian 7 - Improvisa

Paso 2

OpenMeetings 3.0.3 en Debian 7 - Improvisa

Paso 3

OpenMeetings 3.0.3 en Debian 7 - Improvisa

Paso 4

OpenMeetings 3.0.3 en Debian 7 - Improvisa

Paso 5

OpenMeetings 3.0.3 en Debian 7 - Improvisa

Paso 6

OpenMeetings 3.0.3 en Debian 7 - Improvisa

Paso 7

OpenMeetings 3.0.3 en Debian 7 - Improvisa

Paso 8

OpenMeetings 3.0.3 en Debian 7 - Improvisa

Paso 9

 

Una vez que estamos dentro de la aplicación «logueados» con el usuario administrador que hemos creado podemos cambiar algunos valores para dejar a nuestro gusto la web de OpenMeetings:

OpenMeetings cambiar idioma usuario administrador:

Entramos en Administration, Users y buscamos el usuario administrador al que queremos cambiar el idioma y seleccionamos el idioma deseado, en nuestro caso spanish

OpenMeetings cambiar idioma por defecto:

Para que la web completa se mnuestre en español debemos entrar en Administración , Configuración y buscar la clave «default_lang_id» y poner el número 8 que es el correspondiente al idioma Español.

OpenMeetings cambiar Timezone por defecto:

Para que la web completa se mnuestre en español debemos entrar en Administración , Configuración y buscar la clave «default.timezone» y poner «Europe/Madrid»sin comillas.

OpenMeetings cambiar nombre de la web (Nombre que se ve al lado del icono de la pluma que por defecto es OpenMeetings)

Para que la web completa se mnuestre en español debemos entrar en Administración , Configuración y buscar la clave «application.name» y poner la que necesitemos.

OpenMeetings cambiar fuente Times New Roman por otra:

Para que la web completa se mnuestre en español debemos entrar en Administración , Configuración y buscar la clave «default_export_font» y poner la que necesitemos, por ejemplo Verdana.

Existen más cambios que se pueden realizar en OpenMeetings para personalizar la instalación, por ejemplo cambiar el logo de la pluma por el nuestro, cambiar el puerto de la aplicación 5080 por otro que queramos, cambiar el nombre de la aplicación http://tuip/openmmetings por http://tuip/tunuevonombre, etc.

Si necesitáis estos cambios no dudéis en preguntar.

Ya sólo fata agregar usuarios a la Sala de Videoconferencias OpenMeetings para que puedan acceder.

 AGRADECIMIENTOS:

Alfonso de MicroAlcarria si no es por el todo esto del linux para mi no hubiese tenido sentido, mil gracias Alfonso 😉

A los creadores de Debian, a la gente de Apache Foundation que sin ellos esto de OpenMeetings no hubiera podido ser.

A vosotros que juntos mejoraremos este manual y que hacéis que Improvisa pueda seguir sacando buenas guías, howtos, manuales, o como queráis llamarlo.

Comentarios

    Warning: Use of undefined constant type - assumed 'type' (this will throw an Error in a future version of PHP) in /home/improvisa_com/web/improvisa.com/public_html/wp-content/themes/grassland/comments.php on line 38
  • Amilcore dice:

    Felicidades, gran artículo, me quedó claro como hacer la instalación.
    Aunque en mí caso partícular me da un problema al intentar usar el conector J. En el asistente de instalación web, me conecta a la base de datos creada en el primer paso, pero cuando intento validar el último paso donde se vé el progreso de la instalación, me rehusa la conexión y creo que es por el conector.
    El error pone claramente que es un error de conexión rehusada.

    Por otro lado la instalación la realizé con el apache.Derby.xml y funcionó sin problema, es cambiable post-instalación las preferencias entre Derby o MySQL¿?

    Gracias de antemano.

    • juanmi dice:

      Hola Amilcore, me alegro que te haya valido el artículo. Yo lo itulizo mucho, ayer mismo pase a ala 3.0.6 y lo volví a seguir 🙂

      A tu pregunta de cambiar de Derby a MySQL supongo que deberás hacerlo en el archivo /opt/red5/webapps/openmeetings/WEB-INF/classes/META-INF/persistence.xml es ahí donde se cambia el puerto de conexion de la bbdd, usuario y contraseña. Luego seguro que tienes que buscarte el conector específico para Derby + Java, seguro que tienes documentación en Apache 🙂

      https://code.google.com/p/openmeetings/wiki/ApacheDerbyDB

      Si al final sacas como hacerlo cuéntanos por aquí 😉

  • John Perez dice:

    Fue de gran utilidad la publicación, todos los pasos funcionan bien. Muchas gracias.

    • juanmi dice:

      Me alegra que te haya funcionado todo. Yo he vuelto a montar una máquina hace unos días y funcionó a las mil maravillas, eso si, con Debian 7, porque con Debian 8 me fallaron algunas instalaciones de paquetes y me decante por Debian 7, asi que en cuando tenga un huevo hago el post para instalar OpenMeetings en Debian 8

      Un saludo.

  • Burhan Uddin dice:

    Thanks and i am very grateful to get a big advantages,i have a dream i want to join some cyber security team in our country that’s why i am looking for a online course,i want to learn Offensive Security
    Mobile App Security, Network Security, Web App Security, Exploit Development,etc. Please help to to give an advice what will be the best for me. Which course would help me in gaining hacking and cyber security skills: BSIT, BSSE or BSCS?
    Thanks again for sharing.

  • Estoy sorprendido de encontrar este blog. Quería daros las gracias por escribir esta genialidad. Sin duda he disfrutando cada pedacito de ella. Os te tengo marcados para ver más cosas nuevas de este sitio .

Deja un comentario