OpenMeetings 3.0.3 en Debian 7
OpenMeetings 3.0.3 en Debian 7
Hace 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 😉
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 ?
INSTALACIÓ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 vim 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&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8&connectionCollation=utf8_general_ci&cachePrepStmts=true&cacheCallableStatements=true&cacheServerConfiguration=true&useLocalSessionState=true&elideSetAutoCommits=true&alwaysSendSetIsolation=false&enableQueryTimeouts=false&prepStmtCacheSize=3000&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&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf-8&connectionCollation=utf8_general_ci&cachePrepStmts=true&cacheCallableStatements=true&cacheServerConfiguration=true&useLocalSessionState=true&elideSetAutoCommits=true&alwaysSendSetIsolation=false&enableQueryTimeouts=false&prepStmtCacheSize=3000&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:
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.
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
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.
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í 😉
Fue de gran utilidad la publicación, todos los pasos funcionan bien. Muchas gracias.
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.
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 .
Me alegra leerte, hace mucho que no escribo, a ver si lo siguiente que haga lo subo. Me alegra que te haya funcionado.