MediaWiki (Português) - ArchWiki

# MediaWiki (Português)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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 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 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.

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 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)