Outils pour utilisateurs

Outils du site


linux:apache

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

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

<WRAP center round info 80%>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 </WRAP>

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

<WRAP center round info 80%>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… </WRAP>

/etc/apache2/sites-available/www.domaine.com.conf
# Le strict minimum pour un virtual host, avec les logs, s'appuyant sur la conf d'apache héritée
<VirtualHost *:80>
        ServerName www.domaine.com
        DocumentRoot /var/www/www
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
/etc/apache2/sites-available/wiki.domaine.com.conf
# Ma config, avec les différents conseils d'apache et de dokuwiki, utilisés ou commentés
<VirtualHost *:80>
 
#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
 
<Directory /var/www/dokuwiki/>
Options +FollowSymLinks
AllowOverride All
        <IfModule mod_rewrite.c>
 
                # Uncomment to implement server-side URL rewriting
                # (cf. <http://www.dokuwiki.org/config:userewrite>).
                        # 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]
        </IfModule>
</Directory>
</VirtualHost>

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.

search?q=apache%20dokuwiki%20nextcloud&amp;btnI=lucky

linux/apache.txt · Dernière modification: 2018/04/30 13:01 (modification externe)