Affichage des articles dont le libellé est apache2. Afficher tous les articles
Affichage des articles dont le libellé est apache2. Afficher tous les articles

lundi 12 janvier 2009

[Apache2] Décoposition du resultat d'une regex

Enfaite ce post ne vas pas vraiment parler de comment décomposer le résultat d'un regex dans apache2 pour la simple et bonne raison que je n'ai pas trouvé comment faire et encore moins si c'était possible. Je vais donc plutôt vous parler de la méthode que j'ai employée pour contourner mon problème.

J'ai des utilisateurs que nous nommerons romain, tintin et milou.
Ils ont chacun un dossier personnel du type : /home/"première lettre"/"première et deuxième lettre"/"nom".

Exemple :
pour tintin : /home/t/ti/tintin
Pour milou : /home/m/mi/milou


Dans leur dossier personnel ils ont un dossier public_html où ils peuvent mettre leur site web.

Mon but est de ne pas à avoir à créer un alias pour chacun d'eux. (Vous aurez reconnu mes aptitudes [d'Informaticien|de faignant] !)

La première solution que j'ai trouvée est de faire un lien symbolique depuis le DocumentRoot d’apache vers le dossier de l'utilisateur. Mais ceci n'est pas ce que je cherchais car il me faut toujours configurer ce lien à la main !

J'ai donc décidé d'utiliser la directive AliasMatch d’apache2 comme ceci.
AliasMatch "^/(.)(.)(.*)/(.*)" "/home/$1/$1$2/$1$2$3/public_html/$4"
AliasMatch "^/(.))(.*)" "/home/$1/$2/$1$2$3/public_html"
La deuxième ligne permet de rediriger l'utilisateur même s'il ne met pas le / après le nom.
De cette façon je n'ai pas à traiter la chaine récupérée pour en extraire la première, puis la deuxième lettre mais simplement à concaténer les chaines récupérées.

Il vous faudra peux être aussi revoir les droits de visibilité. Je vous laisse ce que j'ai fait mais ne m'y attarderai pas dessus.
<DirectoryMatch "^/home/(.)/(.){2}/(.*)/public_html/">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
allow from all
</DirectoryMatch>



Toujours est-il que si quelqu'un sait s’il est possible, ou mieux, comment faire pour décomposer une chaine récupéré depuis AliasMatch je suis preneur !

Sur ce ...

jeudi 16 octobre 2008

[Apache2] Encodage de caractère

Il est fréquent qu'après la réinstallation d'un serveur apache2, que nos caractères spéciaux (é, à, û, ÿ, ...) ne s'affiche pas correctement. Ceci peut être du à plusieurs choses.

Soit vous n'avez pas bien spécifier votre encodage dans votre page web avec la balise :
<?xml version="1.0" encoding="ISO-8859-1" ?>


Soit votre serveur ne prend pas par défaut l'encodage de vos pages. Par exemples pour l'encodage ISO-8859-1. Il faut rajouter (ou dé-commenter) dans votre httpd.conf la ligne :
AddDefaultCharset ISO-8859-1

mercredi 27 août 2008

[Linux] Configurer svn avec LDAP

Dans notre cas nous avons un serveur svn et nous voulons que nos utilisateurs se connectent que s'ils font partie du groupe svn_users. Le groupe svn_users a l'id 1000.
Tout les utilisateurs sont dans un anuaire LDAP (avec openLDAP) dans l'ou users. Nous utiliserons Apache2 avec le module LDAP de celui ci.

Nous créons un virtualhost svn.exemple.com

<VirtualHost *>

ServerName svn.exemple.com

Nous spécifions que nous voulons utiliser svn

<Location />


DAV svn


SVNParentPath /var/svn

Nous voulons interdire tout le monde de se connecter

# Autorisation


Order deny,allow


Deny from All

Connection l'authnetification LDAP


# Authentification


AuthType Basic


AuthName "depot SVN"


AuthBasicProvider ldap



# LDAP


AuthzLDAPAuthoritative on


AuthLDAPURL ldap://localhost/ou=users,dc=exemple,dc=com?uid?sub?(objectClass=*)


AuthLDAPGroupAttribute memberUid


AuthLDAPGroupAttributeIsDN off

Nous specifions le groupe


# groupe obligatoire


require ldap-group cn=svn_users,ou=groups,dc=exemple,dc=com


require ldap-attribute gidNumber=1000


Satisfy any

</Location>
</VirtualHost>