MediaWiki: mudanças entre as edições

De Wiki Projeto Root
Ir para navegação Ir para pesquisar
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 151: Linha 151:
===Configuração SMTP===
===Configuração SMTP===
Primeiro instalamos os pacotes necessários:
Primeiro instalamos os pacotes necessários:
*CentOS
  yum install php-pear php-PHPMailer
  yum install php-pear php-PHPMailer
  pear install mail Net_SMTP Auth_SASL mail_mime
  pear install mail Net_SMTP Auth_SASL mail_mime
  systemctl restart httpd
  systemctl restart httpd
*Debian
apt-get install php-pear php-PHPMailer
pear install mail Net_SMTP Auth_SASL mail_mime
/etc/init.d/apache2 restart


Todas as configurações devem ser feitas no arquivo LocalSettings.php.
Todas as configurações devem ser feitas no arquivo LocalSettings.php.
Linha 217: Linha 225:
  "...searchindex' is marked as crashed and should be repaired (localhost)"
  "...searchindex' is marked as crashed and should be repaired (localhost)"
Uma tabela da Wiki está corrompida e precisa ser recriada. A maneira mais rápida de fazer isso é pelo script update.php:
Uma tabela da Wiki está corrompida e precisa ser recriada. A maneira mais rápida de fazer isso é pelo script update.php:
  cd /var/www/mbwiki/maintenance
  cd /var/www/wiki/maintenance
  php update.php
  php update.php

Edição atual tal como às 13h17min de 6 de dezembro de 2017

Sobre

Olá! Visitante, reunimos aqui, informações sobre configurações avançadas da MediaWiki, com estes ajustes além de fazer uma configuração mais personalizada e segura, também é possível configurar a sua wiki de maneira profissional com o AD da sua empresa, assim deixando os usuários de seu controlador de domínios podendo autenticar na sua wiki, este tipo de situação é interessante quando se precisa disponibilizar uma Wiki Corporativa.


Configurações

Edições

1 - Bloquear exceções de captcha:
# vim ConfirmEdit/ConfirmEdit.php
$wgGroupPermissions['*'            ]['skipcaptcha'] = false;
$wgGroupPermissions['user'         ]['skipcaptcha'] = false;
$wgGroupPermissions['autoconfirmed']['skipcaptcha'] = false;
$wgGroupPermissions['bot'          ]['skipcaptcha'] = false; // registered bots
$wgGroupPermissions['sysop'        ]['skipcaptcha'] = false;
$wgAvailableRights[] = 'skipcaptcha';
2 - Definição de ações que solicitarão captcha:
$wgCaptchaTriggers = array();
$wgCaptchaTriggers['edit']          = false; // Would check on every edit
$wgCaptchaTriggers['create']        = true; // Check on page creation.
$wgCaptchaTriggers['sendemail']     = false; // Special:Emailuser
$wgCaptchaTriggers['addurl']        = false;  // Check on edits that add URLs
$wgCaptchaTriggers['createaccount'] = true;  // Special:Userlogin&type=signup
$wgCaptchaTriggers['badlogin']      = true;  // Special:Userlogin after failure

Integração com AD

1 - Download da última versão em: http://www.mediawiki.org/wiki/Extension:LDAP_Authentication#Current_version
2 - Habilitar o módulo no LocalSettings.php:
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
3 - Configurações básicas:
$wgLDAPDomainNames = array( 'dominio' );
$wgLDAPServerNames = array( 'dominio' => 'servidor.dominio.com' );
$wgLDAPSearchStrings = array( "dominio" => "DOMINIO\\USERNAME" );
$wgLDAPEncryptionType = array( "dominio" => "clear" );
4 - Fazer o update de banco para adicionar as tabela "wikidb.ldap_domains":
# cd /var/www/mediawiki/maintenance
# php update.php
5 - Testar a autenticação.

Restrições de Grupos

