Mudanças entre as edições de "Wiki"

De Instituto de Física - UFRGS
(Etapa 4 (Helsique))
Linha 157: Linha 157:
 
== Etapa 4 (Helsique) ==
 
== Etapa 4 (Helsique) ==
  
- Após a finalização das configurações, um arquivo chamado LocalSettings.php será criado em /var/www/wikis/nome_da_wiki/config. Mover um diretório acima:
+
* Finalizadas as configurações, será gerado e baixado um arquivo '''LocalSettings.php''', que deverá ser salvo em /var/www/wikis/''nome_da_wiki''
  
mv /var/www/wikis/nome_da_wiki/config/LocalSettings.php  /var/www/wikis/nome_da_wiki/
+
::* Alternativamente, o arquivo poderá ser criado em /var/www/wikis/''nome_da_wiki''/config. Neste caso, basta movê-lo um diretório acima:
  
- Incluir as linhas abaixo no arquivo LocalSettings.php com caminho do LDAP correto:
+
::<div style="background-color: #f9f9f9; font-family: monospace,Courier; padding: 1em; border: 1px solid rgb(221, 221, 221);"> mv /var/www/wikis/<i>nome_da_wiki</i>/config/LocalSettings.php  /var/www/wikis/<i>nome_da_wiki</i>/ </div>
 +
 
 +
* Incluir as linhas abaixo no arquivo '''LocalSettings.php''' com caminho do LDAP correto:
 
   
 
   
 
  #################################################################
 
  #################################################################
 
  $wgGroupPermissions['*']['edit'] = false;
 
  $wgGroupPermissions['*']['edit'] = false;
 
  $wgGroupPermissions['*']['createaccount'] = false;
 
  $wgGroupPermissions['*']['createaccount'] = false;
  require_once( 'includes/LdapAuthentication.php' );
+
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
 +
  require_once( 'includes/AuthPlugin.php' );
 
  $wgAuth = new LdapAuthenticationPlugin();
 
  $wgAuth = new LdapAuthenticationPlugin();
 
  #$wgLDAPUseLocal = true;
 
  #$wgLDAPUseLocal = true;
Linha 182: Linha 185:
 
  );
 
  );
 
  #######################
 
  #######################
  $wgLDAPRequiredGroups = array( "IF"=>array("cn=w_nome_da_wiki,ou=grupos,ou=dominio,dc=if") );
+
  $wgLDAPRequiredGroups = array( "IF"=>array("cn=w_''nome_da_wiki'',ou=grupos,ou=dominio,dc=if") );
 
  $wgLDAPGroupUseFullDN = array( "IF"=>false );
 
  $wgLDAPGroupUseFullDN = array( "IF"=>false );
 
  $wgLDAPGroupObjectclass = array( "IF"=>"posixgroup" );
 
  $wgLDAPGroupObjectclass = array( "IF"=>"posixgroup" );
Linha 195: Linha 198:
 
  #################################################################
 
  #################################################################
  
- Copiar o arquivo LdapAuthentication.php:
+
* Baixe o plugin LdapAuthentication apropriado para a versão do MediaWiki sendo utilizada
  
  cp /root/LdapAuthentication.php /var/www/wikis/nome_da_wiki_ssl/includes/
