Instalación de MoinMoin en un sitio virtual en Pericles

Pasos previos

Instalación del MoinMoin

Nos logueamos via ssh como administradores del sitio virtual.

Definiciones de paths y nombres

  • Es necesario tomar nota del directorio home del administrador del sitio (usualmente /home/admin, pero depende del username específico del administrador). Atención: en esta explicación asumiremos que el directorio es /home/admin para todas las configuraciones. Pero hay que tener en cuenta que esto puede no ser así.

  • Hay que definir en qué path se va a ver el MoinMoin en la web. Puede ser en la raíz del sitio virtual o en un subdirectorio. Supongamos que queremos que se vea en un subdirectorio /moin. Esto es, para ver la página inicial del moin usaremos http://www.example.com/moin (esto no crea un subdirectorio /moin real, si no que se maneja entre el moin.cgi (que en realidad está en /var/www/cgi-bin/moin.cgi) y el archivo /var/www/html/.htaccess.

  • También hay que definir en qué path van a ir los datos estáticos (este path tiene que ser distinto del anterior). Usaremos el subdirectorio /wiki (que es el default de MoinMoin) para esto.

  • Crearemos un subdirectorio moin-<numero de versión> en el home del administrador para dejar los datos que no pueden ser accedidos directamente desde la web (si no que sólo los ve el moin.cgi). También crearemos un link simbólico para no tener que cambiar toda la configuración si hacemos un upgrade del MoinMoin.

    • Supongamos que vamos a instalar la versión 1.5.4 de MoinMoin, entonces, hacemos lo siguiente:

   mkdir /var/www/html/wiki
   mkdir ~/moin-1.5.4
   cd ~
   ln -s moin-1.5.4 moin
  • Tenemos que definir el nombre de usuario MoinMoin que va a ser el administrador (superuser). Conviene que sea el WikiWord NombreApellido correspondiente al nombre y apellido del administrador. Digamos que usamos JoséYoAdministroElMoin para los ejemplos. Si no queremos que cualquiera pueda editar las páginas, nos conviene crear un GrupoDeEditores a los que les daremos permiso de edición (y al resto de los usuarios no).

  • También es necesario definir si el wiki va a ser multiidioma o va a estar mayormente en un solo idioma (castellano o inglés, por ejemplo). Supongamos que lo vamos a tener en un solo idioma.

  • Finalmente, para que funcione el mail, tenemos que tener un server de mail, una dirección remitente y un usuario/clave en el server para poder enviar los mensajes. Supognamos que estos datos son los siguientes para los ejemplos:
    • Servidor de mail saliente: smtp.example.com

    • Remitente de los mensajes del wiki: Administrador del Wiki <wiki@example.com>

    • Usuario para autenticarse en smtp.example.com: fulano@example.com

    • Clave de fulano@example.com en smtp.example.com: sEcReTo

Bajar el paquete, abrirlo y copiar

