MediaWiki/Serveur internet sous Windows
La création d'un serveur internet sous Windows.
Plus précisément, sous Windows 10 Pro.
Prérequis
Organisation des dossiers sur le serveur
C:\phpwamp\apache\
C:\phpwamp\log\
C:\phpwamp\mysql\
C:\phpwamp\php\
C:\phpwamp\tmp\
C:\phpwamp\www\
: contiendra tous les sous-dossiers correspondants aux différents sitesC:\phpwamp\www\phpmyadmin\
: dossier pour phpMyAdminC:\phpwamp\www\site1\
: dossier pour le premier siteC:\phpwamp\www\site2\
: dossier pour le deuxième site
Les sources
Apache, Apache 2.4.53
- https://www.apachelounge.com/download/
- https://www.apachelounge.com/download/additional/ compléments
- https://httpd.apache.org/docs/2.4/ssl/ssl_howto.html le chiffrement SSL
MySQL, MySQL Community Server 8.0.26
PHP, version 7.4.28
phpmyadmin, version 5.1.3
MediaWiki, version 1.37.0 ; non compatible avec PHP 8.x
MySQL et prérequis
Site officiel de MySQL
MySQL Community Server :
- https://dev.mysql.com/downloads/mysql/
- mysql-8.0.26-winx64.zip
- https://dev.mysql.com/downloads/connector/odbc/
- mysql-connector-odbc-8.0.26-winx64.msi
- nécessite Visual Studio 2018 x64
PHP 7.4.x ou plus récent, avec les extensions suivantes :
- ctype
- iconv
- json
- mbstring
- xml
- openssl, fortement recommandé
MySQL :
- MySQL x.x.x ou plus récent
MySQL, installation
Choix des éléments :
- MySQL Server 8.0.26 - x64
- MySQL Workbench 8.0.26 - x64
- Connector/ODBC 8.0.26 - x64
- Samples and Examples 8.0.26 - x86
- MySQL Documentation - x86
Outils
- MySQL Utilities requires Python x.x
- MediaWiki 1.37.0
- https://www.mediawiki.org/wiki/Compatibility/fr : attention à la compatibilité avec PHP
- https://wiki.meurisse.org/wiki/MediaWiki#Prerequisite guide
Gestion des documents SVG
Pour que les documents SVG soient gérés, autant en affichage qu'en génération de vignette :
# document SVG et affichage vignette * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ## use ImageMagick in mediawiki $wgUseImageResize = true; $wgUseImageMagick = true; $wgImageMagickConvertCommand = "D:\phpwamp\outil\ImageMagick\convert.exe"; # For SVG image support $wgAllowTitlesInSVG = true; $wgSVGConverter = 'ImageMagick'; $wgSVGConverters = [ 'ImageMagick' => '"D:\phpwamp\outil\ImageMagick\convert.exe" -background white -geometry $width $input $output', ];
Paramétrage
Apache
Apache, httpd.conf
, ajouter les lignes suivantes
LoadModule php7_module "...\php\php7apache2_4.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir ...
Apache, httpd.conf
, modifier
ServerRoot "C:\phpwamp/apache24"
Listen 80
DocumentRoot "C:\phpwamp/www"
<Directory "C:\phpwamp/www">
Apache, httpd.conf
, modifier
<IfModule dir_module> DirectoryIndex index.html, index.htm, index.php </IfModule>
Problème connu
Si certaines extension PHP ne sont pas chargées (notamment curl, intl, ldap), ajouter les chemins systèmes suivants :
C:\phpwamp\php\ C:\phpwamp\php\ext\
Pour le fonctionnement de l'éditeur visuel, il faut apparemment avoir créé au moins un article avec l'éditeur pour que l'éditeur visuel fonctionne avec les pages existantes.
PHP
PHP, php.ini
extension_dir = "C:\phpwamp\php\ext"
session.save_path = "C:\phpwamp\tmp"
phpinfo.php
<?php // Affiche toutes les informations, comme le ferait INFO_ALL phpinfo(); ?>
PHP, les extensions
PHP, php.ini
- extension=intl ; pour MediaWiki
Paramétrage Apache 2.4.58 et PHP 8.1.27
Le paramétrage Apache 2.4.58 et PHP 8.1.27 fonctionne bien :
- curl : OK ;
- gd : OK
Paramétrage Apache 2.4.58 et PHP 8.2.15
Le paramétrage Apache 2.4.58 et PHP 8.2.15 :
S'assurer que la variable d'environnement Path
contient notamment le chemins suivant :
C:\phpwamp\php\
Activer l'extension et les variables suivantes pour Zend Opcache :
zend_extension=opcache opcache.enable=1 opcache.enable_cli=1
SSL
Commandes
- Désinstallation du service Apache
httpd.exe -k uninstall
- Installation du service Apache
C:\phpwamp\apache\bin\httpd -k install
- Démarrage du service Apache
C:\phpwamp\apache\bin\httpd -k start
- Redémarrage du service Apache
C:\phpwamp\apache\bin\httpd -k restart
- Moniteur Apache (icone dans la barre de notification)
C:\phpwamp\apache\bin\ApacheMonitor.exe
- Vérification du serveur. Fichier
index.php
<?php echo phpinfo(); ?>
MySQL
Pour accéder à MySQL en ligne de commande :
- fenêtre DOS ;
mysql -u root -p
Sauvegarde d'une base de données :
mysqldump --databases nombase > nombase-sauv.sql
Import d'une base :
mysql -u root -p nombase < nombase-sauve.sql
Kono installation (MediaWiki)
- langue : français
- vérification environnement
- Attention : impossible de trouver APCu ou WinCache ;
- Attention : votre répertoire par défaut pour les téléversements, C:\phpwamp\www\konoRH/images/, est vulnérable, car il peut exécuter n’importe quel script.
- Connexion à la base de données
- hôte base de données : localhost
- nom base : konorh
- préfixe tables : konorh
- compte pour l'installation
- paramètres de la base de données
- compte de la base de données pour l'accès web
- nom
- Kono RH
- compte administrateur
- Options
- wiki privé
- aucune licence
- pas de courriel
- habillage Vector
- ...
- Téléversement des images et des fichiers
Kono personnalisation
Extensions
Les extensions pour une personnalisation approfondie :
- Metrolook : habillage ;
- NoTitle : pour ne pas afficher le titre de l'article (syntaxe
) ;
- MsUpload : pour faciliter le téléchargement de document, par dépose notamment ;
- Newest Pages, pour l'affichage des derniers articles créés, avec la possibilité de cibler une catégorie ;
- PdfHandler : pour la gestion des PDF, avec installation de plusieurs outils pour la génération des vignettes et l'affichage des vignettes ;
Metrolook
L'habillage Metrolook :
NoTitle
NoTitle, pour ne pas afficher le titre de l'article :
MsUpload
Newest Pages
Newest Pages, pour l'affichage des derniers articles créés, avec la possibilité de cibler une catégorie :
Purge
Purge, ajoute un onglet pour purger le cache de la page en cours :
Highlightjs Integration
Highlightjs Integration pour la coloration syntaxique avec les balises <source> et </source> :
PdfHandler
PdfHandler : affichage de PDF
Nécessite les outils suivants :
- Ghostscript (avec licence GNU Affero General Public License) :
- ImageMagick
- https://www.imagemagick.org/script/download.php
ImageMagick-7.1.0-5-Q16-x64-static.exe
ImageMagick-7.1.0-5-portable-Q16-x64.zip
: version portable
- https://www.imagemagick.org/script/download.php
- xpdf-utils (Xpdf command line tools) :
Pour ImageMagick, avec la version ImageMagick-7.1.0-Q16, j'ai dû faire une copie du fichier magick.exe
et la renommer en convert.exe
; avec cette action, l'outil fonctionne bien !
Ajout des chemins suivant au chemin système (PATH) :
C:\phpwamp\outil\gs\bin\
C:\phpwamp\outil\ImageMagick\
C:\phpwamp\outil\xpdf-tools-win-4.03\bin64\
# PdfHandler, options $wgPdfProcessor = 'C:\phpwamp\outil\gs\bin\gswin64.exe'; # $wgPdfPostProcessor = $wgImageMagickConvertCommand; // if defined via ImageMagick $wgPdfPostProcessor = 'C:\phpwamp\outil\ImageMagick\convert.exe'; // if not defined via ImageMagick $wgPdfInfo = 'C:\phpwamp\outil\xpdf-tools-win-4.03\bin64\pdfinfo.exe'; $wgPdftoText = 'C:\phpwamp\outil\xpdf-tools-win-4.03\bin64\pdftotext.exe';
Amélioration
Après la dépose, suivant le type de document, différentes actions sont possible :
- si PDF : insérer le lien ; c'est alors un lien de la forme
[[:File:nom du document.pdf]]
qui est inséré dans le code wiki ; - si une seule image : insérer le lien et insérer en tant qu’image ; et bandeau supplémentaire avec Effacer la liste, insérer tant que fichier, insérer tout en tant que lien
- si plusieurs images : insérer le lien et insérer en tant qu’image ; et bandeau supplémentaire avec Effacer la liste, insérer l'ensemble en tant que galerie, insérer tout en tant que fichiers, insérer tout en tant que liens
Avant modification du fichier ...\extensions\MsUpload\resources\MsUpload.js
galleryArray: [], insertGallery: function () { var galleryText = 'File:' + MsUpload.galleryArray.join( '\nFile:' ); MsUpload.insertText( '<gallery>\n' + galleryText + '\n</gallery>\n' ); },
Après modification du fichier ...\extensions\MsUpload\resources\MsUpload.js
galleryArray: [], insertGallery: function () { var galleryText = 'File:' + MsUpload.galleryArray.join( '\nFile:' ); MsUpload.insertText( '<gallery mode="packed">\n' + galleryText + '\n</gallery>\n' ); },
LdapAuthentication
Auth remoteuser
Habillage
Utilisation de l'habillage Metrolook
Utilisation de l'habillage Pivot