====== Serveur Web Apache ======
===== Configuration du serveur =====
Debian Stretch\\
=== Aller du côté de /etc/apache2/conf-available et conf-enabled ===
* ''apache2-doc.conf'' : permet d'accéder à la doc d'apache en local si elle a été installée (/usr/share/...). Par défaut on y accède par ''SERVER/manual''. Pour désactiver, utiliser ''a2disconf''
* ''security.conf'' : un must-see!
===== Codes de statut de réponse =====
[[wp>fr:Liste des codes HTTP|Liste des codes HTTP]]
* 1xx Info
* 2xx Success
* 200 OK
* 3xx Redirection
* 304 Not Modified
* 4xx Client errors
* 404 Not Found
* 5xx Server errors
===== a2ensite / a2dissite (Debian et Ubuntu) =====
Suivant les versions de Debian et/ou d'Apache : \\
Ces commandes n'acceptent pas de chemins en argument.\\
Il faut être dans le ''dossier où se trouve le site à en|dis/able'' pour les exécuter.
root@host:/etc/apache2# a2ensite sites-available/mon.domaine1.com.conf
va provoquer une erreur : Site does not exist!
alors que
root@host:/etc/apache2/sites-available# a2ensite mon.domaine1.com.conf
OK
===== Installer Dokuwiki sur Debian Stretch =====
''apt install dokuwiki'' qu'ils disaient : Raté... Bon bin tant pis!\\
''tar xzf dokuwikixxxx.tgz''; ''cp dokuwiki /var/www/'';\\
''chown -R www-data:www-data /var/www/dokuwiki''
=== Le serveur abrite 3 sites sur la même adresse IP, fournis en fonction de leur nom de domaine par des fichiers virtualhosts. ===
Dans ''/etc/apache2/sites-available/'', on trouve :
autre.domaine.com.conf # un vhost compliqué avec des redirections, ssl, ... mais malgré ça, tous cohabitent
www.domaine.com.conf # voir ci-dessous (pour simple exemple, avec le strict minimum)
wiki.domaine.com.conf # voir ci-dessous
Note : Selon la version d'apache, l'extension .conf est obligatoire (pour moi oui)\\
Les docs Debian ou Dokuwiki sont fortement contradictoires, mais en persévérant, avec 50 onglets sur les forums, et en croisant les sources doku, debian et apache, j'ai pour la première fois réussi à faire tourner plus d'un site sans tout casser.
On peut sûrement peaufiner et ajouter des directives...
# Le strict minimum pour un virtual host, avec les logs, s'appuyant sur la conf d'apache héritée
ServerName www.domaine.com
DocumentRoot /var/www/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Ma config, avec les différents conseils d'apache et de dokuwiki, utilisés ou commentés
#AliasMatch ^/dokuwiki/sites/[^/]+$ /var/www/dokuwiki/ #<-- ces deux là, sûrement pour une ferme de wikis...
#AliasMatch ^/dokuwiki/sites/[^/]+/(.*)$ /var/www/dokuwiki/$1
Alias / "/var/www/dokuwiki/" #<-- (1)
ServerName wiki.domaine.com
DocumentRoot /var/www/dokuwiki
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Options +FollowSymLinks
AllowOverride All
# Uncomment to implement server-side URL rewriting
# (cf. ).
# Do *not* mix that with multisite! #<-- multi ? terme impeu unprécis!
RewriteEngine on #<-- mod rewrite enabled
#RewriteBase /dokuwiki #<-- non, voir (1)
RewriteRule ^lib - [L]
RewriteRule ^doku.php - [L]
RewriteRule ^feed.php - [L]
RewriteRule ^install.php - [L]
RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L]
RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L]
RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L]
RewriteRule ^$ doku.php [L]
RewriteRule (.*) doku.php?id=$1 [QSA,L]
==== Pretty URLs sur Dokuwiki : ====
''mv /var/www/dokuwiki/.htaccess.dist /var/www/dokuwiki/.htaccess''.\\
Décommenter les lignes qui vont bien.\\
Dokuwiki Admin panel -> Rewrite URL -> Web server''.
===== Nextcloud Rewrite rules =====
Nextcloud Rewrite rules in nextcloud/.htaccess are a CATCH ALL -> webserver/Un.autre.VHost innaccessible!
Ce problème est le même qu'avec WorldPress:\\
Source: http://nerdlogger.com/2012/02/17/getting-apache-mod_status-and-mod_info-to-play-nicely-with-wordpress/
#RewriteCond %{REQUEST_URI} !=/server-status
#This didn't work for me. I'm not sure if the multisite version of wordpress (which I'm using) is causing this.
#The rule that worked beautifully is the following:
RewriteRule ^(server-info|server-status) - [L]
#This rule stops the rewrite engine whenever server-info or server-status is parsed as part of the URL.
{{tag>apache dokuwiki nextcloud}}