+
  [https://www.mediawiki.org/wiki/Special:ExtensionDistributor/LdapAuthentication https://www.mediawiki.org/wiki/Special:ExtensionDistributor/LdapAuthentication]
  
- Criar diretório /schema/
+
* Extraia o pacote .tar.gz na pasta /var/www/wikis/''nome_da_wiki''_ssl/extensions; após este processo, deverá aparecer uma pasta '''LdapAuthentication''' com os seguintes arquivos:
mkdir /var/www/wikis/nome_da_wiki_ssl/includes/schema
+
  COPYING      LdapAuthentication.i18n.php README
 
+
  gitinfo.json LdapAuthentication.php   schema
- Criar arquivos nesse novo diretorio
+
  i18n       LdapAutoAuthentication.php  version
 
+
  cd /var/www/wikis/nome_da_wiki_ssl/includes/schema
+
   
+
- mysql
+
 
+
  nano ldap-mysql.sql
+
 
+
- Incluir:
+
 
+
  CREATE TABLE /*_*/ldap_domains (
+
        -- IF for domain
+
        domain_id int not null primary key auto_increment,
+
+
        -- domain itself
+
        domain varchar(255) binary not null,
+
+
        -- User to which this domain belongs
+
        user_id int not null
+
+
) /*$wgDBTableOptions*/;
+
+
CREATE INDEX /*i*/user_id on /*_*/ldap_domains (user_id);
+
 
+
- postgres
+
 
+
nano ldap-postgres.sql
+
 
+
Incluir:
+
 
+
  CREATE TABLE ldap_domains (
+
        -- IF for domain
+
        domain_id serial PRIMARY KEY,
+
+
        -- domain itself
+
        domain varchar(255) not null,
+
+
        -- User to which this domain belongs
+
        user_id integer not null
+
+
) /*$wgDBTableOptions*/;
+
+
CREATE INDEX user_id on ldap_domains (user_id);
+
 
+
- Alterar permissões
+
chown -R www-data.www-data /var/www/wikis/nome_da_wiki
+
  
 +
* Alterar permissões
 +
chown -R www-data.www-data /var/www/wikis/''nome_da_wiki''
 
  chmod go-rw LocalSettings.php
 
  chmod go-rw LocalSettings.php
  
 +
::* Se houver erro ao acessar o banco de dados, será necessário atualizá-lo. Neste caso, basta abrir a pasta '''maintenance''' e executar o script '''update.php'''
 +
::<div style="background-color: #f9f9f9; font-family: monospace,Courier; padding: 1em; border: 1px solid rgb(221, 221, 221);"> cd /var/www/wikis/<i>nome_da_wiki</i>/maintenance <br> php update.php</div>
  
 
'''Alterar wiki para Login seguro'''
 
'''Alterar wiki para Login seguro'''
  
a) Alterar as seguintes variáveis em "includes/DefaultSettings.php"
+
* Alterar as seguintes variáveis em "includes/DefaultSettings.php"
  
$wgServer          = "//wiki.if.ufrgs.br";
+
$wgServer          = "//''nome_da_wiki''.if.ufrgs.br";
 +
$wgSecureLogin      = true;
  
$wgSecureLogin      = true;
+
* Em LocalSetting.php, comentar a linha
  
b) Em LocalSetting.php, comentar a linha
+
$wgServer = "http://''nome_da_wiki''.if.ufrgs.br";     
  
$wgServer = "http://nome_wiki.if.ufrgs.br";     
 
  
 
+
Utilizando este método, não é necessário duas pastas com o código fonte da wiki (ex: "''nome_da_wiki''_80" e "''nome_da_wiki''_ssl").
Utilizando-se este método não é necessário dois folders com o código fonte da mediawiki como "nome_da_wiki_80" e "nome_da_wiki_ssl".
+
  
  
 
'''Forma antiga de alterar wiki para Login seguro'''
 
'''Forma antiga de alterar wiki para Login seguro'''
  
languages/messages/MessagesPt_br.php
+
* No arquivo "languages/messages/MessagesPt_br.php", linha 555, mudar
linha 555
+
 
+
'loginprompt'                => 'É necessário estar com os <i>cookies</i> ativados para poder autenticar-se na {{SITENAME}}.',
+
  
para  
+
'loginprompt'                => 'É necessário estar com os <i>cookies</i> ativados para poder autenticar-se na {{SITENAME}}.',
  
'loginprompt'                => 'Direcionando para <i>login</i> seguro. Por favor, aguarde... &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;',
+
: para  
  
includes/templates/Userlogin.php
+
'loginprompt'                => 'Direcionando para <i>login</i> seguro. Por favor, aguarde... &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp;',
  
Na primeira linha:
+
* No includes/templates/Userlogin.php, na primeira linha:
  
<meta HTTP-EQUIV="REFRESH" content="0; url=https://pagina.if.ufrgs.br/index.php?title=Especial:Entrar&returnto=Especial:Entrar">
+
<meta HTTP-EQUIV="REFRESH" content="0; url=https://pagina.if.ufrgs.br/index.php?title=Especial:Entrar&returnto=Especial:Entrar">
  
Ou (versão 1.23.4)
+
:ou, caso for versão 1.23.4:
  
<meta HTTP-EQUIV="REFRESH" content="0; url=https://wiki.if.ufrgs.br/index.php?title=Especial:Autenticar-se&returnto=P%C3%A1gina+principal">
+
<meta HTTP-EQUIV="REFRESH" content="0; url=https://wiki.if.ufrgs.br/index.php?title=Especial:Autenticar-se&returnto=P%C3%A1gina+principal">
  
 
Isto pode variar de acordo com a versão da wiki.
 
Isto pode variar de acordo com a versão da wiki.
  
Comentar linhas 36 a 42, 43 a 50, 57 a 65 e 68 a 77
+
* Por fim, comentar linhas 36 a 42, 43 a 50, 57 a 65 e 68 a 77

