User Tools

Site Tools


doc:appunti:linux:sa:mediawiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:mediawiki [2014/04/08 10:37] – [Rimozione utenti] niccolodoc:appunti:linux:sa:mediawiki [2018/02/07 15:51] (current) – [Configurazione di un dominio apposito per il mobile] niccolo
Line 69: Line 69:
 <code php> <code php>
 require_once "$IP/extensions/MobileFrontend/MobileFrontend.php"; require_once "$IP/extensions/MobileFrontend/MobileFrontend.php";
 +$wgMobileFrontendLogo = "$wgScriptPath/logo-mobile.png";
 +// Mobile/desktop autodetection is incompatible with front-end cache.
 $wgMFAutodetectMobileView = true; $wgMFAutodetectMobileView = true;
-$wgUseFileCache = false; // otherwise autodetection won't be reliable+// Disable cache if $wgMFAutodetectMobileView is true. 
 +$wgUseFileCache = false;
 </code> </code>
  
Line 90: Line 93:
 ==== Configurazione di un dominio apposito per il mobile ==== ==== Configurazione di un dominio apposito per il mobile ====
  
-I siti della WikiMedia Foundation (Wikipedia) utilizzano un trucco per fornire la versione desktop e mobile contemporaneamente: attivano un dominio apposito per il mobile (ad esempio **''it.m.wikipedia.org''**) e su quello forzano l'output per dispositivo mobile. Il trucco si basa su un header HTTP che viene aggiunto dal server web (in Apache occorre il modulo **mod_headers**) e che l'estensione MobileFrontend intercetta. L'header da aggiungere è ''X-Device'', che deve avere uno dei valori indicati in questo [[https://git.wikimedia.org/blob/mediawiki%2Fextensions%2FMobileFrontend/caeaa8073e5faf8934b8e713764108ca18eb90bb/includes%2FDeviceDetection.php|file]] (si consiglia il generico ''mobi''). Questi i passaggi per la configurazione:+**ATTENZIONE**: Questa ricetta va bene per **MediaWiki 1.22**, con MobileFrontend opportuno (**aprile 2014**). Nelle versioni più recenti (es. **MediaWiki 1.30** e MobileFrontend di **febbraio 2018**) **non esiste più la gestione dell'header speciale**, tutto sembra più semplice e automatico. 
 + 
 +I siti della WikiMedia Foundation (Wikipedia) utilizzano un trucco per fornire la versione desktop e mobile contemporaneamente: attivano un dominio apposito per il mobile (ad esempio **''it.m.wikipedia.org''**) e su quello forzano l'output per dispositivo mobile. Il trucco si basa su un header HTTP che viene aggiunto dal server web (in Apache occorre il modulo **mod_headers**) e che l'estensione MobileFrontend intercetta. Il cookie ''stopMobileRedirect'' dovrebbe garantire che il sito si presenta sempre nella veste preferita, dopo che l'utente ha cliccato sul link versione mobile o versione desktop. 
 + 
 +L'header da aggiungere è ''X-WAP''. Questi i passaggi per la configurazione:
  
   - Aggiungere un nome al DNS, ad esempio per il dominio ''%%www.mydomain.org%%'' si può usare ''%%www.m.mydomain.org%%'' (dove //m// sta per mobile).   - Aggiungere un nome al DNS, ad esempio per il dominio ''%%www.mydomain.org%%'' si può usare ''%%www.m.mydomain.org%%'' (dove //m// sta per mobile).
-  - Definire in **''LocalSettings.php''** la variabile [[http://www.mediawiki.org/wiki/Extension:MobileFrontend/Configuring_browser_auto-detection|$wgMobileUrlTemplate]]: <code php>$wgMobileUrlTemplate = '%h0.m.%h1.%h2';</code> FIXME **Attenzione al bug [[https://bugzilla.wikimedia.org/show_bug.cgi?id=58321|58321]]!** la variabile deve inizare con un segnaposto **''%h''** altrimenti non viene usata correttamente! +  - Definire in **''LocalSettings.php''** la variabile [[http://www.mediawiki.org/wiki/Extension:MobileFrontend/Configuring_browser_auto-detection|$wgMobileUrlTemplate]] e disabilitare l'autodetect (sarà poi possibile abilitare la cache): <code php>$wgMobileUrlTemplate = '%h0.m.%h1.%h2'
-  - Configurare il ''VirtualHost'' in Apache per il dominio mobile, in esso impostare l'header **''X-Device''**. Apache aggiungerà l'header alla richiesta di una pagina dal dominio mobile e l'estensione di MediaWiki servirà la versione opportuna (con Apache 2.4 si potrebbe sfruttare la direttiva ''%%<If>%%''): <file><ifModule mod_headers.c>+$wgMFAutodetectMobileView = false;</code> **Attenzione al bug [[https://bugzilla.wikimedia.org/show_bug.cgi?id=58321|58321]]!** la variabile deve inizare con un segnaposto **''%h''** altrimenti non viene usata correttamente! 
 +  - Configurare il ''VirtualHost'' in Apache per il dominio mobile, in esso impostare l'header **''X-WAP''**. Apache aggiungerà l'header alla richiesta di una pagina dal dominio mobile e l'estensione di MediaWiki servirà la versione opportuna (con Apache 2.4 si potrebbe sfruttare la direttiva ''%%<If>%%'' invece di avere un VirtualHost dedicato): <file><ifModule mod_headers.c>
   <VirtualHost *:80>   <VirtualHost *:80>
     ServerName www.m.mydomain.org     ServerName www.m.mydomain.org
-    RequestHeader set X-Device "mobi"+    RequestHeader set X-WAP "no"
     ...     ...
   </VirtualHost>   </VirtualHost>
 </ifModule></file> </ifModule></file>
  
-FIXME C'è un problema (versioniMediaWiki 1.21.3, MobileFrontend 30dad7e). Avendo attivato il dominio specifico per il mobile (come descritto sopra), il link in basso per passare dalla versione normale a quella mobile non contiene il parametro **''mobileaction''**, ma si basa solo sulla richiesta del dominio //mobile//. Purtroppo il cookie **''stopMobileRedirect''** inibisce il cambio e si ottiene la versione desktop anche sul dominio mobileUn fix può essere quello di forzare l'aggiunta del parametro, modificando il file **''extensions/MobileFrontend/includes/MobileFrontend.hooks.php''**: +**ATTENZIONE:** L'utilizzo dell'header **''X-WAP''** può generare confusione, ma tant'è! Si sono verificati i sorgenti e si è verificato che funziona con la versione 2e0af84 REL1_22In qualche vecchia documentazione è scritto di utilizzare l'header ''X-Device'', ma questo non risulta dai sorgenti né funziona.
- +
-<code> +
-115c115 +
-< $queryString =  strlen( $wgMobileUrlTemplate ) ? '' : 'mobileaction=toggle_view_mobile'; +
---- +
-> $queryString =  'mobileaction=toggle_view_mobile'+
-</code>+
  
-FIXME Questa soluzione non è ancora compatibile con ''$wgUseFileCache''. Alcune pagine mobile vengono generate con uno stile sbagliato (titoli non cliccabili e quindi sezione non espandibile), indagare se si tratta di un problema legato a ''$wgMFAutodetectMobileView'' oppure al fatto che la cache non viene effettivamente popolata.+Questa soluzione dovrebbe essere compatibile con ''$wgUseFileCache''.
 ===== Attivazione cache ===== ===== Attivazione cache =====
  
-FIXME Vedere come si attiva e se è compatibile con tutte le altre estensioni, soprattutto con l'autodetect del dispositivo mobile/desktop.+FIXME Vedere come attivare la [[http://www.mediawiki.org/wiki/Manual:File_cache|cache]] e se è compatibile con tutte le altre estensioni, soprattutto con l'autodetect del dispositivo mobile/desktop.
  
 ===== Estensione Pdf Export ===== ===== Estensione Pdf Export =====
Line 185: Line 186:
 FIXME Nonostante che il MediaWiki sia configurato con **''%%$wgLanguageCode = "it";%%''**, l'utente collegato con Facebook viene accolto con la lingua inglese se ha impostato tale lingua su Facebook. Anche se cambia tale impostazione nelle preferenze, al successivo login la lingua viene nuovamente reimpostata. FIXME Nonostante che il MediaWiki sia configurato con **''%%$wgLanguageCode = "it";%%''**, l'utente collegato con Facebook viene accolto con la lingua inglese se ha impostato tale lingua su Facebook. Anche se cambia tale impostazione nelle preferenze, al successivo login la lingua viene nuovamente reimpostata.
  
 +Nel database di MediaWiki si possono trovare le tabelle relative alla relazione tra utenti MediaWiki e utenti Facebook:
 +
 +<code sql>
 +SELECT * FROM mediawiki.user_fbconnect ;
 +SELECT user_id,user_name FROM mediawiki.mwuser;
 +</code>
 ===== Rimozione utenti ===== ===== Rimozione utenti =====
  
Line 199: Line 206:
 ===== Combattere lo SPAM e rimuovere gli utenti ===== ===== Combattere lo SPAM e rimuovere gli utenti =====
  
-Seza le opportune precauzioni è possibile ritrovarsi decine di migliaia di utenti registrati a causa di bot automatici. Alcuni addirittura dopo aver scavalcato le protezioni contro la registrazione automatica (es. ConfirmEdit con ReCaptcha) mandano anche la mail di conferma. In pratica sembra che l'unica politica efficace sia quella di autenticare gli utenti in modo manuale, con l'estensione ConfirmAccount.+Seza le opportune precauzioni è possibile ritrovarsi decine di migliaia di utenti registrati a causa di bot automatici. Alcuni addirittura dopo aver scavalcato le protezioni contro la registrazione automatica (es. **ConfirmEdit** con ReCaptcha) mandano anche la mail di conferma. In pratica sembra che l'unica politica efficace sia quella di confermare i nuovi in modo manuale, con l'estensione **ConfirmAccount**.
  
 Nel caso in cui il danno sia già fatto è opportuno rimuovere gli account fake creati, che spesso restano dormienti fino al momento in cui verranno utilizzati. Sembra che lo strumento più efficace sia l'estensione **[[http://www.mediawiki.org/wiki/Extension:UserMerge|UserMerge]]**. Nel caso in cui il danno sia già fatto è opportuno rimuovere gli account fake creati, che spesso restano dormienti fino al momento in cui verranno utilizzati. Sembra che lo strumento più efficace sia l'estensione **[[http://www.mediawiki.org/wiki/Extension:UserMerge|UserMerge]]**.
doc/appunti/linux/sa/mediawiki.1396946249.txt.gz · Last modified: 2014/04/08 10:37 by niccolo