PHPIndex : Directives globales et locales avec Apache
Par Armel FAUVEAU, mercredi 12 avril 2000 à 04:59 :: Lu sur le Web :: #747 :: rss
Dans un article en date du 24-11-1999 (voir lien) consacré au fichier php.ini, nous avions étudié succintement la structure de ce fichier, sa mise en place, son fonctionnement, et vu comment il pouvait servir à affiner certains paramétrages de PHP.
Lorsque l'on travail sur N sites hébergés sur le même serveur, il est parfois intéressant de paramétrer différement PHP suivant tels ou tels sites.
Nous allons voir comment la chose est possible, pour peu que PHP soit compilé en qualité de module d'Apache.
Paramétrage globaux et locaux
La fonction phpinfo() n'est plus à présenter. Mais si vous prenez le temps d'etudier plus en détail ce qu'elle retourne, vous remarquerez que la section Configuration contient trois colonnes : Directive, Master Value et Local Value.
En général, les colonnes Master Value et Local Value sont identiques. Master Value est construite en retournant les directives initialisées dans le fichier php.ini (si ce fichier est absent, ce sont les valeurs par defaut qui sont retournées). Local Value, quant à elle, est construite en retournant les directives initialisées localement. Nous allons voir comment initialiser de telles directives.
Etude de cas
Admettons qu'Apache soit installé sous /usr/local/apache. La racine de votre arborescence Web se trouvant sous /usr/local/apache/htdocs. Imaginons maintenant que vous ayez deux sous repertoires racine /usr/local/apache/htdocs/site1 et /usr/local/apache/htdocs/site2. Et pour finir, que vous désirez activer la directive magic_quote_gpc pour le site1 et la desactiver pour le site2.
Si vous faites un phpinfo() sous la racine du site1 et du site2, vous allez constater que la directive magic_quote_gpc retourne la même valeur (tant en local qu'en global), et ceci pour les 2 sites.
Afin d'activer la directive magic_quote_gpc pour le site1 et de la desactiver pour le site2, il existe 2 grandes methodes : modifier le httpd.conf ou créer un fichier .htaccess.
Modification du httpd.conf
Editez le fichier httpd.conf et ajoutez ceci,
<Directory /usr/local/apache/htdocs/site1/>
php3_magic_quotes_gpc on
</Directory>
<Directory /usr/local/apache/htdocs/site2/>
php3_magic_quotes_gpc off
</Directory>
Puis, relancez Apache (/usr/local/apache/bin/apachectl restart).Si vous faites à nouveau un phpinfo() sous la racine du site1 et du site2, vous allez constater, au niveau de la colonne Local Value, que la directive magic_quote_gpc est activée (1) pour le site1. Et quelle est desactivée pour le site2 (0). Observez aussi, au passage, la directive retournée dans la colonne Global Value : dans l'un des cas, la directive sera différente de celle retournée dans la colonne Local Value. Nous avons initialisée une directive local :)
Creation d'un fichier .htaccess
Une autre méthode consiste à utiliser un fichier .htaccess.
Sous la racine du site1, nous allons créer un fichier .htaccess contenant,
php3_magic_quotes_gpc onEt sous la racine du site2, nous allons créer un fichier .htaccess contenant,
php3_magic_quotes_gpc offPour finir, relancez Apache (/usr/local/apache/bin/apachectl restart).
Conclusion
La plupart des hébergeurs supportant PHP disposent de paramétrages particuliers (include_path sur Online par exemple). Le paramétrage de directives locales permet souvent de developper son site, sur son propre serveur local, en prenant en compte les specs de l'hébergeur qui aura la charge d'accueillir à terme votre développement. C'est un gain de temps non negligeable lors de l'étape de mise en ligne definitive :)
Consulter le lien






Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.