Manuel:$wgReadOnly
Paramètres des scripts de maintenance: $wgReadOnly | |
---|---|
Interdit l'édition, affichant la chaîne fournie comme raison. |
|
Introduit dans la version : | avant la version 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) |
Autres paramètres : Alphabétique | Par fonction |
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.
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;