$wgSitename = "Mon Site";
# par défaut $wgMetaNamespace=false et $wgSitename est utilisé comme Meta Namespace# il est utile de spécifier $wgMetaNamespace si $wgSitename contient des espace pour les remplacer par des underscores$wgMetaNamespace = "Mon_Site";
MediaWiki:Pagetitle permet de modifier le texte dans les onglets de l'explorateur web ($1 → nom de la page)
Si $wgServer n'est pas définie, il est calculé automatiquement. Mais certains serveurs ne retourne pas la bonne url (http://localhost).
LocalSettings.php
$wgServer = "http://mon.site.fr";
// pour le support de ssl il ne faut pas ajouter le protocole, ainsi cela fonctionnera avec http et https$wgServer = "//mon.site.fr";
// la configuration de Creative Commons rend la connexion partiellement encryptée car l'url de l'image pointe vers un autre site$wgRightsIcon = "http://i.creativecommons.org/l/by-sa/3.0/88x31.png";
// copier l'image sur le serveur et changer l'url$wgRightsIcon = "$wgStylePath/common/images/cc-by-sa.png";
Par défaut, mediawiki utilise la date UTC (sans décalage en fonction du fuseau horaire) du serveur.
Chaque utilisateur doit définir son fuseau horaire dans ses préférences.
# Interdit l'édition de pages aux utilisateurs non-connectés$wgGroupPermissions['*']['edit'] = false;
# Interdit du même coup la création de pages mais pas les liens vers la création des pages# pour cela il faut interdire explicitement la création de pages$wgGroupPermissions['*']['createpage'] = false;
# Interdit la création de nouveaux comptes aux utilisateur non-connectés# Seul le compte administrateur peut maintenant créer de nouveaux comptes$wgGroupPermissions['*']['createaccount'] = false;
# Autoriser le téléversement$wgEnableUploads = true;
# Par défaut les utiliseurs non-loggés ne sont pas autorisés à téléverser.# Autorise les utilisateurs loggués à supprimer des pages$wgGroupPermissions['user']['delete'] = true;
$wgGroupPermissions['user']['undelete'] = true;
# Autorise les utilisateurs loggués à modifier les droits utilisateur$wgGroupPermissions['user']['userrights'] = true;
# pour un wiki privé# interdire la lecture aux utilisateurs non connectés$wgGroupPermissions['*']['read'] = false;
# Mais autoriser l'accès à la page de login# (You also might want to add access to "Main Page", "Help:Contents", etc.)$wgWhitelistRead = array ("Special:Userlogin");
# retirer un type de fichier de la liste noire$wgFileBlacklist = array_diff( $wgFileBlacklist, array ('py') );
# autoriser le téléversement de type de fichiers supplémentaires$wgFileExtensions = array_merge(
$wgFileExtensions, array(
'pdf', 'svg', 'py'
)
);
# Default value: array( 'png', 'gif', 'jpg', 'jpeg' )
// Add svg and pdf to the allowed extensions (defaults are 'png', 'gif', 'jpg', 'jpeg', 'webp')$wgFileExtensions = array_merge(
$wgFileExtensions, [
'svg', 'pdf'
]
);
Firefox doesn’t support the letter-spacing property in SVGs, so turn the letters into a path to fix the issue. [1]
# load the Vector skin and set it as defaultwfLoadSkin( 'Vector' );
$wgDefaultSkin = 'vector-2022';
# make Vector a responsive skin$wgVectorResponsive = true;
# enable NightMode$wgVectorNightMode['beta'] = true;
$wgVectorNightMode['logged_out'] = true;
$wgVectorNightMode['logged_in'] = true;
# set NightMode by default$wgDefaultUserOptions['vector-theme'] = 'night';
// pour une utilisation avec OPcache (bytecode caching) et APCu (object caching)// désactivé par défaut CACHE_NONE$wgMainCacheType = CACHE_ACCEL;
// depuis la version 1.27, les sessions sont stockées dans le cache des objets.// le cache des sessions a besoin d'être persistant, si MainCacheType est définit à ACCEL, il faut définir SessionCacheType à DB$wgSessionCacheType = CACHE_DB;
// définir un dossier pour le cache// il doit avoir les droits en écriture pour http// et ne pas être accessible depuis une requête$wgCacheDirectory = "$IP/cache";
// Utile pour les utilisateur non-logué$wgUseFileCache = true;
$wgFileCacheDirectory = "$IP/cache";
$wgShowIPinHeader = false;
À voir
LocalSettings.php
// mettre en cache les liens de navigation de la colonne de gauche$wgEnableSidebarCache = true;
// Increase parse cache lifetime to 30 days (default: 86400 seconds = 24 hours)$wgParserCacheExpireTime = 2592000;
// wgParserCacheType hérite de la valeur de wgMainCacheType (défault: CACHE_ANYTHING)$wgParserCacheType = CACHE_DB;
// Increase Resource Loader cache lifetime to 30 days (default: 5 minutes)$wgResourceLoaderMaxage = 2592000;
// compresse les pages mises en cache. Retourne les pages compressés aux clients qui l'acceptent.// nécessite zlib et son activation dans php (vérifier dans phpinfo)$wgUseGzip = true;
Ne pas activer $wgUseGzip si le serveur archive déjà les pages (via ob_gzhandler ou zlib.output_compression).
Dans ce cas les pages affichées seront pleins de caractères incompréhensibles.
Pour une page: avec son url wiki/MaPage?action=purge ou wiki/index.php?title=MaPage&action=purge
Pour toutes les pages avec $wgInvalidateCacheOnLocalSettingsChange
LocalSettings.php
# purge all the pages when LocalSettings.php is modified$wgInvalidateCacheOnLocalSettingsChange = true;
Stocker toutes les images sur le site
Par exemple l'image Creative Common est téléchargée depuis leur site web à chaque chargement de page.
Il est moins couteux de la copier sur le site et de la servir depuis le site.
L'extension d'Internationalization intl PECL
L'extension PECL intl permet de normaliser Unicode, en remplacement de la version par défaut lente implémentée en PHP.
# par défaut interdire l'indexation et le suivit de toutes les pages$wgDefaultRobotPolicy = 'noindex,nofollow';
# permettre l'indexation dans les pages de MAIN et le suivit des liens dans les pages MAIN et CATEGORY$wgNamespaceRobotPolicies = array( NS_MAIN => 'index,follow', NS_CATEGORY => 'noindex,follow' );
# interdire l'indexation et le suivit de la page Test$wgArticleRobotPolicies = array( 'Test' => 'noindex,nofollow' );
# Version plus restrictive
User-agent: *
# autorise l'accès aux articles
Allow: /wiki/
# autorise les CSS et JavaScript via load.php
Allow: /load.php
# interdit tout le reste
Disallow: /
« /index.php?title=Spécial: » semble poser problème.
Utiliser « /index.php?title=Sp%C3%A9cial: » à la place ?
cd /var/www/mediawiki
php maintenance/generateSitemap.php \
--memory-limit 50M \
--fspath /var/www/mediawiki/sitemap/ \
--urlpath /sitemap/ \
--server https://wiki.domain.net \
--conf /var/www/mediawiki/LocalSettings-xxx.php \
--skip-redirects
# conf pour spécifier l'emplacement de LocalSettings.php si ce n'est pas celui par défaut qui doit être utilisé# server forcer l'url du serveur car il est parfois mal détécté# urlpath url ajoutée avant les nom de fichier dans l'index, vide par défaut# skip-redirects ne pas inclure les redirections d'articles# fspath=/tmp/sitemap/ dossier où générer les fichiers sitemap, le dossier courant par défaut# compress yes|no, default yes# php maintenance/generateSitemap.php --help# un fichier sitemap-index-domaine.xml sera générer pour lister les fichiers sitemap# un fichier par namespace sera généré sitemap-domaine-NS_0-0.xml.gz
/etc/nginx/sites-available/mediawiki.conf
# Allow access to the sitemap
location ^~ /sitemap/ { }
location = /sitemap.xml { }
LocalSettings.php
# inclure seulement le namespace 0 (NS_MAIN) dans la génération du sitemap$wgSitemapNamespaces = array( 0 );
Le filtre se fait sur $_SERVER['SERVER_NAME'] qui est définit dans le fichier de conf de Nginx avec server_name.
C'est toujours la première valeur de la ligne server_name qui sera prise en compte.
Si cette ligne contient plusieurs valeurs, il faudra créer un fichier de conf Nginx pour chacune de ces valeurs.
LocalSettings.php
<?phpswitch ( $_SERVER['SERVER_NAME'] ) {
case'wiki1.domaine.fr':
require_once'LocalSettings-wiki1.php';
break;
case'wiki2.domaine.fr':
require_once'LocalSettings-wiki2.php';
break;
default:
header( 'HTTP/1.1 404 Not Found' );
echo'This wiki is not available. Check configuration.<br>';
echo'SERVER_NAME : ' . $_SERVER['SERVER_NAME'];
exit( 0 );
}
LocalSettings-wiki1.php est l'ancien LocalSettings.php
Supprimer LocalSettings.php puis se connecter au site permettra la création du fichier LocalSettings-wiki2.php, de la bdd ainsi que de l'utilisateur de la bdd et du wiki