Pendant qu'il n'y a plus d'étudiants à l'IUT, Marc et moi en profitons pour migrer les serveurs Debian en distribution Etch (4.0), la version stable du moment. Le serveur Web passe de Apache 1.3 à Apache 2, de PHP4 à PHP 5, avec des configurations de sites virtuels bien propres etc. Que du bonheur.

Un truc qui m'a bien fait galérer ce soir, c'est le fichier .htaccess qui permet de protéger un répertoire, en n'autorisant sa consultation que

  • soit depuis le réseau interne
  • soit de l'extérieur en s'identifiant auprès de l'annuaire LDAP

Ca marchait en 1.3, ça marche plus en 2.0. En fait il faut ajouter 2 lignes : voila un exemple qui a fini par marcher

order allow,deny
# declaration des machines autorisees sans authentification :

allow from 172.16.0.0/16
allow from 147.210.94.192/255.255.255.240
allow from tao.iut.u-bordeaux1.fr
allow from blandy.iut.u-bordeaux1.fr
allow from mendoza.iut.u-bordeaux1.fr

AuthName "Identification par annuaire LDAP du département (comptes UNIX)
AuthType Basic

# deux lignes à ajouter pour apache 2
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
# 

AuthLDAPURL ldap://ldap.info.prive/ou=People,dc=info,dc=prive?cn
require valid-user
satisfy any

Evidemment je n'y suis pas arrivé tout seul, mais grâce à un message sur un [www.developpez.net| http://www.developpez.net/forums/showpost.php?p=2279826&postcount=5]

A tout hasard, voila la liste des modules qui sont chargés :

# apache2ctl  -M 
Loaded Modules:
core_module (static)
log_config_module (static)
logio_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
alias_module (shared)
auth_basic_module (shared)
auth_pam_module (shared)
auth_plain_module (shared)
authn_file_module (shared)
authnz_ldap_module (shared)
authz_default_module (shared)
authz_groupfile_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
cgi_module (shared)
dir_module (shared)
env_module (shared)
ldap_module (shared)
ldap_userdir_module (shared)
mime_module (shared)
negotiation_module (shared)
php5_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
userdir_module (shared)
Syntax OK