MediaWiki (Português)

From ArchWiki
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:

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:

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.