Handleiding:$wgReadOnly

From mediawiki.org
This page is a translated version of the page Manual:$wgReadOnly and the translation is 100% complete.
Onderhoudsscripts instelling: $wgReadOnly
Laat bewerken niet toe, met de opgegeven string als reden.
Geïntroduceerd in versie:pre 1.1.0
Verwijderd in versie:nog steeds in gebruik
Toegelaten waardes:(string), null/false
Standaardwaarde:null (1.5.7+)
false (1.1.0-1.5.6)

Details

Deze instelling is functioneel hetzelfde als $wgReadOnlyFile , maar gebruikt een string in plaats van een bestand.

Indien deze variabele in het bestand LocalSettings.php een tekst bevat, $wgReadOnly staat het bewerken niet toe en toont deze tekst als reden. Deze tekst wordt voorafgegaan door de inhoud van MediaWiki:Readonlywarning.

$wgReadOnly = 'Deze wiki wordt momenteel bijgewerkt naar een nieuwe softwareversie. Probeer het over een paar uur nog eens.';

In het bovenstaande voorbeeld wordt er een 'lock' op de wiki gezet en een standaardtekst op de bewerkingspagina's getoond, het bevat standaard een tekst die aangeeft dat op dat moment de wiki wordt geüpgrade. Dit als een verklaring waarom het bijwerken tijdelijk niet mogelijk is. In de tekst mag wikitekst staan, het wordt opgebouwd als de waarschuwing dat er alleen gelezen kan worden, wordt getoond. Hierdoor is het mogelijk een link te plaatsen of een melding met kleur te markeren.

Waarschuwing Waarschuwing: Anders dan de naam lijkt aan te geven, wordt de database niet alleen-lezen! Zelfs wanneer $wgReadOnly is ingesteld kunnen extensies, API scripts en andere gebeurtenissen in het cache nog steeds data schrijven.

Upgraden

Vanaf MediaWiki 1.27, het uitvoeren van het upgrade script zal niet werken als $wgReadOnly een tekst bevat.

Een eenvoudige oplossing is het zetten op alleen-lezen als het niet via de commando-regel wordt uitgevoerd, dan heeft het geen gevolgen voor het commando-regel update 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.';

Sessies

Als sessies niet op een extern caching systeem als Redis of Memcached worden opgeslagen, kunnen gebruikers uitgelogd worden en vervolgens niet meer inloggen omdat de wiki alleen-lezen is tijdens de upgrade. Die gebruiker krijgt dan een melding als:

Er lijkt een probleem te zijn met uw aanmeldsessie. Uw handeling is gestopt uit voorzorg tegen een beveiligingsrisico (dat bestaat uit mogelijke "hijacking" van deze sessie). Probeer het formulier opnieuw te versturen.

DB caching

Caches die de database gebruiken kunnen niet schrijven tijdens de tijd van de upgrade, dat kan meer alleen het bewerken van pagina's blokkeren (dat hangt af van de configuratie, logging in of zelfs bekijken van pagina's). Dit kan worden voorkomen door de cache uit te schakelen, dan wordt de wiki wel langzamer. De cache uitschakelen kan worden gedaan met de volgende instellingen in LocalSettings.php:

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

Als u een snelle wiki wilt hebben en de database toch wilt blokkeren, overweeg dan om Memcached o.i.d. te gebruiken. Bekijk $wgMainCacheType en $wgLocalisationCacheConf voor details. Als u inloggen mogelijk wilt maken terwijl de database alleen-lezen is, dan moet minstens $wgSessionCacheType worden gezet op een caching mechanisme dat de database niet gebruikt.

Miniaturen

Als tijdens het alleen-lezen afbeeldingen getransformeerd of geschaald moeten worden dan wordt er een foutmelding getoond in plaats van de afbeelding. Dit probleem kan worden voorkomen door in het bestand "LocalSettings.php" toe te voegen:

$wgIgnoreImageErrors = true;