Edição das 15h07min de 20 de junho de 2016

Como criar wikis

Etapa 1 (Helsinque)

a) Baixar mediawiki no diretório /var/www/wikis/

    cd /var/www/wikis
    wget http://releases.wikimedia.org/mediawiki/1.25/mediawiki-1.25.2.tar.gz

b) Descompactar e alterar nome

    tar -zxf mediawiki-1.25.2.tar.gz
    cp -r mediawiki-1.25.2 nome_da_wiki_ssl

c) Alterar permissões

    chown -R www-data:www-data /var/www/wikis/nome_da_wiki_ssl

APACHE


  cd /etc/apache2/sites-available/

d) Criar arquivos


d.1) http

    nano nome_da_wiki_80

Incluir:

       <VirtualHost nome_da_wiki.if.ufrgs.br:80>
           ServerAdmin webadmin@if.ufrgs.br
           DocumentRoot /var/www/wikis/nome_da_wiki_ssl
          <Directory /var/www/wikis/nome_da_wiki_ssl>
               Options Indexes FollowSymLinks
               AllowOverride None
          </Directory>
          ErrorLog /var/log/apache2/nome_da_wiki-error.log
          LogLevel warn
          CustomLog /var/log/apache2/nome_da_wiki-access.log combined
       </VirtualHost>

d.2) https

    nano nome_da_wiki_ssl

Incluir:

     <VirtualHost nome_da_wiki.if.ufrgs.br:443>
       ServerAdmin webadmin@if.ufrgs.br
       DocumentRoot /var/www/wikis/nome_da_wiki_ssl
               ServerName helsinque.if.ufrgs.br
               SSLEngine on
               RewriteEngine On
               SSLCertificateFile \
               /etc/ssl/cominf.if.ufrgs.br.cert
               SSLCertificateKeyFile \
               /etc/ssl/helsinque.if.ufrgs.br.key.unsecurity
       <Directory /var/www/wikis/nome_da_wiki_ssl>
               Options Indexes FollowSymLinks
               AllowOverride None
       </Directory>
       ErrorLog /var/log/apache2/nome_da_wiki-error.log
       LogLevel warn
       CustomLog /var/log/apache2/nome_da_wiki-access.log combined
     </VirtualHost>


e) Criar link

     cd /etc/apache2/sites-enabled
     ln -s  ../sites-available/nome_da_wiki_ssl nome_da_wiki
     ln -s  ../sites-available/nome_da_wiki_80 nome_da_wiki_80

f) Reiniciar Serviço

     /etc/init.d/apache2 restart


Etapa 2 (Gaya)

DNS

- Editar dns

    cd /etc/bind/
    vi cnames.txt

Incluir:

      Nome_da_wiki CNAME helsinque (ou servidor de wikis atual)

- Reiniciar serviço

    cd ..
    ./dns-update.sh

BANCO DE DADOS -

- Acessar banco

     mysql -p
     (colocar senha do banco de dados)

- Criar Banco de dados

     mysql>show databases;
     mysql>create database wiki_nome_da_wiki;

- Dar acesso ao usuário wiki_user ao banco criado

     mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON wiki_nome_da_wiki.* TO wiki_user@143.54.40.45;

- reiniciar serviço

     /etc/init.d/mysql restart

Etapa 3 (Rosen)

- Incluir arquivo na base LDAP com pessoas autorizadas a modificar a wiki. Ou seja, incluir um novo "entry" na árvore da base de dados do LDAP. Isto pode ser feito através do programa lbe.sh.

dn: cn=w_nome_da_wiki,ou=grupos,ou=dominio, dc=if
gidNumber: número (cada novo entry deve ter um novo gidNumber)
memberUid: User
userPassword:: e2NyeXB0fSo=
objectClass: posixGroup
objectClass: top
cn: w_nome_da_wiki

ATENÇÃO:

1)Colocar primeira letra em maiúscula no nome do usuário.

2)Isto não é necessário na wiki.if.ufrgs.br, pois ela está utilizando uma nova versão da extensão LDAP Authentication ( >2.0 tem um LDAPLowercaseUsernameScheme).

  • No browser

- Abrir o site da wiki feita para fazer a configuração

http://nome_da_wiki.if.ufrgs.br

- Algumas configurações:

wiki name: NOME DA WIKI
contact e-mail webadmin@if.ufrgs.br
Admin username: wiki_user
Password:
Object caching: No caching
Database type: MySQL
Database host: 143.54.40.2
Database name: wiki_nome_da_wiki
DB username: wiki_user
DB password (senha do usuário do banco de dados)
Database table prefix: mw_

