« Mediawiki » : différence entre les versions
Ligne 18 : | Ligne 18 : | ||
== Migration de la bdd == | == Migration de la bdd == | ||
<kode lang=bash> | |||
cd /var/www/mediawiki | |||
sudo -u www-data php maintenance/update.php --conf LocalSettings-wiki.php | |||
</kode> | |||
=== OLD === | |||
<kode lang=bash> | <kode lang=bash> | ||
# définir le SERVER_NAME dans le cas où plusieurs instances de mediawiki sont sur le même serveur | # définir le SERVER_NAME dans le cas où plusieurs instances de mediawiki sont sur le même serveur |
Dernière version du 20 octobre 2024 à 22:31
Liens utiles
Mise à jour
Backup
Faire un backup complet: fichiers + base de données
Download and install the release
Migration de la bdd
cd /var/www/mediawiki sudo -u www-data php maintenance/update.php --conf LocalSettings-wiki.php |
OLD
# définir le SERVER_NAME dans le cas où plusieurs instances de mediawiki sont sur le même serveur export SERVER_NAME=wiki1.domaine.fr # mise à jour de la bdd cd /usr/share/webapps/mediawiki php maintenance/update.php |
Custom skin
skins/MonoBook/includes/SkinMonoBook.php |
function setupSkinUserCss( OutputPage $out ) { // ajouter le css custom $out->addStyle( $this->stylename . '/resources/custom.css', 'screen' ); $out->addStyle( $this->stylename . '/resources/custom-mobile.css', 'screen' ); } |
WikiEditor
- Masquer la popup de confirmation lors de la publication
- Afficher du texte dans les boutons au lieu d'images
debug
LocalSettings.php |
$wgShowExceptionDetails = true; error_reporting( -1 ); ini_set( 'display_errors', 1 ); |
php maintenance/eval.php > print $wgLocaltimezone Europe/Paris |
Reporter un bug
https://bugzilla.wikimedia.org/
Job
À chaque requête 1 tâche est prise dans la pile pour être exécutée.
- $wgJobRunRate permet de changer le nombre de tâches à exécuter à chaque requête.
- runJobs.php permet d’exécuter directement les taches de la pile.
# execute all jobs manually cd /usr/share/webapps/mediawiki php maintenance/runJobs.php # add a cron task to run all jobs periodically # edit crontab for user www-data sudo -u www-data crontab -e # run runJobs.php every 5 minutes */5 * * * * php /var/www/mediawiki/maintenance/runJobs.php # --conf /var/www/mediawiki/LocalSettings-xxx.php to target a specific LocalSettings |
LocalSettings.php |
# if sets to 0, jobs will not be done during ordinary apache requests. # In this case, maintenance/runJobs.php should be run periodically. $wgJobRunRate = 0; |
Pour connaître le nombre de tâches dans la pile: api.php?action=query&meta=siteinfo&siprop=statistics&format=jsonfm |
Forcer la mise à jour des catégories
php maintenance/refreshLinks.php |
Backup
Avant de réaliser un backup il faut geler le site afin que le backup soit cohérent.
Ensuite il faut réaliser un backup de la base de données et des fichiers.
Stopper les modifications du site
# Fichier LocalSettings.php # Verrouille la base de données et affiche le message sur les pages d'édition $wgReadOnly = 'Backup in progress, access will be restored shortly.'; |
Base de données
En ligne de commande
mysqldump -u utilisateur -pmot_de_passe -rfichier.sql base_de_données |
phpMyAdmin
Se connecter à la base de données via phpMyAdmin.
Aller dans le menu Export. Vérifier que Add DROP TABLE est bien coché, puis lancer l'export.
Script
backup_mediawiki.sh |
#!/bin/bash set -u set -e set -o pipefail # configuration wiki_path='/var/www/wiki' backup_path='/root/backup/wiki' # functions freeze_website() { sed '2i\$wgReadOnly = "Backup in progress, access will be restored shortly.";' -i ${wiki_path}/LocalSettings.php } backup_files() { cd ${wiki_path%/*} tar cf - $(basename ${wiki_path}) | pigz > ${backup_path}/$(date +%Y-%m-%d-%H-%M-%S).tar.gz cd } backup_databases() { mysqldump mediawiki | pigz > ${backup_path}/$(date +%Y-%m-%d-%H-%M-%S)_wiki.sql.gz } unfreeze_websites() { sed '2d' -i ${wiki_path}/LocalSettings.php } rotate_backups() { find ${backup_path} -type f -mtime +7 -name '*.gz' -delete } ################################################## freeze_websites backup_files backup_databases unfreeze_websites rotate_backups |
Réduire la taille de la base de données
Delete old revisions
Reduce size of the database
# Supprimer l'historique des pages supprimées php maintenance/deleteArchivedRevisions.php --delete # Supprimer l'historique des pages # php maintenance/rebuildall.php php maintenance/deleteOldRevisions.php --delete |
Réduire la taille des fichiers
- Supprimer les extensions inutiles extensions (100MB)
- CategoryTree
- Cite
- CiteThisPage
- ConfirmEdit
- Gadgets
- InputBox
- LocalisationUpdate
- Poem
- SpamBlacklist
- TitleBlacklist
- Supprimer les fichiers de langue inutiles (75MB)
- languages/i18n/*.json
- languages/i18n/exif/*.json
- languages/messages/*.php
- Supprimer les fichiers de test tests (20MB)
- Supprimer les skins inutiles skins (10MB)
- Supprimer la documentation docs (1MB)
Erreurs
Plus de suggestions de recherche
RuntimeException from line 628 of /usr/share/webapps/mediawiki/includes/utils/UIDGenerator.php: bcmath or gmp extension required for 32 bit machines.
/etc/php/php.ini |
extension=gmp |
Votre session de connexion semble avoir des problèmes (MW 1.27)
Votre session de connexion semble avoir des problèmes ; cette action a été annulée en prévention d'un piratage de session. Veuillez cliquer sur « Précédent », rechargez la page d'où vous venez, puis réessayez. There seems to be a problem with your login session; this action has been canceled as a precaution against session hijacking. Go back to the previous page, reload that page and then try again.
LocalSettings.php |
# Se produit lorsque CACHE_ACCEL est utilisé $wgMainCacheType = CACHE_ACCEL; # Il faut forcer le SessionCacheType à CACHE_DB, par défaut il hérite de MainCacheType $wgSessionCacheType = CACHE_DB; |
Fatal exception of type MWException
Afficher plus de détails:
LocalSettings.php |
$wgShowExceptionDetails = true; |
PHP Parse error
Le dossier mediawiki semble contenir des fichiers corrompus. Il faut retelecharger l'archive et réinstaller le dossier mediawiki.
Impossible de créer le dossier « mwstore://local-backend/local-public/... ».
Le compte du serveur Apache (http) n'a pas les droits d'écriture sur le dossier images et ses sous-dossiers.
Table searchindex is marked as crashed and should be repaired
Se connecter au serveur SQL via PhpMyAdmin et executer la requete
REPAIR TABLE searchindex; |
Invalid argument supplied for foreach in geshi.php
Warning: Invalid argument supplied for foreach() in /home/users/bananeatomic/extensions/SyntaxHighlight_GeSHi/geshi/geshi.php on line 4362
/* Ligne 4362 du fichier geshi.php : */ foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) |
/* Ne pas commenter/supprimer de sous section de STYLES. */ 'STYLES' => array( ... /*'ESCAPE_CHAR' => array( ... ),*/ ... |
Warning: file_exists(): open_basedir restriction in effect. File ... is not within the allowed path(s)
Problème lors de l'upload d'un fichier.
Les fichiers sont uploadés dans upload_tmp_dir (/home/tmp), ce dossier doit être dans open_basedir (/home/users/bananeatomic:/tmp) ou un de ses sous-dossiers.
Correction : (re)définir « upload_tmp_dir » ou « open_basedir »
/etc/php/php.ini |
; Temporary directory for HTTP uploaded files (will use system default if not specified). upload_tmp_dir = "/home/users/bananeatomic/images/temp" open_basedir = "/home/users/bananeatomic:/tmp" |
Warning: file_exists(): open_basedir restriction in effect. File(/home/users/mywiki/skins/monobook/headbg.jpg) is not within the allowed path(s)
Problème avec une copie du skin monobook.
Le fichier « /home/users/mywiki/skins/monobook/headbg.jpg » est utilisé au lieu de « /srv/http/mywiki/skins/monobook/headbg.jpg »
Utiliser monobook ou modifier directement monobook corrige le problème.
File(/usr/bin/php) is not within the allowed path(s)
PHP Warning: is_executable(): open_basedir restriction in effect. File(/usr/bin/php) is not within the allowed path(s): (...) in /srv/http/bananeatomic/includes/Wiki.php on line 655
Mediawiki tente de faire lancer des actions en arrière-plan.
C'est juste un warning spécifiant que non, il n'est pas possible de lancer des actions en arrière-plan via l’exécutable php car il n'est pas dans les chemins des exécutables autorisés.
Bug corrigé dans la version 1.23.x |
Call to undefined function mysql_error() in DatabaseMysql.php
PHP Fatal error: Call to undefined function mysql_error() in .../includes/db/DatabaseMysql.php on line 326
La bibliothèque mysql pour php n'est pas chargée. Commentez mysqli.so et décommentez mysql.so:
/etc/php/php.ini |
;extension=mysqli.so extension=mysql.so |
Mediawiki ne supporte pas mysqli ni pdo_mysql |
Can't contact the database server: Access denied for user ...
Créer l'utilisateur et lui accorder les droits nécessaire.
DatabaseBase::factory no viable database extension found for type 'mysql'
/etc/php/php.ini |
extension=mysql.so extension=pdo_mysql.so |
Erreur lors de la création de la miniature : Impossible d'enregistrer la vignette sur la destination
Error creating thumbnail: Unable to save thumbnail to destination
LocalSettings.php |
$wgTmpDirectory = "$IP/images/temp"; |
Erreur lors de la création de la miniature : /bin/bash: /usr/bin/convert: No such file or directory
# installer ImageMagick sudo pacman -S imagemagic |