Jump to content
From ArchWiki
Status de tradução: Esse artigo é uma tradução de MediaWiki. Data da última tradução: 2019-11-24. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.
Nota: MediaWiki ainda não é completamente compatível com PHP 7.3.[1][2]

MediaWiki é um software wiki de código aberto e livre escrito em PHP, originalmente desenvolvido para a Wikipédia. Ele também alimenta este wiki (consulte Special:Version e o repositório do GitHub).

## Instalação

Para executar o MediaWiki, você precisa de três coisas:

- o pacote mediawiki, o qual obtém PHP
- um servidor web – Apache, Nginx or Lighttpd
- um sistema de banco de dados – MySQL, PostgreSQL or SQLite

Para instalar o MediaWiki no XAMPP, veja mw:Manual:Installing MediaWiki on XAMPP

## Configuração

As etapas para obter uma configuração funcional do MediaWiki envolvem a edição das configurações do PHP e a adição dos trechos de configuração do MediaWiki.

### PHP

MediaWiki precisa da extensão `iconv`, então você precisa descomentar `extension=iconv` em `/etc/php/php.ini`.

Dependências opcionais:

- Para renderização de miniaturas, instale ImageMagick ou php-gd. Se você escolher o último, você também precisa descomentar `extension=gd`.
- Para mais uma normalização Unicode eficiente, instale php-intl[link quebrado: replaced by php] e descomente `extension=intl`.

Habilite a API para seu SGBD:

- Se você usa MariaDB, descomente `extension=mysqli`.
- Se você usa PostgreSQL, instale php-pgsql e descomente `extension=pgsql`.
- Se você usa SQLite, instale php-sqlite e descomente `extension=pdo_sqlite`.

Em segunda, ajuste a manipulação da sessão ou você pode receber um erro fatal (`PHP Fatal error: session_start(): Failed to initialize storage module[...]`) localizando o caminho `session.save_path`. Uma boa opção pode ser `/var/lib/php/sessions` ou `/tmp/`.

    /etc/php/php.ini

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

Você precisará criar o diretório se ele não existir e depois restringir suas permissões:

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

Se você usa open_basedir do PHP e deseja permitir uploads de arquivos, é necessário incluir `/var/lib/media/wiki/` (mediawiki faz links simbólicos de `images/` para `/var/lib/mediawiki/`).

### Servidor web

#### Apache

Siga Apache HTTP Server#PHP.

Copie `/etc/webapps/mediawiki/apache.example.conf` para `/etc/httpd/conf/extra/mediawiki.conf` e edite-o conforme necessário.

Adicione a seguinte linha a `/etc/httpd/conf/httpd.conf`:

    Include conf/extra/mediawiki.conf

Reinicie o daemon `httpd.service`.

Nota: O arquivo padrão de `/etc/webapps/mediawiki/apache.example.conf` substituirá a configuração de open_basedir do PHP, possivelmente conflitando com outras páginas. Esse comportamento pode ser alterado movendo a linha começando com `php_admin_value` entre as tags `<Directory>`. Além disso, se você estiver executando vários aplicativos que dependem do mesmo servidor, esse valor também poderá ser adicionado ao valor de open_basedir em `/etc/php/php.ini` em vez de em `/etc/httpd/conf/extra/mediawiki.conf`

#### Nginx

Para que o MediaWiki trabalhe com Nginx, crie o seguinte arquivo:

    /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;
    }

Certifique-se que php-fpm está instalado em iniciado.

Inclua uma diretiva de servidor, semelhante 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;

    }

Ao final, reinicie os daemons `nginx.service` e `php-fpm.service`.

#### Lighttpd

Você deve ter o Lighttpd instalado e configurado. "mod_alias" e "mod_rewrite" na matriz server.modules do lighttpd são necessários. Anexe ao arquivo de configuração lighttpd as seguintes linhas

    /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 o daemon `lighttpd.service`.

### Banco de dados

Configure um servidor de banco de dados conforme explicado no artigo do seu SGBD: MySQL, PostgreSQL ou SQLite.

O MediaWiki pode criar automaticamente o banco de dados, se você fornecer a senha de root do banco de dados, durante a próxima etapa. Caso contrário, o banco de dados precisa ser criado manualmente, consulte as instruções do upstream.

### LocalSettings.php

Abra a url do wiki (geralmente `http://seu_servidor/mediawiki/`) em um navegador e faça a configuração inicial. Siga as instruções do upstream.

O arquivo `LocalSettings.php` gerado é oferecido para download, salve-o em `/usr/share/webapps/mediawiki/LocalSettings.php`. Este arquivo define as configurações específicas do seu wiki. Sempre que você atualiza o pacote mediawiki, ele não é substituído.

## Dicas e truques

### Matemática (texvc)

Geralmente, instalar texvc[link quebrado: package not found] e habilitá-lo na configuração é o suficiente:

    $wgUseTeX = true;

Se você tiver problemas, tente aumentar os limites para comandos shell:

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

### Unicode

Verifique se php, apache e mysql usam UTF-8. Caso contrário, você poderá enfrentar erros estranhos devido à incompatibilidade de codificação.

### VisualEditor

A extensão VisualEditor MediaWiki fornece um editor de texto rico para o MediaWiki. Siga mw:Extension:VisualEditor para instalá-lo.

Você também precisará do backend Node.js Parsoid, o qual está disponível por meio de parsoid-gitAUR[link quebrado: package not found].

Ajuste o caminho do MediaWiki em `/usr/share/webapps/parsoid/api/localsettings.js`:

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

Após isso, habilite e inicie `parsoid.service`.

Como alternativa, também é possível usar o pacote parsoidAUR[link quebrado: package not found] e configurar o serviço através do arquivo yaml, onde as seguintes linhas devem estar presentes:

    /usr/share/webapps/parsoid/config.yaml

    uri: `'http://localhost/mediawiki/api.php'`
    domain: 'localhost'

A parte correspondente nas configurações do 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,
    );

Após a configuração, o serviço `parsoid` pode ser iniciado (reiniciado) e (se ainda não tiver sido feito) habilitado.

Category:

- Wiki software (Português)

Hidden category:

- Pages with broken package links