MediaWiki (Español)

From ArchWiki
Esta traducción de MediaWiki fue revisada el 2019-11-23. Si existen cambios puede actualizarla o avisar al equipo de traducción.
Nota: MediaWiki no es totalmente compatible con PHP 7.3 todavía.[1][2].

MediaWiki es un software wiki gratuito y de código abierto escrito en PHP, desarrollado originalmente para Wikipedia. También alimenta esta wiki (vea Special:Version y el repositorio de GitHub).

Instalación

Para ejecutar MediaWiki necesitará tres cosas:

Para instalar MediaWiki en XAMPP, véase mw:Manual:Installing MediaWiki on XAMPP

Configuración

Los pasos para lograr una configuración de MediaWiki que funcione, implican editar la configuración de PHP y agregar los fragmentos de configuración de MediaWiki.

PHP

MediaWiki requiere la extensión iconv, por lo que debe descomentar extension=iconv en /etc/php/php.ini.

Dependencias opcionales:

Active la API para su DBMS (del inglés Database Management System),:

En segundo lugar, modifique el manejo de la sesión o puede que obtenga un error grave (PHP Fatal error: session_start(): Failed to initialize storage module[...]) al encontrar la ruta session.save_path. Una buena opción puede ser /var/lib/php/sessions o /tmp/.

/etc/php/php.ini
session.save_path = "/var/lib/php/sessions"

Deberá crear el directorio si no existe y luego restringir sus permisos:

# mkdir -p /var/lib/php/sessions/
# chown http:http /var/lib/php/sessions
# chmod go-rwx /var/lib/php/sessions

Si utiliza open_basedir PHP y desea permitir subir archivos, debe incluir /var/lib/mediawiki/ (enlaces simbólicos de images/ de mediawiki a /var/lib/mediawiki/).

Servidor web

Apache

Siga Apache HTTP Server#PHP.

Copie /etc/webapps/mediawiki/apache.example.conf a /etc/httpd/conf/extra/mediawiki.conf y edítelo conforme a sus necesidades.

Añada la siguiente línea a /etc/httpd/conf/httpd.conf:

Include conf/extra/mediawiki.conf

Reinicie el demonio httpd.service.

Nota: El archivo predeterminado de /etc/webapps/mediawiki/apache.example.conf sobrescribirá la configuración open_basedir de PHP, posiblemente en conflicto con otras páginas. Este comportamiento se puede cambiar moviendo la línea que comienza con php_admin_value entre las etiquetas <Directory>. Además, si está ejecutando múltiples aplicaciones que dependen del mismo servidor, este valor también podría agregarse al valor de open_basedir en /etc/php/php.ini en lugar de /etc/httpd/conf/extra/mediawiki.conf

Nginx

Para que MediaWiki funcione con Nginx, cree el siguiente archivo:

/etc/nginx/mediawiki.conf
location / {
   index index.php;
   try_files $uri $uri/ @mediawiki;
}
location @mediawiki {
   rewrite ^/(.*)$ /index.php;
}
location ~ \.php5?$ {
   include /etc/nginx/fastcgi_params;
   fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
   fastcgi_index index.php5;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   try_files $uri @mediawiki;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
   try_files $uri /index.php;
   expires max;
   log_not_found off;
}
# Restrictions based on the .htaccess files
location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
   deny all;
}
location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
   internal;
}
location ^~ /images/ {
   try_files $uri /index.php;
}
location ~ /\. {
   access_log off;
   log_not_found off; 
   deny all;
}

Asegúrese de que php-fpm esté instalado e iniciado.

Incluya una directiva de servidor, similar a esta:

/etc/nginx/nginx.conf
server {
  listen 80;
  server_name mediawiki;
  root /usr/share/webapps/mediawiki;
  index index.php;
  charset utf-8;
# For correct file uploads
  client_max_body_size    100m; # Equal or more than upload_max_filesize in /etc/php/php.ini
  client_body_timeout     60;
  include mediawiki.conf;

}

Por último, reinicie los demonios nginx.service y php-fpm.service.

Lighttpd

