Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
admin:services:dokuwiki [2014/04/09 09:02] – wikiI2 -> wki-backup (.federez.net) bertrand.bonnefoy-claudet | admin:services:dokuwiki [2019/04/12 05:41] (Version actuelle) – [Extensions supplémentaires] zertrin |
---|
[[:admin|< retour à la page de l'administration technique]] | [[:admin|< retour à la page de l'administration technique]] |
| |
Le wiki de FedeRez est hébergé sur hexagon dans ''/srv/dokuwiki''. | Le wiki de FedeRez est hébergé sur dodecagon dans ''/srv/dokuwiki''. |
| |
Un réplica se trouve sur quigon dans ''/srv/dokuwiki'', accessible à l'adresse https://wiki-backup.federez.net. Plus de détails sur la réplication dans la section correspondante ci-dessous. | <WRAP center round tip 60%> |
| Une réplique de secours automatisée se trouve sur saigon dans ''/srv/dokuwiki'', accessible à l'adresse https://wiki-backup.federez.net. Plus de détails sur la réplication [[:admin:services:dokuwiki#Réplication sur saigon|ci-dessous]]. |
| </WRAP> |
| |
===== Organisation du wiki ===== | |
| |
Voir la sous page : [[admin:services:dokuwiki:orga]] | |
| |
===== Mails de diff de l'ancien wiki de nautilus ===== | |
| |
Toutes les modifs entre le 27.04.2013 21:50 et le 12.06.2013 19:43. C'est assez maigre... | |
| |
Accessibles sur https://webmail.zertrin.org/ | |
| |
login: dokuwikifederez@zertrin.org | |
mdp: d0kuw1k1 | |
| |
===== Mise à jour ===== | ===== Mise à jour ===== |
cd /srv/dokuwiki | cd /srv/dokuwiki |
# Vérifier qu'on est bien sur la branche stable | # Vérifier qu'on est bien sur la branche stable |
git pull | git pull --ff-only |
| chown root:www-data -R /srv/dokuwiki |
| chmod -R a-w,a+rX,u+w /srv/dokuwiki |
| chmod -R g+w /srv/dokuwiki/data /srv/dokuwiki/lib/plugins/ /srv/dokuwiki/lib/tpl /srv/dokuwiki/conf/{local.php{.bak,},{users,acl}.auth.php,plugins.local.php{.bak,}} |
</code> | </code> |
| |
| En cas d'erreur lors du ''git pull'', il faudra regarder quels fichiers posent problème. |
===== Installation ===== | ===== Installation ===== |
| |
Dans ''/srv'' on clone le dépôt Git officiel : | Dans ''/srv'', cloner le dépôt Git officiel : |
<code> | <code> |
git clone git://github.com/splitbrain/dokuwiki.git /srv/dokuwiki | git clone git://github.com/splitbrain/dokuwiki.git /srv/dokuwiki |
cd /srv/dokuwiki | cd /srv/dokuwiki |
git checkout -b stable origin/stable | git checkout -b stable origin/stable |
chown www-data:www-data -R /srv/dokuwiki | chown -R www-data:www-data /srv/dokuwiki |
</code> | </code> |
| |
Puis on crée le VirtualHost Apache qui va servir le wiki : | Créer le fichier de site Apache (extrait de la configuration) : |
| |
<code> | |
cd /etc/apache2/sites-available | |
vim dokuwiki | |
</code> | |
| |
<file apache dokuwiki> | <file apache /etc/apache2/sites-available/dokuwiki> |
<VirtualHost *:80> | <VirtualHost *:80> |
ServerAdmin admin@federez.net | |
ServerName wiki.federez.net | ServerName wiki.federez.net |
| |
Redirect permanent / https://wiki.federez.net/ | Redirect permanent / https://wiki.federez.net/ |
| ... |
# Possible values include: debug, info, notice, warn, error, crit, | |
# alert, emerg. | |
LogLevel warn | |
ErrorLog ${APACHE_LOG_DIR}/dokuwiki-error.log | |
CustomLog ${APACHE_LOG_DIR}/dokuwiki-access.log combined | |
</VirtualHost> | </VirtualHost> |
<IfModule mod_ssl.c> | |
<VirtualHost *:443> | <VirtualHost *:443> |
ServerAdmin admin@federez.net | |
ServerName wiki.federez.net | ServerName wiki.federez.net |
| |
AllowOverride all | AllowOverride all |
</Directory> | </Directory> |
| |
# Possible values include: debug, info, notice, warn, error, crit, | |
# alert, emerg. | |
LogLevel warn | |
ErrorLog ${APACHE_LOG_DIR}/dokuwiki-error.log | |
CustomLog ${APACHE_LOG_DIR}/dokuwiki-access.log combined | |
| |
# SSL | |
SSLEngine on | |
SSLCertificateFile /etc/ssl/federez/federez.crt | |
SSLCertificateKeyFile /etc/ssl/private/federez.key | |
SSLCertificateChainFile /etc/ssl/federez/sub.class2.server.ca.pem | |
SSLCACertificateFile /etc/ssl/certs/StartCom_Certification_Authority.pem | |
| |
<FilesMatch "\.(cgi|shtml|phtml|php)$"> | <FilesMatch "\.(cgi|shtml|phtml|php)$"> |
SSLOptions +StdEnvVars | SSLOptions +StdEnvVars |
</Directory> | </Directory> |
| ... |
BrowserMatch "MSIE [2-6]" \ | |
nokeepalive ssl-unclean-shutdown \ | |
downgrade-1.0 force-response-1.0 | |
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown | |
</VirtualHost> | </VirtualHost> |
</IfModule> | |
</file> | </file> |
| |
<code> | Après avoir activé le site et rechargé Apache, finir l'installation sur [[https://wiki.federez.net/install.php]]. |
cd ../sites-enabled | |
ln -s ../sites-available/dokuwiki 110-dokuwiki | |
invoke-rc.d apache2 reload | |
</code> | |
| |
Aller sur l'installateur https://wiki.federez.net/install.php | |
| |
Finir l'installation initiale. | |
| |
===== Configuration ===== | ===== Configuration ===== |
Options de configuration générales, généré automatiquement en modifiant les paramètres via l'interface web. | Options de configuration générales, généré automatiquement en modifiant les paramètres via l'interface web. |
| |
(version du 2013-07-25 15:45) | (version du 2019-04-12 11:34 +0800) |
| |
<file php local.php> | <file php local.php> |
* Dokuwiki's Main Configuration File - Local Settings | * Dokuwiki's Main Configuration File - Local Settings |
* Auto-generated by config plugin | * Auto-generated by config plugin |
* Run for user: thomas.fuzeau | * Run for user: vincent.le-gallic |
* Date: Thu, 25 Jul 2013 15:37:54 +0200 | * Date: Mon, 19 Aug 2013 19:11:49 +0200 |
*/ | */ |
| |
$conf['showuseras'] = 'username'; | $conf['showuseras'] = 'username'; |
$conf['passcrypt'] = 'bcrypt'; | $conf['passcrypt'] = 'bcrypt'; |
$conf['superuser'] = '@admin'; | $conf['superuser'] = '@admin,@federezadmin'; |
$conf['disableactions'] = 'register,resendpwd'; | $conf['disableactions'] = 'register,resendpwd'; |
$conf['subscribers'] = 1; | $conf['subscribers'] = 1; |
| $conf['htmlmail'] = 0; |
$conf['userewrite'] = '1'; | $conf['userewrite'] = '1'; |
$conf['sepchar'] = '-'; | $conf['sepchar'] = '-'; |
$conf['fnencode'] = 'utf-8'; | $conf['fnencode'] = 'utf-8'; |
$conf['send404'] = 1; | $conf['send404'] = 1; |
| $conf['renderer_xhtml'] = 'xbr'; |
$conf['plugin']['editx']['user_rename'] = '@admin'; | $conf['plugin']['editx']['user_rename'] = '@admin'; |
$conf['plugin']['editx']['user_rename_nr'] = '@admin'; | $conf['plugin']['editx']['user_rename_nr'] = '@admin'; |
| |
Configuration pour LDAP. | Configuration pour LDAP. |
| |
| Il est nécessaire d'installer le paquet ''php5-ldap'' et de redémarrer apache pour pouvoir utliser l'autehntification LDAP : |
| apt install php5-ldap |
| service apache restart |
| |
<file php local.protected.php> | <file php local.protected.php> |
$conf['authtype'] = 'authldap'; //enable this Auth plugin | $conf['authtype'] = 'authldap'; //enable this Auth plugin |
| |
$conf['plugin']['authldap']['server'] = 'ldap://localhost:389'; | # localhost permet l'authentification en cas de défaillance du serveur LDAP maître sur le wiki de backup. |
$conf['plugin']['authldap']['usertree'] = 'ou=users,dc=federez,dc=net'; | $conf['plugin']['authldap']['server'] = 'ldap://ldap.federez.net:389'; |
$conf['plugin']['authldap']['grouptree'] = 'ou=roles,dc=federez,dc=net'; | $conf['plugin']['authldap']['usertree'] = 'cn=Utilisateurs,dc=federez,dc=net'; |
| $conf['plugin']['authldap']['grouptree'] = 'ou=posix,ou=groups,dc=federez,dc=net'; |
$conf['plugin']['authldap']['userfilter'] = '(uid=%{user})'; | $conf['plugin']['authldap']['userfilter'] = '(uid=%{user})'; |
$conf['plugin']['authldap']['groupfilter'] = '(roleOccupant=%{dn})'; | $conf['plugin']['authldap']['groupfilter'] = '(memberUid=%{cn})'; |
| |
$conf['plugin']['authldap']['version'] = 3; | $conf['plugin']['authldap']['version'] = 3; |
| |
| # This enables the use of the STARTTLS command |
| $conf['auth']['authldap']['starttls'] = 1; |
| |
# Optional bind user and password if anonymous bind is not allowed | # Optional bind user and password if anonymous bind is not allowed |
$conf['plugin']['authldap']['binddn'] = 'cn=wiki,ou=service-users,dc=federez,dc=net'; | $conf['plugin']['authldap']['binddn'] = 'cn=wiki,ou=service-users,dc=federez,dc=net'; |
$conf['plugin']['authldap']['bindpw'] = 'MotDePasse'; | $conf['plugin']['authldap']['bindpw'] = 'MotDePasseSuperSecret'; |
| |
# Optional debugging | # Optional debugging |
$conf['plugin']['authldap']['debug'] = 0; | $conf['plugin']['authldap']['debug'] = 0; |
| |
$conf['plugin']['authldap']['mapping']['member'] = 'roleOccupant'; | # Mapping: FedeRez roles as dokuwiki groups |
| $conf['plugin']['authldap']['mapping']['member'] = 'memberUid'; |
| |
</file> | </file> |
</file> | </file> |
| |
==== Plugins supplémentaires ==== | ==== Extensions supplémentaires ==== |
| |
Les plugins supplémentaires suivants ont été installés : | |
| |
* [[http://www.dokuwiki.org/plugin:editx|editx]] (Extended edit functions such as renaming or deleting a page) | * [[http://www.dokuwiki.org/plugin:editx|editx]] (Extended edit functions such as renaming or deleting a page) |
* [[http://dokuwiki.org/plugin:xbr|xbr]] (replacement renderer, preserves line breaks present in raw wiki data) | * [[http://dokuwiki.org/plugin:xbr|xbr]] (replacement renderer, preserves line breaks present in raw wiki data) |
* [[http://dokuwiki.org/plugin:folded|folded]] (Foldable page sections) | * [[http://dokuwiki.org/plugin:folded|folded]] (Foldable page sections) |
==== ACLs ==== | * [[http://dokuwiki.org/plugin:html5video|html5video]] (Embeds video using HTML5 syntax) |
| * [[http://dokuwiki.org/plugin:wrap|wrap]] (Mise en page en blocs pour faire des boîtes ou des colonnes) |
| * [[https://www.dokuwiki.org/plugin:cellbg|cellbg]] (Allows user-defined background colored cells in tables) |
| * [[http://www.dokuwiki.org/plugin:move|move]] (Move and rename pages and media files whilst maintaining the links.) |
| |
FIXME pas à jour ! | ==== ACL ==== |
| |
Politique générale : | Les ACL sont configurables par les administrateurs via ''Administer → Gestion de la liste des contrôles d'accès (ACL)''. Pour le public, on interdit tout par défaut et on autorise les pages à publier. Pour les utilisateurs enregistrés, presque tout est autorisé. |
* **Anonyme** : Lecture uniquement sauf dans la catégorie admin | |
* **Utilisateur enregistré** : Lecture écriture partout. | |
| |
Date: Sun, 21 Jul 2013 16:58:28 +0000 | ===== Réplication sur saigon ===== |
| |
^ Page/Catégorie ^ Utilisateur/Groupe ^ Autorisations ^ | Le wiki est répliqué sur [[admin:serveurs:saigon|saigon]]. La copie est accessible à l'adresse https://wiki-backup.federez.net. |
| * | @ALL | Lecture | | |
| * | @user | Envoyer | | |
| admin | @ALL | Aucune | | |
| admin | @user | Ecriture | | |
| admin:* | @ALL | Aucune | | |
| admin:* | @user | Envoyer | | |
| |
===== Réplication ===== | Le répertoire ''/srv/dokuwiki'' est synchronisé une fois par heure avec le master de dodecagon. |
| |
Le wiki est répliqué sur quigon. Le réplicat est accessible à l'adresse https://wiki-backup.federez.net. | <WRAP center round important 60%> |
| Toute modification apportée sur le réplica sera perdue après la prochaine synchronisation. |
Le répertoire ''/srv/dokuwiki'' est synchronisé une fois par heure avec le master d'hexagon. Toute modification apportée sur le réplica sera perdue après la prochaine synchronisation. | </WRAP> |
| |
Pour effectuer cette réplication, la même méthode que pour la réplication de federezpasswords est utilisée, à savoir : | Pour effectuer cette réplication, la même méthode que pour la réplication de federezpasswords est utilisée, à savoir : |
| |
* Un cron sur quigon ''/etc/cron.d/replica-dokuwiki''((Attention, ne pas mettre de point dans le nom d'un fichier sous ''/etc/cron.d'' sinon le fichier est considéré comme désactivé !!!)) est appelé une fois par heure et exécute le script ''/root/scripts/replica.dokuwiki'' | * Un cron sur saigon ''/etc/cron.d/replica-dokuwiki''((Attention, ne pas mettre de point dans le nom d'un fichier sous ''/etc/cron.d'' sinon le fichier est considéré comme désactivé !!!)) est appelé une fois par heure et exécute le script ''/root/scripts/replica.dokuwiki.client'' |
| |
<file replica.dokuwiki> | <file replica.dokuwiki> |
# Réplication du wiki federez | # Réplication du wiki federez |
# | # |
17 * * * * root /root/scripts/replica.dokuwiki | 17 * * * * root /root/scripts/replica.dokuwiki.client |
</file> | </file> |
| |
* Le script ''/root/scripts/replica.dokuwiki'' exécute la commande suivante : | * Le script ''/root/scripts/replica.dokuwiki.client'' exécute la commande suivante : |
| |
<code> | https://gitlab.federez.net/federez/scripts/blob/master/replica.dokuwiki.client |
rsync -e "ssh -i /root/.ssh/id_rsa.dokuwiki" -avz --delete-after root@hexagon.federez.net:/srv/dokuwiki/ /srv/dokuwiki/ >> /var/log/replica.dokuwiki.log; | |
</code> | |
| |
* ''rsync'' se connecte ainsi avec la clef SSH ''/root/.ssh/id_rsa.dokuwiki'' en tant que root sur hexagon | * ''rsync'' se connecte ainsi avec la clef SSH ''/root/.ssh/id_ed25519_dokuwiki_from_dodecagon'' en tant que root sur dodecagon |
* Sur hexagon cette clef root est restreinte par ''/root/.ssh/authorized_keys'' à ne pouvoir exécuter que le script ''/root/scripts/replica.dokuwiki'', sans terminal (''no-pty'') et uniquement depuis l'IP de quigon (''from="160.228.155.65"'') | * Sur dodecagon cette clef root est restreinte par ''/root/.ssh/authorized_keys'' à ne pouvoir exécuter que le script ''/root/scripts/replica.dokuwiki.server'', sans terminal (''no-pty'') et uniquement depuis l'IP de quigon (''from="160.228.155.65"'') |
* Sur hexagon le script ''/root/scripts/replica.federezpasswords'' s'assure que la commande rsync n'a pas été trafiquée : | * Sur dodecagon le script ''/root/scripts/replica.dokuwiki.server'' s'assure que la commande rsync n'a pas été trafiquée : |
| |
<file bash replica.dokuwiki> | https://gitlab.federez.net/federez/scripts/blob/master/replica.dokuwiki.server |
#!/bin/bash | |
| |
case "$SSH_ORIGINAL_COMMAND" in | Sur saigon et dodecagon, on crée un fichier de configuration de logrotate pour éviter de garder indéfiniment les logs des mise à jour avec : |
"rsync --server --sender -vlogDtprze.Lsf . /srv/dokuwiki/") | <file bash /etc/logrotate.d/replica-dokuwiki> |
$SSH_ORIGINAL_COMMAND | /var/log/replica.dokuwiki.log { |
;; | rotate 8 |
*) | maxage 8 |
echo "$SSH_ORIGINAL_COMMAND refusée." >> /root/replica.dokuwiki.log 2>&1 | weekly |
;; | missingok |
esac | } |
</file> | </file> |