1 - Adicionar as seguintes opções no LocalSettings.php:
$wgLDAPGroupUseFullDN = array( "DOMINIO" => true );
$wgLDAPBaseDNs = array( 'DOMINIO' => 'dc=dominio,dc=com' );
$wgLDAPSearchAttributes = array( 'DOMINIO' => 'sAMAccountName' );
2 - Definição dos atributos de busca por grupos:
$wgLDAPGroupObjectclass = array( 'DOMINIO' => 'group' );
$wgLDAPGroupAttribute = array( 'DOMINIO' => 'member' );
$wgLDAPGroupNameAttribute = array( 'DOMINIO' => 'cn' );
3 - Definição de quais grupos precisa pertencer:
$wgLDAPRequiredGroups = array( 'DOMINIO' => array( 'cn=Wiki_Edicao,ou=Acessos_Wiki,dc=dominio,dc=com','cn=Wiki_Leitura,ou=Acessos_Wiki,dc=dominio,dc=com' ) );
OBS.: Da mesma forma podem ser usados grupos de exclusão usando a tag "$wgLDAPExcludedGroups"
$wgLDAPExcludedGroups = array( 'DOMINIO' => array( 'cn=Wiki_Negado,ou=Acessos_Wiki,dc=dominio,dc=com' ) );
4 - Aplicação de permissões baseadas em grupos:
$wgLDAPUseLDAPGroups = array( 'DOMINIO' => true );
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['user']['edit'] = false;
$wgGroupPermissions['user']['createpage'] = false;
$wgGroupPermissions['user']['upload'] = false;

$wgGroupPermissions['Wiki_Leitura' ]['edit'] = false;
$wgGroupPermissions['Wiki_Edicao' ]['edit'] = true;
$wgGroupPermissions['Wiki_Edicao' ]['createpage'] = true;
$wgGroupPermissions['Wiki_Edicao' ]['upload'] = true;
$wgGroupPermissions['Wiki_Admin' ]['edit'] = true;
$wgGroupPermissions['Wiki_Admin' ]['createpage'] = true;
$wgGroupPermissions['Wiki_Admin' ]['upload'] = true;
$wgGroupPermissions['Wiki_Admin' ] = $wgGroupPermissions[ 'sysop' ];

Busca de Atributos

1 - Adicionar a seguinte linha para buscar e-mail, nome, login e idioma:
$wgLDAPPreferences = array( 'dominio.com' => array( 'email'=>'mail','realname'=>'cn','nickname'=>'sAMAccountName','language'=>'preferredLanguage'));

Referências

http://ryandlane.com/blog/2009/03/23/using-the-ldap-authentication-plugin-for-mediawiki-the-basics-part-1/
http://www.mediawiki.org/wiki/Manual:User_rights
http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/Options#Enabling_the_plugin
http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/AD_Configuration_Examples

Múltiplas Instâncias

Quando há a necessidade de mais bases Wiki no mesmo servidor, uma boa solução é criar endereços de wikis diferentes e com bases de dados diferentes mas usando os mesmos arquivos do MediaWiki.

1 - Renomear o arquivo LocalSettings.php
mv LocalSettings.php LocalSettings_Wiki1.php
2 - Acessar http://wiki.dominio.com/mw-config/index.php e proceder com a configuração da nova database.
3 - Fazer uma cópia do LocalSettings_Wiki1.php para LocalSettings_Wiki2.php e ajustar os seguintes parâmetros:
$wgServer
$wgDBname
$wgSecretKey
$wgUpgradeKey
4 - Verificar e ajustar as permissões de grupos e autenticação.
5 - Criar um arquivo LocalSettings.php com o seguinte conteúdo:
<?php
$callingURL = strtolower($_SERVER['SERVER_NAME']);
$pos = strpos( $callingURL, 'wiki1');

if ( $pos === false ) {
   require_once('LocalSettings_Wiki1.php');
}else{
   require_once('LocalSettings_Wiki2.php');
}
?>
6 - Ajustar os diretórios de uploads na Wiki2:
$wgUploadDirectory = "{$IP}/wiki2/images";
$wgUploadPath = "{$wgScriptPath}/wiki2/images";

Procedimentos

SQL

Criar Admin

INSERT INTO user_groups ( ug_user, ug_group ) VALUES ( 1, "bureaucrat" );
INSERT INTO user_groups ( ug_user, ug_group ) VALUES ( 1, "sysop" );

Backup

/usr/local/bin/bkp_mediawiki.sh

#!/bin/bash
# VARIAVEIS
DIR_BKP="/mnt/BACKUP"
BKPS="2"
DATE="`date +%Y-%m-%d`"
DATE_APAGAR=$(date --date "$BKPS days ago" +%Y-%m-%d)

# COMANDOS
mysqldump -u wiki_user -p"senha" wiki > $DIR_BKP/wiki_$DATE.sql
mysqldump -u wiki_user -p"senha" wiki2 > $DIR_BKP/wiki2_$DATE.sql
tar -cvzf $DIR_BKP/wikidir_$DATE.tgz /var/www/wiki* /var/www/mediawiki*

# Verifica e remove arquivos antigos.
if [ -e $DIR_BKP/wikidir_$DATE_APAGAR.tgz ]; then
       rm -f $DIR_BKP/wikidir_$DATE_APAGAR.tgz