Debería tener Lighttpd instalado y configurado. Se requiere «mod_alias» y «mod_rewrite» en la matriz server.modules de lighttpd. Agregue al archivo de configuración lighttpd las siguientes líneas:

/etc/lighttpd/lighttpd.conf
alias.url += ("/mediawiki" => "/usr/share/webapps/mediawiki/")
url.rewrite-once += (
                "^/mediawiki/wiki/upload/(.+)" => "/mediawiki/wiki/upload/$1",
                "^/mediawiki/wiki/$" => "/mediawiki/index.php",
                "^/mediawiki/wiki/([^?]*)(?:\?(.*))?" => "/mediawiki/index.php?title=$1&$2"
)

Reinicie el demonio lighttpd.service.

Base de datos

Configure un servidor de base de datos como se explica en el artículo de su DBMS: MySQL, PostgreSQL o SQLite.

MediaWiki puede crear automáticamente la base de datos, si proporciona la contraseña root de la base de datos, durante el siguiente paso. De lo contrario, la base de datos debe crearse manualmente, consulte las instrucciones de upstream.

LocalSettings.php

Abra la URL de la wiki (generalmente http://your_server/mediawiki/) en un navegador y realice la configuración inicial. Siga las instrucciones de upstream.

El archivo generado LocalSettings.php, ofrecido para su descargar, guárdelo en /usr/share/webapps/mediawiki/LocalSettings.php. Este archivo define la configuración específica de su wiki. Cada vez que actualiza el paquete mediawiki, no se reemplaza.

Consejos y trucos

Matemáticas (texvc)

Por lo general, instalar texvc[enlace roto: package not found] y activarlo en la configuración es suficiente:

$wgUseTeX = true;

Si tiene problemas, intente aumentar los límites para las órdenes del intérprete de órdenes:

$wgMaxShellMemory = 8000000;
$wgMaxShellFileSize = 1000000;
$wgMaxShellTime = 300;

Unicode

Verifique que php, apache y mysql usan UTF-8. De lo contrario, puede enfrentarse a errores extraños debido a la falta de coincidencia de codificación.

VisualEditor

La extensión VisualEditor de MediaWiki proporciona un editor de texto enriquecido para MediaWiki. Siga mw:Extension:VisualEditor para instalarlo.

También necesitará el backend Node.js de Parsoid, que está disponible en parsoid-gitAUR[enlace roto: package not found].

Ajuste la ruta a MediaWiki en /usr/share/webapps/parsoid/api/localsettings.js:

parsoidConfig.setInterwiki( 'localhost', 'http://localhost/mediawiki/api.php' );

Después active e inicie parsoid.service.

Alternativamente, también se puede usar el paquete parsoidAUR[enlace roto: package not found] y configurar el servicio a través del archivo yaml, donde las siguientes líneas deben estar presentes:

/usr/share/webapps/parsoid/config.yaml
uri: `'http://localhost/mediawiki/api.php'`
domain: 'localhost'

La parte correspondiente en la configuración de mediawiki:

/usr/share/webapps/mediawiki/LocalSettings.php
$wgVirtualRestConfig['modules']['parsoid'] = array(
  // URL to the Parsoid instance - use port 8142 if you use the Debian package - the parameter 'URL' was first used but is now deprecated (string)
  'url' => 'http://localhost:8000/',
  // Parsoid "domain" (string, optional) - MediaWiki >= 1.26
  'domain' => 'localhost',
  // Parsoid "prefix" (string, optional) - deprecated since MediaWiki 1.26, use 'domain'
  'prefix' => 'localhost',
  // Forward cookies in the case of private wikis (string or false, optional)
  'forwardCookies' => false,
  // request timeout in seconds (integer or null, optional)
  'timeout' => null,
  // Parsoid HTTP proxy (string or null, optional)
  'HTTPProxy' => null,
  // whether to parse URL as if they were meant for RESTBase (boolean or null, optional)
  'restbaseCompat' => null,
);

Después de la configuración, el servicio parsoid puede iniciarse (reiniciarse) y (si aún no lo ha hecho) activarse.