Etapa 4 (Helsique)

  • Finalizadas as configurações, será gerado e baixado um arquivo LocalSettings.php, que deverá ser salvo em /var/www/wikis/nome_da_wiki
  • Alternativamente, o arquivo poderá ser criado em /var/www/wikis/nome_da_wiki/config. Neste caso, basta movê-lo um diretório acima:
mv /var/www/wikis/nome_da_wiki/config/LocalSettings.php /var/www/wikis/nome_da_wiki/
  • Incluir as linhas abaixo no arquivo LocalSettings.php com caminho do LDAP correto:
#################################################################
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
require_once( 'includes/AuthPlugin.php' );
$wgAuth = new LdapAuthenticationPlugin();
#$wgLDAPUseLocal = true;
$wgLDAPDomainNames = array(
 'IF'
);
$wgLDAPServerNames = array(
 'IF' => '143.54.40.8'
);
$wgLDAPSearchStrings = array(
 'IF' => 'uid=USER-NAME,ou=usuarios,ou=dominio,dc=if'
);
$wgLDAPEncryptionType = array(
 'IF' => 'clear'
);
#######################
$wgLDAPRequiredGroups = array( "IF"=>array("cn=w_nome_da_wiki,ou=grupos,ou=dominio,dc=if") );
$wgLDAPGroupUseFullDN = array( "IF"=>false );
$wgLDAPGroupObjectclass = array( "IF"=>"posixgroup" );
$wgLDAPGroupAttribute = array( "IF"=>"memberuid" );
$wgLDAPGroupSearchNestedGroups = array( "IF"=>false );
$wgLDAPGroupNameAttribute = array( "IF"=>"cn" );
$wgLDAPBaseDNs = array( "IF"=>"ou=dominio,dc=if" );
#######################
$wgMinimalPasswordLength = 1;
$wgLDAPDebug = 3;
$wgDebugLogGroups["ldap"] = "/tmp/debug.log" ;
#################################################################
  • Baixe o plugin LdapAuthentication apropriado para a versão do MediaWiki sendo utilizada
https://www.mediawiki.org/wiki/Special:ExtensionDistributor/LdapAuthentication
  • Extraia o pacote .tar.gz na pasta /var/www/wikis/nome_da_wiki_ssl/extensions; após este processo, deverá aparecer uma pasta LdapAuthentication com os seguintes arquivos:
COPYING       LdapAuthentication.i18n.php  README 
gitinfo.json  LdapAuthentication.php	   schema
i18n	      LdapAutoAuthentication.php   version
  • Alterar permissões
chown -R www-data.www-data /var/www/wikis/nome_da_wiki
chmod go-rw LocalSettings.php
  • Se houver erro ao acessar o banco de dados, será necessário atualizá-lo. Neste caso, basta abrir a pasta maintenance e executar o script update.php
cd /var/www/wikis/nome_da_wiki/maintenance
php update.php

Alterar wiki para Login seguro

  • Alterar as seguintes variáveis em "includes/DefaultSettings.php"
$wgServer           = "//nome_da_wiki.if.ufrgs.br";
$wgSecureLogin      = true;
  • Em LocalSetting.php, comentar a linha
$wgServer = "http://nome_da_wiki.if.ufrgs.br";       


Utilizando este método, não é necessário duas pastas com o código fonte da wiki (ex: "nome_da_wiki_80" e "nome_da_wiki_ssl").


Forma antiga de alterar wiki para Login seguro

  • No arquivo "languages/messages/MessagesPt_br.php", linha 555, mudar
'loginprompt'                => 'É necessário estar com os cookies ativados para poder autenticar-se na Instituto de Física - UFRGS.',
para
'loginprompt'                => 'Direcionando para login seguro. Por favor, aguarde...                                                   ',
  • No includes/templates/Userlogin.php, na primeira linha:
<meta HTTP-EQUIV="REFRESH" content="0; url=https://pagina.if.ufrgs.br/index.php?title=Especial:Entrar&returnto=Especial:Entrar">
ou, caso for versão 1.23.4:
<meta HTTP-EQUIV="REFRESH" content="0; url=https://wiki.if.ufrgs.br/index.php?title=Especial:Autenticar-se&returnto=P%C3%A1gina+principal">

Isto pode variar de acordo com a versão da wiki.

  • Por fim, comentar linhas 36 a 42, 43 a 50, 57 a 65 e 68 a 77