fi
if [ -e $DIR_BKP/wiki_$DATE_APAGAR.sql ]; then
       rm -f $DIR_BKP/wiki_$DATE_APAGAR.sql
fi
if [ -e $DIR_BKP/wiki2_$DATE_APAGAR.sql ]; then
       rm -f $DIR_BKP/wiki2_$DATE_APAGAR.sql
fi

Upload de outros arquivos

Por padrão, a MediaWiki permite o upload de apenas alguns tipos de arquivos:

array( 'png', 'gif', 'jpg', 'jpeg' );

Modificando uma configuração no arquivo LocalSettings.php podemos adicionar outros tipos:

// Override the default with a bundle of filetypes:
$wgFileExtensions = array(
   'png', 'gif', 'jpg', 'jpeg', 'jp2', 'webp', 'ppt', 'pdf', 'psd',
   'mp3', 'xls', 'xlsx', 'swf', 'doc','docx', 'odt', 'odc', 'odp',
   'odg', 'mpp'
   );

Referências

https://www.mediawiki.org/wiki/Manual:$wgFileExtensions

Configuração SMTP

Primeiro instalamos os pacotes necessários:

  • CentOS
yum install php-pear php-PHPMailer
pear install mail Net_SMTP Auth_SASL mail_mime
systemctl restart httpd
  • Debian
apt-get install php-pear php-PHPMailer
pear install mail Net_SMTP Auth_SASL mail_mime
/etc/init.d/apache2 restart


Todas as configurações devem ser feitas no arquivo LocalSettings.php.

$wgSMTP = array(
'host'     => "smtp.dominio.com.br", // could also be an IP address. Where the SMTP server is located
'IDHost'   => "dominio.com.br",      // Generally this will be the domain name of your website (aka mywiki.org)
'port'     => 587,                 // Port to use when connecting to the SMTP server
'auth'     => true,               // Should we use SMTP authentication (true or false)
'username' => "[email protected]",     // Username to use for SMTP authentication (if being used)
'password' => "****"   // Password to use for SMTP authentication (if being used)
);

$wgEnableEmail = true;
$wgEnableUserEmail = true; # UPO
$wgAllowHTMLEmail = true;
$wgNoReplyAddress = true;
$wgUserEmailUseReplyTo = true;
$wgEmailAuthentication = false;
$wgEmergencyContact = "[email protected]";
$wgPasswordSender   = "[email protected]";
$wgPasswordReminderResendTime = 2;

$wgEnotifUserTalk = true; # UPO
$wgEnotifWatchlist = true; # UPO
#$wgEnotifImpersonal = true;
$wgEnotifMaxRecips = 50;
$wgEnotifMinorEdits  = true;
$wgEnotifRevealEditorAddress = true;
$wgUseEnotif = true;

Referências

https://www.mediawiki.org/wiki/Manual:Configuration_settings
https://www.mediawiki.org/wiki/Extension:Email_notification
https://snowulf.com/2011/08/30/configuring-mediawiki-to-use-external-smtp/

Extensões

Aproved Revs

Extensão usada para administradores aprovarem as modificações antes de publicá-las.

http://www.mediawiki.org/wiki/Extension:Approved_Revs

Algumas características:

  1. Caso uma página não possua nenhuma revisão aprovada, mostrará sempre a última revisão.
  2. Caso uma revisão seja aprovada, todas as anteriores são aprovadas também (isso é lógico).
  3. Os ajustes de permissões com base em grupos do AD, por exemplo, podem ser feitos em LocalSettings.php.
  4. Os ajustes mais genéricos de permissões podem ser feitos em extenstions/ApprovedRevs/ApprovedRevs.php
$wgGroupPermissions['*']['viewlinktolatest'] = false;
$wgGroupPermissions['sysop']['viewlinktolatest'] = true;

Flagged Revs

Extensão mais complexa e flexível para controle de revisões na MediaWiki. É a extensão usada pela Wikipedia.

https://www.mediawiki.org/wiki/Extension%3aFlaggedRevs

Upload de formatos diferentes

Para liberar novos formatos de arquivos, adicionar no LocalSettings.php

$wgFileExtensions = array_merge(
  $wgFileExtensions, array(
     'pdf', 'ppt', 'xml', 'rar', 'doc','docx', 'xls', 'xlsx', 'zip'
     )
  );

Troubleshooting

searchindex corrompido

Ao fazer buscas na Wiki, aparece uma mensagem semelhante à essa:

"...searchindex' is marked as crashed and should be repaired (localhost)"

Uma tabela da Wiki está corrompida e precisa ser recriada. A maneira mais rápida de fazer isso é pelo script update.php:

cd /var/www/wiki/maintenance
php update.php