Manuel:$wgReadOnly

From mediawiki.org
This page is a translated version of the page Manual:$wgReadOnly and the translation is 100% complete.
Paramètres des scripts de maintenance: $wgReadOnly
Interdit l'édition, affichant la chaîne fournie comme raison.
Introduit dans la version :pre 1.1.0
Retiré dans la version :Encore utilisé
Valeurs autorisées :(chaîne), null/false
Valeur par défaut :null (1.5.7+)
false (1.1.0-1.5.6)

Détails

C'est fonctionnellement la même chose que $wgReadOnlyFile , mais en utilisant une chaîne au lieu d'un fichier.

S'il est défini sur une chaîne dans le fichier LocalSettings.php, $wgReadOnly interdit l'édition, affichant la chaîne donnée pour motif. Le motif fournit est précédé du contenu de MediaWiki:Readonlywarning

$wgReadOnly = 'Ce wiki est en cours de mise à jour vers une version logicielle plus récente. Veuillez revenir dans quelques heures.';

L'exemple ci-dessus verrouille le wiki fournissant une déclaration par défaut sur les pages d'édition, avec la chaîne incluse indiquant pourquoi le wiki a été verrouillé. Le code wiki est autorisé dans cette chaîne et sera rendu lorsque l'avertissement de lecture seule sera affiché. Ceci peut être utilisé pour fournir des liens, ou pour mettre en valeur les notifications.

Avertissement Avertissement : Par rapport à son nom, ce paramètre ne fait pas que la lecture en base de données ! Même si $wgReadOnly est initialisé, les extensions, les scripts d'API et les autres événements récupérables peuvent néanmoins écrire des données.

Mise à jour

Depuis MediaWiki 1.27, l'exécution du script de mise à jour ne fonctionnera pas si $wgReadOnly est positionné.

Une solution simple est d'initialiser en lecture seule uniquement, lorsque l'exécution ne se fait pas à partir de la ligne de commande, ce qui ne modifie pas le script :

$wgReadOnly = ( PHP_SAPI === 'cli' ) ? false : 'This wiki is currently being upgraded to a newer software version. Please check back in a couple of hours.';

Sessions

Si les sessions ne sont pas stockées dans un système de cache externe tel que Redis ou Memcached, les utilisateurs peuvent être déconnectés, et aucune tentative de connexion ultérieure ne réussira pendant le temps où le wiki sera en lecture seule; ils recevront un message similaire à :

Votre session de connexion semble avoir des problèmes ; cette action a été annulée en prévention d’un éventuel piratage de session. Veuillez soumettre à nouveau le formulaire.

Cache de base de données

Les actions sur le cache qui utilisent la base de données ne peuvent pas être écrites pendant le mode lecture seule, ce qui pourrait empêcher plus que la simple modification (en fonction de la configuration, de l'état connecté de l'utilisateur ou même de l'affichage des pages). On évite ceci en désactivant le cache au prix d'un ralentissement du wiki. Pour cela, modifiez ainsi LocalSettings.php :

$wgMessageCacheType = $wgMainCacheType = $wgParserCacheType = $wgSessionCacheType = CACHE_NONE;
$wgLocalisationCacheConf['storeClass'] = 'LCStoreNull';

Si vous voulez que votre wiki soit rapide sans utiliser encore la base de données, pensez à Memcached ou un équivalent. Voir $wgMainCacheType et $wgLocalisationCacheConf pour les détails. Si vous voulez activer la journalisation tandis que la base de données est en lecture seule, il faut qu'au moins $wgSessionCacheType soit initialisé à un mécanisme de cache réel sans rapport avec la base de données.

Onglets

Lorsqu'on est en mode lecture seule, les images qui ont besoin d'être transformées ou redimensionnées sont remplacées par un message d'erreur. Pour éviter ce problème, mettez le code suivant dans le fichier « LocalSettings.php » :

$wgIgnoreImageErrors = true;