La necesidad de crear un mirror de El Directorio (slcolombia.org y el-directorio.org) que se actualice automáticamente, surge de los problemas que inicialmente se tenía con la disponibilidad de los servidores en los que se encontraba este sitio web y posteriormente, por la imposibilidad de contar con una administración comunitaria.
Configuración Desktop
1. Instalar una versión de python superior a la 2.4: http://www.python.org/
2. Descargar y descomprimir la versión 1.6.4 de moin: http://moinmo.in/MoinMoinDownload
3. Descargar y descomprimir el último backup completo (data_full_*.tgz) de slcolombia.org: http://www.slcolombia.org/dataED/
4. Mover los directorios data y underlay del backup al directorio wiki de moin.
5. Modificar el puerto (si se requiere) y el acceso a las interfaces (si es requiere abrir el acceso desde otros equipos) en el archivo moin.py
port = 8080 interface = ''
6. Modificar el archivo con la configuración wikiconfig.py del wiki (se puede tomar como referencia el archivo que viene en el backup):
# -*- coding: iso-8859-1 -*-
import sys, os
from MoinMoin.config.multiconfig import DefaultConfig
class Config(DefaultConfig):
moinmoin_dir = os.path.abspath(os.path.normpath(os.path.dirname(sys.argv[0])))
data_dir = os.path.join(moinmoin_dir, 'wiki', 'data')
data_underlay_dir = os.path.join(moinmoin_dir, 'wiki', 'underlay')
sitename = 'El Directorio'
interwikiname = 'ElDirectorio'
logo_string = u'<img src="http://www.slcolombia.org/wiki/common/moinmoin.png" alt="Logo El Directorio">'
page_front_page = u"PáginaInicial"
acl_rights_default = u"All:read"
default_lang = 'es'
charset = 'iso-8859-1'
navi_bar = [u'%(page_front_page)s',u'CambiosRecientes',u'AyudaDeContenidos',u'Lista_de_correo/InterfazWikiForo',u
'BuscarPágina',u'AcercaDe']
theme_default = 'classic'
theme_force = True
tz_offset = -5.0
language_default = 'es'
show_hosts = 17. Se ejecuta el script de python para iniciar el servicio:
$ python moin.py
Acceder a través de un navegador: http://dominio:puerto
Scripts para automatizar la sincronización cada domingo (que es cuando se realizan los backups en el servidor slcolombia.org):
mirror-slcolombia.sh
# Mirror de El Directorio
# Definicion de variables globales
DIR_MOIN="/home/moin-slcolombia"
DAEMON="moin.py"
ANIO=`date +% Y`
MES=`LC_TIME="en_US" date +% b`
DIA=`date +%-d`
DOMINIO="http://www.slcolombia.org/dataED"
ARCHIVO="data_full_"$ANIO"-"$MES"-"$DIA".tgz"
URL=$DOMINIO/$ARCHIVO
SIZE_ARCHIVO=0
SIZE_COMPARACION=360000000 # Peso del archivo para verificar descarga
USER="www-data"
# Descarga de archivo
cd $DIR_MOIN
echo "Descargando el archivo $URL"
wget $URL
ls -lh $ARCHIVO
SIZE_ARCHIVO=`ls -l $ARCHIVO | awk '{print $5}'`
if [ $SIZE_ARCHIVO -gt $SIZE_COMPARACION ]; then
# Descomprimir
tar -xzf $ARCHIVO
# Bajar el servicio
ps -ef |grep "python $DIR_MOIN/$DAEMON" |grep $USER | awk '{print "kill " $2}' | sh
# borrar directorios previos y mover
rm -fr wiki/data wiki/underlay
mv u02/eldirectorio/data u02/eldirectorio/underlay wiki
# establece los permisos adecuados
chown $USER.$USER -R $DIR_MOIN
chmod 755 -R $DIR_MOIN
# Inicia el servicio
su -c "python $DIR_MOIN/$DAEMON" $USER &
# Borra los archivos que no necesita
rm -fr u02 $ARCHIVO
echo -e "\n Actualizacion Realizada!"
else
echo -e "\n Actualizacion abortada!"
fi/etc/init.d/moin-slcolombia
NAME="Moin slcolombia"
USER="www-data"
DIR="/home/moin-slcolombia"
DAEMON="moin.py"
case "$1" in
start)
echo "Starting $NAME..."
su -c "python $DIR/$DAEMON" $USER &
;;
stop)
echo -n "Stopping $NAME..."
echo .
ps -ef |grep "python $DIR/$DAEMON" |grep $USER | awk '{print "kill " $2}' | sh
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop}"
exit 1
;;
esac
Configuración Server
Por realizar!!
