Jump to content
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:

- el paquete mediawiki, que llama a PHP;
- un servidor web: Apache HTTP Server, Nginx o Lighttpd;
- un sistema de base de datos: MySQL, PostgreSQL o SQLite.

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:

- Para renderizar imágenes en miniatura, instale ImageMagick o php-gd. Si elige este último, también debe descomentar `extension=gd`.
- Para obtener una más eficiente normalización Unicode, instale php-intl[enlace roto: replaced by php] y descomente `extension=intl`.

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

- Si utiliza MariaDB, descomente `extension=mysqli`.
- Si utiliza PostgreSQL, instale php-pgsql y descomente `extension=pgsql`.
- Si utiliza SQLite, instale php-sqlite y descomente `extension=pdo_sqlite`.

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.

Category:

- Wiki software (Español)

Hidden category:

- Pages with broken package links