Diferencia entre revisiones de «Mediawiki»
mSin resumen de edición |
|||
Línea 170: | Línea 170: | ||
* [http://www.mediawiki.org/wiki/Help:Links#Interwiki_links Enlaces entre wikis en mediawiki]__FORZAR_TDC__ |
* [http://www.mediawiki.org/wiki/Help:Links#Interwiki_links Enlaces entre wikis en mediawiki]__FORZAR_TDC__ |
||
=== Validación de contenidos === |
==== Validación de contenidos ==== |
||
* Ref: Mediawiki - Configuring file uploads |
* Ref: Mediawiki - Configuring file uploads |
||
* Ref: Mediawiki - MIME type detection |
* Ref: Mediawiki - MIME type detection |
||
Línea 177: | Línea 176: | ||
El proceso de aceptación de contenidos en Mediawiki consta de dos fases: la primera consiste en detectar qué se ha subido y la segunda en comprobar si lo detectado, el tipo MIME, coincide con su nomenclatura |
El proceso de aceptación de contenidos en Mediawiki consta de dos fases: la primera consiste en detectar qué se ha subido y la segunda en comprobar si lo detectado, el tipo MIME, coincide con su nomenclatura |
||
==== Detección MIME ==== |
===== Detección MIME ===== |
||
Mediawiki emplea el módulo PHP FileInfo o el antiguo MimeMagic para obtener el tipo MIME del contenido. Como última opción se utilizará la detección que proporciona el módulo PHP GD, que sólo sirve para un grupo pequeño de imágenes. |
Mediawiki emplea el módulo PHP FileInfo o el antiguo MimeMagic para obtener el tipo MIME del contenido. Como última opción se utilizará la detección que proporciona el módulo PHP GD, que sólo sirve para un grupo pequeño de imágenes. |
||
Línea 185: | Línea 184: | ||
$wgVerifyMimeType = false; |
$wgVerifyMimeType = false; |
||
==== Validación MIME ==== |
===== Validación MIME ===== |
||
Para emparejar la extensión del nombre del archivo con su tipo MIME Mediawiki emplea un archivo llamado <code>mime.types</code> cuya estructura es la de un archivo de texto plano con un registro por línea. Este registro contiene campos separados por espacios en blanco: el primero es el tipo formal MIME y los siguientes son las extensiones admisibles de archivos para el tipo dado. |
Para emparejar la extensión del nombre del archivo con su tipo MIME Mediawiki emplea un archivo llamado <code>mime.types</code> cuya estructura es la de un archivo de texto plano con un registro por línea. Este registro contiene campos separados por espacios en blanco: el primero es el tipo formal MIME y los siguientes son las extensiones admisibles de archivos para el tipo dado. |
||
Línea 228: | Línea 227: | ||
|} |
|} |
||
==== Alias y clasificación MIME ==== |
===== Alias y clasificación MIME ===== |
||
Mediawiki emplea un mecanismo para clasificar los contenidos según su tipo MIME. Para ello consulta una lista guardada en el archivo <code>mime.info</code> en la que relaciona, línea por línea, uno o varios tipos MIME con una etiqueta clasificatoria que luego guarda -junto con el tipo MIME resultante- en la tabla de imágenes de la base de datos que contiene el wiki. |
Mediawiki emplea un mecanismo para clasificar los contenidos según su tipo MIME. Para ello consulta una lista guardada en el archivo <code>mime.info</code> en la que relaciona, línea por línea, uno o varios tipos MIME con una etiqueta clasificatoria que luego guarda -junto con el tipo MIME resultante- en la tabla de imágenes de la base de datos que contiene el wiki. |
||
Línea 237: | Línea 236: | ||
Por el momento no tiene utilidad concreta pero se espera que en el futuro sirva para mejorar la presentación de medios. |
Por el momento no tiene utilidad concreta pero se espera que en el futuro sirva para mejorar la presentación de medios. |
||
==== Configuración para validaciones MIME ==== |
===== Configuración para validaciones MIME ===== |
||
Existen algunas variables que definen los recursos de validación: |
Existen algunas variables que definen los recursos de validación: |
||
{| class="wikitable" |
{| class="wikitable" |
Revisión del 15:18 23 abr 2024
Enlaces y referencias
Configuración
Aspectos
Imágenes
Las imágenes en el wiki precisan de:
- Un directorio con permisos de escritura
- Acceso al programa de conversión de imágenes
- Un modelo de almacenamiento definido antes de subir la primera imagen.
## Indicadores activos para emplear imágenes en el wiki (incluyendo subir mediante un URL)
$wgEnableUploads = true;
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = "/usr/bin/convert";
$wgAllowCopyUploads = true;
$wgShowExceptionDetails = true;
##
## Parámetros de almacenamiento y acceso a las imágenes
$wgUploadDirectory = "/var/lib/mediawiki/images";
$wgUploadPath = "/w/images";
##
## Almacenar las imágenes linealmente y no dentro de un
## árbol de subdirectorios
$wgHashedUploadDirectory = false;
Logotipo y favicon
Una vez obtenida una imagen para utilizar como logotipo derivamos de ella un favicon y la subimos al directorio de imágenes y anotamos en la configuración cuál utilizar:
$wgLogo = "{$wgUploadPath}/astillas-logo-120.jpg";
$wgFavicon = "{$wgUploadPath}/favicon.ico";
Ajustes concretos de configuración
Derechos de acceso
Ref: Mediawiki: preventing access
Existen varios parámetros que se pueden definir en la configuración local (LocalSettings.php) y que marcan las líneas generales de funcionamiento del wiki:
# Creación de usuarios sólo a administradores
$wgGroupPermissions['sysop']['createaccount'] = true;
# Permite la edición sólo a usuarios registrados
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['user']['edit'] = true;
Para ello es necesario editar la página MediaWiki:Sidebar y cambiar allí el orden o el contenido mostrado. Éste consiste en una lista de elementos un poco especiales porque aparece un destino y un texto a mostrar separados por una barra vertical (|). El destino puede ser una página del wiki o un URL completo.
Ejemplo:
* navigation
** mainpage|mainpage
** recentchanges-url|recentchanges
** randompage-url|randompage
** sandbox|Zona de pruebas
Acortando URL
- Acortando direcciones en mediawiki (especialmente eliminando la expresión index.php del URL).]
Cuando se pretende que los URL del wiki sean lo más limpio posible tenemos que tocar en varios sitios en la configuración, dependiendo de si tenemos o no acceso como root a la instalación del wiki.
En mi caso he tomado la decisión de usar la forma estándar de URL que se emplea en la Wikipedia como
http://example.com/wiki/Page_title
porque me permite disponer de un espacio de nombres libres en la raíz del servidor
http://example.com/debian http://example.com/webdav http://example.com/cgi-bin/tool.pl http://example.com/victor
para poder emplearlos con otras aplicaciones o páginas especiales.
Según la documentación los pasos a seguir son los siguientes:
- Asegurarse de que el directorio de Mediawiki no está directamente bajo el árbol de archivos del servidor web para no mezclar páginas del wiki y otros contenidos. En Debian se instala bajo
/var/lib/mediawiki
por lo que esta precaución ya está tomada. En mi caso, además, suelo añadir un enlace simbólico de dicho directorio a/var/www/w
de manera que toda la instalación (como los temas) queda al alcance de una única ruta. - Modificar la configuración del wiki en el archivo
LocalSettings.php
para que refleje las rutas de los programas (/w/index.php) y los artículos (/wiki/Page_title). - Cambiar la configuración del servidor web para apuntar a estas nuevas rutas.
- Reiniciar el servidor web
- Probar el acceso a través de http://localhost/wiki
El archivo LocalSettings.php queda así:
$wgScriptPath = "/w"; $wgScript = "$wgScriptPath/index.php"; $wgArticlePath = "/wiki/$1";
mientras que la configuración de Apache queda de esta forma:
Alias /wiki /var/lib/mediawiki/index.php <Directory /var/lib/mediawiki/> Options +FollowSymLinks AllowOverride All order allow,deny allow from all </Directory>
Subpáginas
Además de tener un nombre más largo ya que la jerarquía de páginas se separa con una barra inclinada como en
http://astillas.net/wiki/SandoBox/Tipografia/varios
en cada página se añade automáticamente, al principio de la misma, enlaces hacia las páginas superiores de las que descienden.
Un detalle a tener en cuenta es que el nombre de la subpágina no admite las mismas mejoras estéticas que los nombres de página. Estos, en mediawiki, se normalizan automágicamente cambiando a mayúscula la primera letra de los mismos. En las subpáginas no sucede así por lo que Hardware/impresoras
es diferente de Hardware/Impresoras
.
Wikis múltiples
Dada la extensión del tema he abierto una página nueva para describir la configuración de múltiples wikis en un mismo servidor.
Derechos de acceso
Existen varios parámetros que se pueden definir en la configuración local (LocalSettings.php
) y que marcan las líneas generales de funcionamiento del wiki:
# Creación de usuarios sólo a administradores $wgGroupPermissions['sysop']['createaccount'] = true; # Permite la edición sólo a usuarios registrados $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['user']['edit'] = true;
Para ello es necesario editar la página MediaWiki:Sidebar y cambiar allí el orden o el contenido mostrado. Éste consiste en una lista de elementos un poco especiales porque aparece un destino y un texto a mostrar separados por una barra vertical (|
). El destino puede ser una página del wiki o un URL completo.
Ejemplo:
* navigation ** mainpage|mainpage ** recentchanges-url|recentchanges ** randompage-url|randompage ** sandbox|Zona de pruebas
Enlaces entre wikis
Existe un tipo de enlace especial que permite crear direcciones de otros wikis sin necesidad de conocerlas al completo.
Por ejemplo se puede crear un enlace de éste tipo
[[:wp:Agujero Analógico|esto es obligatorio de leer]]
y el programa mediawiki lo convierte a
[http://es.wikipedia.org/wiki/Agujero_Analógico esto es obligatorio de leer]
en el producto final de la página.
El programa emplea una tabla de su base de datos llamada interwiki para conservar una correlacción entre prefijos (como wp) y direcciones web (como http://es.wikipedia.org/wiki/). Alterarla implica tener acceso a bajo nivel al servidor de datos e insertar un registro en dicha tabla o cambiar el contenido de otra puesto que el entorno mediawiki suele incluir una larga lista de ellos.
La estructura de la tabla de enlaces entre wikis tiene una descripción propia aunque existe una extensión preparada para mantener más cómodamente este mapa de correspondencias.
Otra característica de estos enlaces es que para ellos no existe la comprobación habitual de página existente o nueva, por lo que siempre aparecen como enlaces externos (en color azul generalmente).
Si se tiene acceso directo al servidor MySQL se pueden insertar directamente valores en la tabla apropiada:
$ mysql ... Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 181 Server version: 5.0.51a-24+lenny5 (Debian) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> insert into interwiki set iw_prefix='wp', iw_url='http://es.wikipedia.org/wiki/$1'; Query OK, 1 row affected, 1 warning (0.00 sec) mysql>
Validación de contenidos
- Ref: Mediawiki - Configuring file uploads
- Ref: Mediawiki - MIME type detection
El proceso de aceptación de contenidos en Mediawiki consta de dos fases: la primera consiste en detectar qué se ha subido y la segunda en comprobar si lo detectado, el tipo MIME, coincide con su nomenclatura
Detección MIME
Mediawiki emplea el módulo PHP FileInfo o el antiguo MimeMagic para obtener el tipo MIME del contenido. Como última opción se utilizará la detección que proporciona el módulo PHP GD, que sólo sirve para un grupo pequeño de imágenes.
También se puede usar un programa externo, indicando cómo llamarlo dentro de la variable $wgMimeDetectorCommand
, lo que permite efectuar pruebas sobre lo que va a reconocer Mediawiki -evitando falsos positivios- sin tocar módulos PHP ni activando la depuración.
Si se desea desactivar completamente la detección de contenido se usa lo siguiente en la configuración
$wgVerifyMimeType = false;
Validación MIME
Para emparejar la extensión del nombre del archivo con su tipo MIME Mediawiki emplea un archivo llamado mime.types
cuya estructura es la de un archivo de texto plano con un registro por línea. Este registro contiene campos separados por espacios en blanco: el primero es el tipo formal MIME y los siguientes son las extensiones admisibles de archivos para el tipo dado.
Ejemplo tomado del archivo real:
... application/x-xpinstall xpi application/xhtml+xml xhtml xht application/xslt+xml xslt application/xml xml xsl xsd application/xml-dtd dtd application/zip zip jar xpi sxc stc sxd std sxi sti sxm stm sxw stw application/x-rar rar ...
Una vez que el emparejamiento funciona se procede a comprobar si la extensión es una de las admitidas consultando varias variables:
Variable | Valor | Descripción |
---|---|---|
$wgStrictFileExtensions
|
true | Si está activa indica que no se admita ninguna extensión que no figure en $wgFileExtensions |
$wgFileExtensions
|
Ver manual | Lista de extensiones de archivos que son admisibles vía subida de archivos o simplemente lista de aquellas extensiones preferentes. Depende de la variable $wgStrictFileExtensions. |
$wgCheckFileExtensions
|
true | Activa o no la comprobación de extensiones de archivos en la subida al wiki. |
$wgFileBlackList
|
Ver detalles | Lista de extensiones de archivos que nunca se permite subir al wiki. |
$wgVerifyMimeType
|
true | Activa o no la comprobación de tipos MIME (por contenido) en la subidad de archivos al wiki. |
Alias y clasificación MIME
Mediawiki emplea un mecanismo para clasificar los contenidos según su tipo MIME. Para ello consulta una lista guardada en el archivo mime.info
en la que relaciona, línea por línea, uno o varios tipos MIME con una etiqueta clasificatoria que luego guarda -junto con el tipo MIME resultante- en la tabla de imágenes de la base de datos que contiene el wiki.
Algunos ejemplos son:
image/png image/x-png [BITMAP] image/svg image/svg+xml application/svg+xml application/svg [DRAWING] audio/mp3 audio/mpeg3 audio/mpeg [AUDIO]
Por el momento no tiene utilidad concreta pero se espera que en el futuro sirva para mejorar la presentación de medios.
Configuración para validaciones MIME
Existen algunas variables que definen los recursos de validación:
Variable | Valor | Descripción |
---|---|---|
$wgMimeTypeFile
|
"includes/mime.types" | Contiene la ruta del archivo con la asociación de tipos MIME y extensiones. |
$wgMimeInfoFile
|
"includes/mime.info" | Contiene la ruta del archivo que contiene los alias y las clasificaciones de los tipos MIME. |
$wgMimeDetectorCommand
|
Define la llamada a un programa externo para detectar contenidos. El programa debe enviar únicamente el tipo MIME resultante a su salida estándar. Recibirá como parámetro final el nombre del archivo a comprobar.
Como ejemplo se puede usar $wgMimeDetectorCommand = "file --brief --mime"; |