Hacemos lo siguiente (en algún subdirectorio dentro del home del administrador, no hacerlo directamente en /home/admin si no en algún subdirectorio (por ejemplo /home/admin/soft:

wget http://umn.dl.sourceforge.net/sourceforge/moin/moin-1.5.4.tar.gz
tar xvfz moin-1.5.4.tar.gz
cd moin-1.5.4
cp -R MoinMoin ~/moin
cd wiki
# deshabilitamos la web hasta que terminemos de configurar
echo "deny from all" > /var/www/html/.htaccess
cp -R data underlay ~/moin
cp -R htdocs/* /var/www/html/wiki
cp config/wikiconfig.py ~/moin
cp server/moin.cgi /var/www/cgi-bin

Configuraciones

moin.cgi

Editamos el archivo /var/www/cgi-bin/moin.cgi:

  • Cambiamos la primera línea por la siguiente:



  • Cambiamos la línea que dice

sys.path.insert(0, '/path/to/wikiconfig')
  • por una que diga

sys.path.insert(0, '/home/admin/moin')
  • (que es el directorio donde dejamos el wikiconfig.py).



  • Debajo de la linea (comentada) que dice:

## sys.path.insert(0, 'PREFIX/lib/python2.3/site-packages')
  • ponemos:

sys.path.insert(0, '/home/admin/moin/MoinMoin')
  • (que es el directorio donde dejamos las libs MoinMoin)



  • Finalmente, buscamos la línea que dice:

request = RequestCGI()
  • y la cambiamos para que diga:

# OJO: en /var/www/html/.htaccess DEBE decir lo siguiente:
# RewriteRule ^moin(.*)$ /cgi-bin/moin.cgi$1 [type=application/x-httpd-cgi]
request = RequestCGI(properties={'script_name':'/moin'})
  • Pero si queremos que el MoinMoin esté en la raíz del sitio virtual, entonces esta línea tiene que ser:

# OJO: en /var/www/html/.htaccess DEBE decir lo siguiente:
# RewriteRule ^(.*)$ /cgi-bin/moin.cgi/$1 [type=application/x-httpd-cgi]
request = RequestCGI(properties={'script_name':'/'})
  • (y también hay que hacer un cambio en el .htaccess).



wikiconfig.py

Editamos el archivo ~/moin/wikiconfig.py:

  • Buscamos la línea que dice:

sitename = u'Untitled Wiki'
  • y cambiamos Untitled Wiki por el nombre que querramos darle a nuestro wiki (aparecerá en la barra de la ventana de los browsers).



  • Buscamos la línea que dice:

data_dir = './data/'
  • y ponemos:

data_dir = '/home/admin/moin/data/'



  • Buscamos la línea que dice:

data_underlay_dir = './underlay/'
  • y ponemos:

data_underlay_dir = '/home/admin/moin/underlay/'



  • Si dejamos /wiki como el path para datos fijos, entonces la línea:

url_prefix = '/wiki'
  • queda como está.

Permisos

  • Buscar la línea (comentada) que dice:

#acl_rights_before = u"YourName:read,write,delete,revert,admin"
  • y a continuación poner:

# habilitamos acl (¿ahora es por defecto?)
acl_enabled = 1
# permisos de superuser
acl_rights_before = u"JoséYoAdministroElMoin:read,write,delete,revert,admin"
# permisos para editores (todo menos admin)
acl_rights_default = u"GrupoDeEditores:read,write,delete,revert All:read"
# el resto, aunque esté registrado, sólo puede leer
acl_rights_after = u"All:read"

Mail

  • Buscar la línea (comentada) que dice:

#mail_smarthost = ""
  • y a continuación poner:

mail_smarthost = "smtp.example.com"



  • Buscar la línea (comentada) que dice:

#mail_from = u""
  • y a continuación poner:

mail_from = u"Administrador del Wiki <wiki@example.com>"



  • Buscar la línea (comentada) que dice:

#mail_login = ""
  • y a continuación poner:

mail_login = "fulano@example.com sEcReTo"

Idioma (language)

  • Si queremos cambiar el idioma por defecto de inglés a castellano, buscamos la línea que dice:

language_default = 'en'
  • y ponemos:

language_default = 'es'



  • Es obligatorio definir cuál va a ser la página de inicio. Buscar la línea (comentada) que dice:

#page_front_page = u"MyStartingPage"
  • y a continuación poner el nombre que queremos que tenga la página inicial, por ejemplo:

page_front_page = u"PáginaInicial"
  • si en lugar de esto queremos que el wiki sea multiidioma, ponemos lo siguiente:

page_front_page = u"FrontPage"
  • y el MoinMoin elegirá la página inicial según el idioma que desee el usuario (suponiendo que dicho idioma esté instalado).

.htaccess

Editamos el archivo /var/www/html/.htaccess:

  • Ya tenemos todo razonablemente configurado, así que podemos quitar la única línea que tiene este archivo que dice:

deny from all



  • Si vamos a hacer que el wiki sea accesible desde http://www.example.com/moin, entonces el archivo .htaccess debería tener el siguiente contenido:

# start the rewrite engine
RewriteEngine On

RewriteRule ^(wiki/.*)$ $1 [last]

# OJO en /var/www/cgi-bin/moin.cgi DEBE decir lo siguiente:
# request = RequestCGI(properties={'script_name':'/moin'})
RewriteRule ^moin(.*)$ /cgi-bin/moin.cgi$1 [type=application/x-httpd-cgi]



  • Por el contrario, si queremos que el wiki sea accesible desde la raíz de http://www.example.com/, entonces el archivo .htaccess debería tener el siguiente contenido:

# start the rewrite engine
RewriteEngine On

RewriteRule ^(wiki/.*)$ $1 [last]

# OJO en /var/www/cgi-bin/moin.cgi DEBE decir lo siguiente:
# request = RequestCGI(properties={'script_name':'/'})
RewriteRule ^(.*)$ /cgi-bin/moin.cgi/$1 [type=application/x-httpd-cgi]

Otras configuraciones opcionales

Usar expresiones regulares en castellano (o bilingües) para categorías, grupos y plantillas

No es complicado cambiar el idioma de las expresiones regulares que se utilizan para detectar tipos especiales de páginas... es más, vamos a dejar una versión bilingüe (inglés/castellano).

Editamos el archivo ~/moin/wikiconfig.py:

  • Buscamos las líneas que dicen:

    page_category_regex = u'^Category[A-Z]'
    page_dict_regex = u'[a-z]Dict$'
    page_form_regex = u'[a-z]Form$'
    page_group_regex = u'[a-z]Group$'
    page_template_regex = u'[a-z]Template$'
  • y las cambiamos para que queden así:

    page_category_regex = u'^Categor(y|ía)[A-Z]'
    page_dict_regex = u'[a-z]Dict$'
    page_form_regex = u'[a-z]Form$'
    page_group_regex = u'([a-z]Group$)|(^Grupo[A-Z])'
    page_template_regex = u'([a-z]Template$)|(^Plantilla[A-Z])'
  • (no cambié page_dict_regex y page_form_regex porque no sé lo que son y nunca las usé, pero se pueden modificar en forma análoga).

Logo

Es fácil de cambiar (o sacar) el logo que aparece arriba a la izquierda.

Editamos el archivo ~/moin/wikiconfig.py:

  • Buscamos la línea que dice:

logo_string = u'<img src="/wiki/common/moinmoin.png" alt="MoinMoin Logo">'
  • y cambiamos el string por lo que querramos. OJO, hay que tener cuidado con el .htaccess para que el MoinMoin no interprete el path hacia el gráfico.

"Bajar" el título de la página

MoinMoin usualmente muestra el nombre de la página al lado del logo (arriba del menú). Si queremos bajar esto a lo que sería el contenido en sí de la página, hay que hacer lo siguiente:

Editamos el archivo ~/moin/MoinMoin/theme/modern.py (hacer un backup antes, por si acaso):

  • Buscamos las líneas que dicen:

            u'<div id="locationline">',
            self.interwiki(d),
            self.title(d),
            u'</div>',
  • las sacamos de donde están y las insertamos inmediatamente antes de una línea que dice:

            self.startPage(),
  • pero para que no se junten las dos líneas de arriba (la de comandos/preferencias y la de las últimas páginas visitadas), en el lugar donde estaba el <div id="locationline"> ponemos lo siguiente:

            u'<div id="BABY_ParaQueBajeLoDeAbajo">',
            u'</div>',

InstalaciónDeMoinMoinEnServidorVirtualPericles (última edición 2008-01-29 14:14:44 efectuada por localhost)

Edit and actions menu

  • Página inmutable
  • Información
  • Adjuntos