From: Lucien Gentis Le module Ce module gère de manière optimisée en fonction de la plate-forme
- les connexions aux bases de données. Sur les plates-formes non
- threadées, il maintient une connexion persistente à la manière d'un
+ Ce module gère de manière optimisée en fonction de la plate-forme
+ les connexions aux bases de données. Sur les plates-formes non
+ threadées, il maintient une connexion persistente à la manière d'un
LAMP classique (Linux, Apache, Mysql, Perl/PHP/Python). Sur les
- plates-formes threadées, il maintient un groupe de
- connexions à la fois plus évolutif et plus efficace, comme
- décrit dans cet
+ plates-formes threadées, il maintient un groupe de
+ connexions à la fois plus évolutif et plus efficace, comme
+ décrit dans cet
article d'ApacheTutor. Notez que
Pour vous connecter à votre base de données, vous devez spécifier un + pilote et des paramètres de connexion qui diffèrent selon le moteur de base + de données. Par exemple, pour vous connecter à mysql, spécifiez ce qui suit + :
+ +Vous pourrez alors utiliser cette connexion dans de nombreux autres
+ modules comme
Voir la syntaxe de la directive
apr_dbd_prepared_t
et s'utilisent dans toute requête
- SQL ou commande select préparée par apr_dbd.
apr_dbd_prepared_t
et s'utilisent dans toute requête
+ SQL ou commande select préparée par apr_dbd.
Il est du ressort des modules utilisateurs de dbd d'utiliser les
- requêtes préparées et de préciser quelles requêtes doivent être
- spécifiées dans httpd.conf, ou de fournir leurs propres directives
+ requêtes préparées et de préciser quelles requêtes doivent être
+ spécifiées dans httpd.conf, ou de fournir leurs propres directives
et d'utiliser ap_dbd_prepare
.
reconnect
à 0 dans la chaîne de connexion, afin
- d'éviter des erreurs provoquées par un client MySQL qui se
- reconnecterait sans réinitialiser correctement les requêtes
- préparées. Si reconnect
est défini à 1, toute
- connexion défectueuse sera sensée être réparée, mais comme
- mod_dbd n'en est pas informé, les requêtes préparées seront
- invalidées.
+ Lorsqu'on utilise des requêtes préparées avec des bases de
+ données MySQL, il est préférable de définir
+ reconnect
à 0 dans la chaîne de connexion, afin
+ d'éviter des erreurs provoquées par un client MySQL qui se
+ reconnecterait sans réinitialiser correctement les requêtes
+ préparées. Si reconnect
est défini à 1, toute
+ connexion défectueuse sera sensée être réparée, mais comme
+ mod_dbd n'en est pas informé, les requêtes préparées seront
+ invalidées.
Toute application web impliquant une base de données doit se - protéger elle-même contre les attaques de type injection SQL. Dans - la plupart des cas Apache DBD est sûr, car les applications - utilisent des requêtes préparées, et les entrées non sures ne seront - utilisées qu'à titre de données. Bien entendu, si vous l'utilisez - via un module tiers, vous devez être au fait des précautions à +
Toute application web impliquant une base de données doit se + protéger elle-même contre les attaques de type injection SQL. Dans + la plupart des cas Apache DBD est sûr, car les applications + utilisent des requêtes préparées, et les entrées non sures ne seront + utilisées qu'à titre de données. Bien entendu, si vous l'utilisez + via un module tiers, vous devez être au fait des précautions à prendre.
Cependant, le pilote FreeTDS est non - sûr de par sa nature-même. Comme la bibliothèque - sous-jacente ne supporte pas les requêtes préparées, le pilote en - effectue une émulation, et les entrées non sûres sont fusionnées - avec la requête SQL.
-Il peut être sécurisé en décontaminant toutes les - entrées : un processus inspiré de la recherche de contaminations + sûr de par sa nature-même. Comme la bibliothèque + sous-jacente ne supporte pas les requêtes préparées, le pilote en + effectue une émulation, et les entrées non sûres sont fusionnées + avec la requête SQL.
+Il peut être sécurisé en décontaminant toutes les + entrées : un processus inspiré de la recherche de contaminations (taint mode) de - Perl. Chaque entrée est comparée à une expression rationnelle, et - seules les entrées qui correspondent sont utilisées, en accord avec + Perl. Chaque entrée est comparée à une expression rationnelle, et + seules les entrées qui correspondent sont utilisées, en accord avec le langage Perl :
$untrusted =~ /([a-z]+)/;
$trusted = $1;
Pour utiliser ceci, les expressions rationnelles de - décontamination doivent être incluses dans les requêtes préparées. - L'expression rationnelle doit se situer immédiatement après le - caractère % dans la requête préparée, et doit être entourée - d'accolades {}. Par exemple, si votre application attend une entrée - alphanumérique, vous pouvez utiliser :
+ décontamination doivent être incluses dans les requêtes préparées. + L'expression rationnelle doit se situer immédiatement après le + caractère % dans la requête préparée, et doit être entourée + d'accolades {}. Par exemple, si votre application attend une entrée + alphanumérique, vous pouvez utiliser :"SELECT foo FROM bar WHERE input = %s"
avec d'autres pilotes, et ne risquer au pire qu'une requête - échouée. Mais avec FreeTDS, vous devez utiliser :
+avec d'autres pilotes, et ne risquer au pire qu'une requête + échouée. Mais avec FreeTDS, vous devez utiliser :
"SELECT foo FROM bar WHERE input = %{([A-Za-z0-9]+)}s"
tout ce qui ne correspond pas à l'expression rationnelle est - alors rejeté, et la requête est maintenant sûre.
+tout ce qui ne correspond pas à l'expression rationnelle est + alors rejeté, et la requête est maintenant sûre.
Alternativement, vous pouvez utiliser le pilote ODBC tiers, qui - offre la sécurité des requêtes préparées authentiques.
+ offre la sécurité des requêtes préparées authentiques.Cette directive permet de spécifier un pilote apr_dbd par son
- nom. Le pilote doit être installé sur votre système (sur la plupart
- des systèmes, il s'agit d'un objet partagé ou d'une dll). Par
- exemple, DBDriver mysql
va sélectionner le pilote MySQL
- dans la bibliothèque apr_dbd_mysql.so.
Cette directive permet de spécifier un pilote apr_dbd par son
+ nom. Le pilote doit être installé sur votre système (sur la plupart
+ des systèmes, il s'agit d'un objet partagé ou d'une dll). Par
+ exemple, DBDriver mysql
va sélectionner le pilote MySQL
+ dans la bibliothèque apr_dbd_mysql.so.
Cette directive permet de spécifier des paramètres selon les - besoins du pilote concerné. En général, les paramètres à passer - concernent tout ce qui n'a pas de valeur par défaut comme le nom - d'utilisateur, le mot de passe, le nom de la base de données, le nom - d'hôte et le numéro de port de la connexion.
-Les paramètres de la chaîne de connexion en fonction des - différents pilotes comprennent :
+Cette directive permet de spécifier des paramètres selon les + besoins du pilote concerné. En général, les paramètres à passer + concernent tout ce qui n'a pas de valeur par défaut comme le nom + d'utilisateur, le mot de passe, le nom de la base de données, le nom + d'hôte et le numéro de port de la connexion.
+Les paramètres de la chaîne de connexion en fonction des + différents pilotes comprennent :
PQconnectdb
PQconnectdb
partie1:partie2
est utilisé dans
+ partie1:partie2
est utilisé dans
sqlite_open(partie1, atoi(partie2), NULL)
sqlite3_open
sqlite3_open
Si cette directive est définie à Off, les connexions persistentes - et les connexions groupées sont désactivées. À la demande d'un - client, une nouvelle connexion à la base de données est ouverte, et - fermée immédiatement à l'issue du traitement. Cette configuration ne - doit être utilisée qu'à des fins de débogage, ou sur des serveurs à +
Si cette directive est définie à Off, les connexions persistentes + et les connexions groupées sont désactivées. à la demande d'un + client, une nouvelle connexion à la base de données est ouverte, et + fermée immédiatement à l'issue du traitement. Cette configuration ne + doit être utilisée qu'à des fins de débogage, ou sur des serveurs à charge faible.
-Par défaut, les groupes de connexions persistentes sont activés +
Par défaut, les groupes de connexions persistentes sont activés (ou une seule connexion persistente du style LAMP pour les serveurs - non threadés), et c'est la configuration qui devrait être utilisée + non threadés), et c'est la configuration qui devrait être utilisée dans la plupart des cas sur un serveur en production.
Avant la version 2.2.2, cette directive n'acceptait que les
@@ -259,17 +282,17 @@ données
Pour les modules tels que les modules d'authentification, qui
- utilisent de manière répétée la même requête SQL, on peut optimiser
- les performances en préparant la requête une fois pour toutes au
- démarrage, plutôt qu'à chaque utilisation. Cette directive permet de
- préparer une requête SQL et de lui assigner une étiquette.
Cette directive permet de définir le nombre minimum de connexions - par processus (plates-formes threadées uniquement).
+Cette directive permet de définir le nombre minimum de connexions + par processus (plates-formes threadées uniquement).
Cette directive permet de définir le nombre maximum de connexions - à maintenir par processus, en dehors de celles servant à gérer les - pics de demandes (plates-formes threadées uniquement).
+Cette directive permet de définir le nombre maximum de connexions + à maintenir par processus, en dehors de celles servant à gérer les + pics de demandes (plates-formes threadées uniquement).
Cette directive permet de définir le nombre maximum effectif de - connexions par processus (plates-formes threadées uniquement).
+Cette directive permet de définir le nombre maximum effectif de + connexions par processus (plates-formes threadées uniquement).
Cette directive permet de définir la durée de vie des connexions - inactives lorsque le nombre de connexions spécifié par la directive - DBDKeep a été dépassé (plates-formes threadées uniquement).
+Cette directive permet de définir la durée de vie des connexions + inactives lorsque le nombre de connexions spécifié par la directive + DBDKeep a été dépassé (plates-formes threadées uniquement).
Les modules qui le souhaitent peuvent exécuter une ou plusieurs - instructions SQL après connexion à une base de données. Par exemple - initialiser certaines valeurs, ou ajouter une entrée dans le journal - lors d'une nouvelle connexion à la base de données.
+Les modules qui le souhaitent peuvent exécuter une ou plusieurs + instructions SQL après connexion à une base de données. Par exemple + initialiser certaines valeurs, ou ajouter une entrée dans le journal + lors d'une nouvelle connexion à la base de données.
Le troisième argument optionnel permet de féfinir un des drapeaux suivants (les drapeaux sont sensibles à la casse) :
@@ -447,18 +449,35 @@ HTML 4 et XHTML 1.Cette directive permet de spécifier les éléments dont les attributs
-d'URL doivent être réécrits en utilisant les règles standards
-
Normalement, cette directive est définie globalement. Si vous -définissez ProxyHTMLLinks à plusieurs niveaux, certains niveaux -l'emportant sur d'autres, vous devrez spécifier un jeu complet -de liens pour chaque niveau.
-Le fichier proxy-html.conf fournit une configuration par -défaut et définit les liens HTML selon les standards -HTML 4 et XHTML 1.
+Cette directive permet de spécifier les éléments dont les attributs d'URL
+doivent être réécrits en utilisant les règles standards
Normalement, cette directive +est définie globalement. Si vous définissez ProxyHTMLLinks à plusieurs niveaux, +certains niveaux l'emportant sur d'autres, vous devrez spécifier un jeu complet +de liens pour chaque niveau.
Le fichier proxy-html.conf +fournit une configuration par défaut et définit les liens HTML selon les +standards HTML 4 et XHTML 1.
+Ce document est un complément à la documentation de référence du module
-
Ce document est un complément à la documentation de référence du module
+
Nous voulons créer automatiquement un serveur virtuel pour tout - nom d'hôte qui peut être résolu dans notre domaine, sans avoir à - créer de nouvelle section VirtualHost.
+Nous voulons créer automatiquement un serveur virtuel pour tout + nom d'hôte qui peut être résolu dans notre domaine, sans avoir à + créer de nouvelle section VirtualHost.
-Dans cet exemple, nous supposons que nous utilisons le nom d'hôte +
Dans cet exemple, nous supposons que nous utilisons le nom d'hôte
www.SITE.example.com
pour chaque
utilisateur, et que nous servons leur contenu depuis
/home/SITE/www
.
La directive RewriteMap interne tolower
permet de
-s'assurer que les noms d'hôtes utilisés seront tous en minuscules, de
-façon à éviter toute ambiguité dans la structure des répertoires qui
-doit être créée.
Les contenus des parenthèses utilisées dans une directive Les contenus des parenthèses utilisées dans une directive %1
, %2
, etc..., alors que
-les contenus des parenthèses utilisées dans une directive %1
, %2
, etc..., alors que
+les contenus des parenthèses utilisées dans une directive $1
, $2
, etc...$1
, $2
, etc...
-Comme c'est le cas pour de nombreuses techniques discutées dans ce
-document, mod_rewrite n'est vraiment pas la meilleure méthode pour
-accomplir cette tâche. Vous devez plutôt vous tourner vers
-
Cet extrait du fichier httpd.conf
permet d'obtenir
- le même résultat que le premier exemple.
- La première moitié est très similaire à la partie correspondante
- ci-dessus, excepté quelques modifications requises à des fins de
- compatibilité ascendante et pour faire en sorte que la partie
- mod_rewrite
fonctionne correctement ; la seconde moitié
+ le même résultat que le premier exemple.
+ La première moitié est très similaire à la partie correspondante
+ ci-dessus, excepté quelques modifications requises à des fins de
+ compatibilité ascendante et pour faire en sorte que la partie
+ mod_rewrite
fonctionne correctement ; la seconde moitié
configure mod_rewrite
pour effectuer le travail
proprement dit.
Comme mod_rewrite
s'exécute avant tout autre module
+
Comme mod_rewrite
s'exécute avant tout autre module
de traduction d'URI (comme mod_alias
), il faut lui
- ordonner explicitement d'ignorer toute URL susceptible d'être
- traitée par ces autres modules. Et comme ces règles auraient sinon
- court-circuité toute directive ScriptAlias
, nous devons
- faire en sorte que mod_rewrite
déclare explicitement
+ ordonner explicitement d'ignorer toute URL susceptible d'être
+ traitée par ces autres modules. Et comme ces règles auraient sinon
+ court-circuité toute directive ScriptAlias
, nous devons
+ faire en sorte que mod_rewrite
déclare explicitement
ces correspondances.
Cette construction utilise des fonctionnalités plus avancées de +
Cette construction utilise des fonctionnalités plus avancées de
Le fichier vhost.map
devrait ressembler à ceci :
Le fichier vhost.map
devrait ressembler à ceci :
On doit ajouter à httpd.conf
:
On doit ajouter à httpd.conf
: