Liens
Nom du site
LocalSettings.php
|
$wgSitename = "Mon Site";
$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";
$wgServer = "//mon.site.fr";
$wgRightsIcon = "http://i.creativecommons.org/l/by-sa/3.0/88x31.png";
$wgRightsIcon = "$wgStylePath/common/images/cc-by-sa.png";
|
Transform url from http://domain/index.php?title=MyTitle to http://domain/wiki/MyTitle
LocalSettings.php
|
$wgUsePathInfo = true;
$wgArticlePath = "/wiki/$1";
|
Transform url for actions from http://domain/index.php?title=MyTitle&action=edit to http://domain/wiki/MyTitle/edit
LocalSettings.php
|
$actions = [
'view',
'edit',
'watch',
'unwatch',
'delete',
'revert',
'rollback',
'protect',
'unprotect',
'markpatrolled',
'render',
'submit',
'history',
'purge',
'info',
];
foreach ( $actions as $action ) {
$wgActionPaths[$action] = "/wiki/$1/$action";
}
$wgActionPaths['view'] = "/wiki/$1";
$wgArticlePath = $wgActionPaths['view'];
|
Affichage des dates
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.
Du code HTML dans les pages
Pour activer l'utilisation de balises HTML autre que celles prévues par défaut
LocalSettings.php
|
$wgRawHtml = true;
|
Allows to use images from Wikimedia Commons.
LocalSettings.php
|
$wgUseInstantCommons = true;
|
LocalSettings.php
|
$wgGroupPermissions['*']['edit'] = false;
$wgGroupPermissions['*']['createpage'] = false;
$wgGroupPermissions['*']['createaccount'] = false;
$wgEnableUploads = true;
$wgGroupPermissions['user']['delete'] = true;
$wgGroupPermissions['user']['undelete'] = true;
$wgGroupPermissions['user']['userrights'] = true;
$wgGroupPermissions['*']['read'] = false;
$wgWhitelistRead = array ("Special:Userlogin");
|
|
sudo -u www-data php maintenance/run.php --script changePassword --user "WikiSysOp" --password "xxx" --conf LocalSettings.php
sudo -u www-data php maintenance/run.php resetUserEmail MyName name@domain.net --no-reset-password --conf LocalSettings.php
|
LocalSettings.php
|
$wgFileBlacklist = array_diff( $wgFileBlacklist, array ('py') );
$wgFileExtensions = array_merge(
$wgFileExtensions, array(
'pdf', 'svg', 'py'
)
);
|
LocalSettings.php
|
$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] |
Modifier les types MIME: /includes/mime.types
Limitation de taille
/etc/php/php.ini
|
upload_max_filesize = 2M
|
/etc/nginx/nginx.conf
|
client_max_body_size 3M;
|
Apparence du site
Les boîtes rechercher, navigation et boîte à outils sont configurables via la page MediaWiki:Sidebar
- SEARCH
- navigation
- #top|Top
- Spécial:Recherche|Recherche
- randompage-url|randompage
- Spécial:Contact|Pour me contacter
- http://mon.site.net|Label
- mainpage|mainpage-description
- recentchanges-url|recentchanges
- helppage|help
- TOOLBOX
- LANGUAGES
Boîte à outils
Par défaut des liens sont ajoutés à boîte à outils, pour les cacher :
/skins/MonoBook/MonoBookTemplate.php
|
function toolbox() {
<?php
foreach ( $this->getToolbox() as $key => $tbitem ) {
if ($key != 'permalink' && $key != 'recentchangeslinked' && $key != 'print')
echo $this->makeListItem($key, $tbitem);
}
?>
|
La méthode getToolbox se trouve dans le fichier includes/skins/BaseTemplate.php. Elle contient les noms des clés.
Skin
Changer l'habillage par défaut
LocalSettings.php
|
$wgDefaultSkin = 'HabillageParDéfaut';
|
|
Pour les utilisateurs non loggués. |
Changer d'habillage
Pages spéciales → Préférences → onglet Apparence → Habillage
LocalSettings.php
|
wfLoadSkin( 'Vector' );
$wgDefaultSkin = 'vector-2022';
$wgVectorResponsive = true;
$wgVectorNightMode['beta'] = true;
$wgVectorNightMode['logged_out'] = true;
$wgVectorNightMode['logged_in'] = true;
$wgDefaultUserOptions['vector-theme'] = 'night';
|
skins/Vector/resources/skins.vector.styles/CSSCustomProperties.less
|
@import './custom-style.less';
html.skin-theme-clientpref-night {
color-scheme: dark;
.cdx-mode-dark();
.custom-mode-dark();
}
|
skins/Vector/resources/skins.vector.styles/custom-style.less
|
.custom-mode-dark() {
--background-color-base: rgb(38, 38, 38);
}
|
- Copier le dossier skins/MonoBook dans un nouveau dossier skins/NewMonoBook
- Fichiers à renommer:
- MonoBook.php → NewMonoBook.php
- MonoBookTemplate.php → NewMonoBookTemplate.php
- SkinMonoBook.php → SkinNewMonoBook.php
- Fichiers à éditer:
- NewMonoBook.php
- NewMonoBookTemplate.php
- SkinNewMonoBook.php
- i18n/*.json (garder seulement en et fr)
- skin.json
- Éditer le fichier « main.css » pour changer l'habillage ou ajouter de nouveaux fichiers css
- Éditer le fichier « NewMonoBookTemplate » pour changer la structure du HTML généré
Ajouter d'autres fichiers CSS
skins/NewMonoBook/includes/SkinNewMonoBook.php
|
function setupSkinUserCss( OutputPage $out ) {
$out->addStyle( $this->stylename . '/resources/custom.css', 'screen' );
}
|
LocalSettings.php
|
$wgLogo = "$wgScriptPath/resources/assets/MonLogo.png";
$wgLogo = "$wgScriptPath/images/x/xx/MonLogo.png";
|
Taille recommendée : 135 x 135 pixels
Petite icône dans l'onglet de l'explorateur web et à gauche de l'url.
Tailles recommendées : 16x16 ou 32x32 pixels.
LocalSettings.php
|
$wgFavicon = "$wgScriptPath/MonIcone.ico";
|
|
Par défaut c'est l'image favicon.ico qui est utilisé. |
Masquer le message « Votre modification a été enregistrée »
|
.postedit { display: none !important; }
|
- languages/messages/MessagesFr.php
- resources/Resources.php
- resources/mediawiki.action/mediawiki.action.view.postEdit.js
- resources/mediawiki.action/mediawiki.action.view.postEdit.css
Fixer la colonne de gauche
skin/MonoBook/resources/custom.css
|
div#column-one {
position: fixed;
z-index: 3;
}
div#content {
min-height: 420px;
}
|
skins/MonoBook/templates/skin.mustache
|
<div class="visualClear">
{{#data-portlets}}
<div role="navigation" class="portlet" id="p-cactions" aria-labelledby="p-cactions-label">
<h3 id="p-cactions-label" {{{html-user-language-attributes}}}>{{msg-monobook-cactions-label}}</h3>
<div class="pBody">
<ul {{{html-user-language-attributes}}}>
{{! comments used to avoid additional whitespace}}
{{{data-namespaces.html-items}}}{{!
}}{{{data-views.html-items}}}{{!
}}{{{data-actions.html-items}}}
{{{data-variants.html-items}}}
</ul>
</div>
</div>
{{#data-cactions-mobile}}{{>Portlet}}{{/data-cactions-mobile}}
{{#data-personal}}
<div role="navigation" class="portlet" id="{{id}}" aria-labelledby="{{id}}-label">
<h3 id="{{id}}-label" {{{html-user-language-attributes}}}>{{label}}</h3>
<div class="pBody">
<ul {{{html-user-language-attributes}}}>
{{{html-items}}}
</ul>
</div>
</div>
{{/data-personal}}
{{/data-portlets}}
</div>
</div>
<div id="column-one" {{{html-user-language-attributes}}}>
<h2>{{msg-navigation-heading}}</h2>
<div class="portlet" id="p-logo" role="banner">
<a href="{{link-mainpage}}" class="mw-wiki-logo"></a>
</div>
<div id="sidebar">
|
Masquer les onglets content-actions
includes/skins/SkinTemplate.php
|
if ( $this->loggedin ) {
$content_navigation['views']['history'] = [
'class' => ( $onPage && $action == 'history' ) ? 'selected' : false,
'text' => wfMessageFallback( "$skname-view-history", 'history_short' )
->setContext( $this->getContext() )->text(),
'href' => $title->getLocalURL( 'action=history' ),
];
}
|
Installer APCu et OPCache
LocalSettings.php
|
$wgMainCacheType = CACHE_ACCEL;
$wgSessionCacheType = CACHE_DB;
$wgCacheDirectory = "$IP/cache";
|
LocalSettings.php
|
$wgUseFileCache = true;
$wgFileCacheDirectory = "$IP/cache";
$wgShowIPinHeader = false;
|
À voir
LocalSettings.php
|
$wgEnableSidebarCache = true;
$wgParserCacheExpireTime = 2592000;
$wgParserCacheType = CACHE_DB;
$wgResourceLoaderMaxage = 2592000;
$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
|
$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.
|
sudo pacman -S php-intl
|
/etc/php/php.ini
|
extension=intl.so
|
Performances MySql
- Utiliser le moteur InnoDB pour toutes les tables
Performances du serveur web
Outils externes
diff3
Permet l'édition de conflits (merging).
LocalSettings.php
|
$wgDiff3 = "/usr/bin/diff3";
|
|
Valeur par défaut: /usr/bin/diff3 |
ImageMagick
Permet la création de miniature et la convertion d'images svg
LocalSettings.php
|
$wgUseImageMagick = true;
$wgImageMagickConvertCommand = '/usr/bin/convert';
|
|
Valeurs par défaut:
- $wgUseImageMagick false
- $wgImageMagickConvertCommand /usr/bin/convert
|
robots.txt
|
User-agent: *
Disallow: /index.php
Disallow: /images/
Disallow: /images-kiwi/
Crawl-delay: 2
|
- L'accès aux urls /wiki/ est autorisée
- L'interdiction d'accès à Spécial et Catégories est faite dans le fichier LocalSettings.php
LocalSettings.php
|
$wgDefaultRobotPolicy = 'noindex,nofollow';
$wgNamespaceRobotPolicies = array( NS_MAIN => 'index,follow', NS_CATEGORY => 'noindex,follow' );
$wgArticleRobotPolicies = array( 'Test' => 'noindex,nofollow' );
|
robots.txt
|
# 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
|
/etc/nginx/sites-available/mediawiki.conf
|
location ^~ /sitemap/ { }
location = /sitemap.xml { }
|
LocalSettings.php
|
$wgSitemapNamespaces = array( 0 );
|
Make the sitemap xml file discoverable to crawlers:
|
ln -s /sitemap/sitemap-index-wiki.domain.net.xml sitemap.xml
|
robots.txt
|
Sitemap: https://wiki.domain.net/sitemap.xml
|
PHP Warning: failed to mkdir "/usr/share/webapps/mediawiki/cache"
/etc/php/php.ini
|
open_basedir = /usr/share/webapps/mediawiki/cache/
|
|
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
|
<?php
switch ( $_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
LocalSettings-wiki2.php
|
$wgUploadDirectory = "{$IP}/images-wiki2";
$wgUploadPath = "{$wgScriptPath}/images-wiki2";
$wgCacheDirectory = "$IP/cache-wiki2";
|
|
mkdir /var/cache/wiki2
chown http:http /var/cache/wiki2/
ln -s /var/cache/wiki2 cache-wiki2
mkdir /var/lib/wiki2
chown http:http /var/lib/wiki2/
ln -s /var/lib/wiki2 images-wiki2
|
|
export SERVER_NAME=wiki1.domaine.fr
cd /usr/share/webapps/mediawiki
php maintenance/update.php
|
Copie des sources
|
Mises à jour compliquées. |
|
cp -r /usr/share/webapps/wiki1 /usr/share/webapps/wiki2
cd /usr/share/webapps/wiki2
rm cache images LocalSettings.php
mkdir /var/cache/wiki2
chown http:http /var/cache/wiki2/
ln -s /var/cache/wiki2 cache
mkdir /var/lib/wiki2
chown http:http /var/lib/wiki2/
ln -s /var/lib/wiki2 images
|
- créer le fichier de config Nginx
- créer le fichier de config Uwsgi
- la première connexion au site permettra la création du fichier LocalSettings.php