Dado el SetupPiolaEnDreamHost la idea es la siguiente:

Vamos a crear un directorio ${RUN}/etc/moinfarm y ahí vamos dejar el farmconfig.py, a colgar el underlay, un data por default, y a crear un subdirectorio para cada instancia del farm que tenga el data específico y el xxxxx.py de configuración.

En ${HOME}/www voy a dejar un directorio MOIN-WIKI-TEMPLATE para generar automáticamente el directorio web para cada instancia.

Empecemos creando los directorios para la instancia default:

export RUN=${HOME}/run
export SHARE=${RUN}/share/moin
mkdir -pv ${RUN}/etc/moinfarm ${RUN}/etc/moinfarm/TEMPLATES
export FARMDIR=${RUN}/etc/moinfarm
cp -R $SHARE/data $FARMDIR
cp -R $SHARE/underlay $FARMDIR
# El usuario y grupo bajo el que corre el CGI es nuestro propio usuario y grupo, entonces:
export USER=`id -un`
export GROUP=`id -gn`
chown -R $USER.$GROUP $FARMDIR
chmod -R ug+rwX $FARMDIR
chmod -R o-rwx $FARMDIR

Ahora vamos a crear el farmconfig.py basándonos en el que viene en el paquete moin... ya que estamos, lo vamos a pasar de iso-8859-1 a utf-8.

iconv --from-code=ISO-8859-1 --to-code=UTF-8 ${SHARE}/config/wikifarm/farmconfig.py | \
   sed -e 's/# -\*- coding: iso-8859-1 -\*-/# -*- coding: utf-8 -*-/' > ${FARMDIR}/farmconfig.py
iconv --from-code=ISO-8859-1 --to-code=UTF-8 ${SHARE}/config/wikifarm/mywiki.py | \
   sed -e 's/# -\*- coding: iso-8859-1 -\*-/# -*- coding: utf-8 -*-/' > ${FARMDIR}/TEMPLATES/mywiki.py

Y ahora creamos el INSTEMPLATE.py con el que vamos a ir creando cada una de las instancias:

sed -e 's/MyWiki/NOMBREWIKI/' -e "s#/org/mywiki/data/#${FARMDIR}/NOMBREWIKI/data/#" <${FARMDIR}/TEMPLATES/mywiki.py >${FARMDIR}/TEMPLATES/INSTEMPLATE.py

Acá les hago las modificaciones importantes (esto, obviamente puede variar con el tiempo, pero el farmconfig.py.patch y INSTEMPLATE.py.patch deberían dar una buena idea de lo que hacemos). Bajarse el farmconfig.py.patch y INSTEMPLATE.py.patch y hacer:

cd ${FARMDIR}
patch <farmconfig.py.patch
cd TEMPLATES
patch <INSTEMPLATE.py.patch

Creo un directorio para dejar todos los themes generados por nosotros:

mkdir -pv ${FARMDIR}/THEMES
cp -p ${FARMDIR}/data/plugin/theme ${FARMDIR}/THEMES

Ahora creemos los directorios que van a estar visibles en la web:

export WWWDIR=${HOME}/www
mkdir -pv ${WWWDIR}
mkdir -pv ${WWWDIR}/MOIN-WIKI-TEMPLATE
cp -R ${SHARE}/htdocs ${WWWDIR}/MOIN-WIKI-TEMPLATE/wikistatic

Pasemos a utf-8 y copiemos el moin.cgi:

iconv --from-code=ISO-8859-1 --to-code=UTF-8 ${SHARE}/server/moin.cgi | \
   sed -e 's/# -\*- coding: iso-8859-1 -\*-/# -*- coding: utf-8 -*-/' > ${WWWDIR}/MOIN-WIKI-TEMPLATE/moin.cgi
chmod --reference=${SHARE}/server/moin.cgi ${WWWDIR}/MOIN-WIKI-TEMPLATE/moin.cgi

Acá le hago las modificaciones importantes (esto, obviamente puede variar con el tiempo, pero el moin.cgi.patch debería dar una buena idea de lo que hacemos). Bajarse el moin.cgi.patch y hacer:

cd ${WWWDIR}/MOIN-WIKI-TEMPLATE
patch <moin.cgi.patch

Creamos el directorio para los themes compartidos:

mkdir -pv ${WWWDIR}/SHARED

Ahora, por cada theme que queremos agregar, ponemos el <nombre_del_tema>.py en ${HOME}/run/etc/moinfarm/THEMES/ y el directorio <nombre_del_tema> que contiene los subdirectoios css e img en ${HOME}/www/SHARED.

Cuando tengamos los themes hechos tenemos que "apuntarlos" (por ahora lo pongo a mano, después haremos un script):

export WWWDIR=${HOME}/www
export TARGET=${WWWDIR}/MOIN-WIKI-TEMPLATE/wikistatic
for todo in ${WWWDIR}/SHARED/*
do
  nombre=`basename $todo`
  if [ -e ${TARGET}/${nombre} ]
  then
    if [ -h ${TARGET}/${nombre} ]
    then
      echo "ya hay un link simbólico ${nombre}:"
      ls -l ${TARGET}/${nombre}
    else
      echo "OJO hay 'ALGO' en ${TARGET}/${nombre} que no es un link simbólico:"
      ls -l ${TARGET}/${nombre}
    fi
  else
    # no hay nada en ${TARGET}/${nombre}, así que creo el symlink
    ln -sv ../../SHARED/${nombre} ${TARGET}
  fi
done

Finalmente, necesitamos el superscript crear_instancia_del_farm.sh, bajémoslo de crear_instancia_del_farm.sh y pongámoslo en ${HOME}/run/bin y hagámoslo ejecutable:

chmod +x ${HOME}/run/bin/crear_instancia_del_farm.sh

Ahora, para crear una nueva instancia, se hace con una sóla línea.

Supongamos que queremos crear un wiki llamado "simplementewiki" para el dominio "simplementewiki.org" y con nombre "SimpleMente", entonces:

crear_instancia_del_farm.sh simplementewiki simplementewiki.org SimpleMente

lo crea.

InstalaciónDeMoinMoinEnDreamHost/ConfiguraciónDeWikiFarm (última edición 2008-01-29 14:14:51 efectuada por localhost)

Edit and actions menu

  • Página inmutable
  • Información
  • Adjuntos