php-experts.org - développement php et internet » apache https://www.php-experts.org Ressources sur le développement internet, PHP/MySQL, Ajax, marketing online, référencement... Sat, 19 Jun 2010 14:23:03 +0000 http://wordpress.org/?v=2.9.2 en hourly 1 Apache, VirtualHost et ServerAlias https://www.php-experts.org/developpement-web/admin-serveur/apache-virtualhost-et-serveralias-26 https://www.php-experts.org/developpement-web/admin-serveur/apache-virtualhost-et-serveralias-26#comments Mon, 20 Oct 2008 21:26:17 +0000 Didier https://www.php-experts.org/?p=26 Lorsqu’on adapte la configuration d’un serveur Apache pour gérer un nouveau domaine, il faut théoriquement créer autant de VirtualHosts que ce qu’on aura de sous-domaines. Et si chaque utilisateur enregistré devait avoir son propre sous-domaine (comme sur une plate-forme de blogs, par exemple) ?

Rien de plus simple, en fait… La directive ServerAlias permet d’utiliser des wildcards, pour désigner “tous les sous-domaines”. L’étoile (*) fonctionne alors comme une parenthèse capturante dans une expression régulière. La directive VirtualDocumentRoot, elle, accepte des paramètres en %N (où N est un nombre entier), avec N correspondant à la place de l’étoile dans la chaîne. %1 est la première chaîne qui a matché une étoile.

Pas clair ? Ok, un exemple :

  1. <VirtualHost *>
  2.         ServerName domain.tld
  3.         ServerAlias *.domain.tld
  4.         VirtualDocumentRoot /var/www/domain.tld/%1/
  5. </VirtualHost>

Pas plus compliqué… Le * va capturer le sous-domaine et le passer au VirtualDocumentRoot. Donc pour test.domain.tld, on tombera dans /var/www/domain.tld/test/.

Dans le <VirtualHost>, après un VirtualDocumentRoot, on peut utiliser des directives comme d’habitude. (Je n’ai pas essayé d’y reprendre le %1, pour modifier les options de configuration de l’ensemble des dossiers “virtuels”… quelqu’un sait si ça marche ?)

]]>
https://www.php-experts.org/developpement-web/admin-serveur/apache-virtualhost-et-serveralias-26/feed 2
Coder un système d’authentification : Apache ET bases de données https://www.php-experts.org/developpement-web/php-developpement-web/coder-un-systeme-dauthentification-apache-et-bases-de-donnees-11 https://www.php-experts.org/developpement-web/php-developpement-web/coder-un-systeme-dauthentification-apache-et-bases-de-donnees-11#comments Wed, 09 Jul 2008 09:00:15 +0000 Didier https://www.php-experts.org/?p=11 Quand on veut gérer un système d’authentification en PHP pour un intranet (qui demande plus de rigueur et de sécurité qu’un site internet), on se retrouve à priori avec deux solutions valables: soit un formulaire relié à une base de données, le classique du Web/frontoffice, soit un fichier htpasswd, le classique du Backoffice, plus sûr mais moins flexible (notamment au niveau de l’ajout d’utilisateur ou de la gestion des droits d’accès). J’ai mis longtemps à me rendre compte qu’on pouvait mixer les deux pour avoir quelque chose de souple et de fiable.

En manipulant les headers Apache en PHP, on peut forcer le serveur à demander une authentification au visiteur, comme avec un .htaccess/htpasswd. Il suffit pour cela d’ajouter :

  1. header(‘WWW-Authenticate: Basic realm="Administration – Accès restreint"’);
  2. header(‘HTTP/1.0 401 Unauthorized’);

Quand on arrive sur la page, une “jolie” boite apparaît :
Exemple de boite de dialogue d\'authentification
C’est en faisant un var_dump($_SERVER) sur l’index du dossier qu’on remarque les deux variables qui vont nous servir : PHP_AUTH_USER et PHP_AUTH_PW. Celles-ci contiennent les valeurs des deux champs de la boîte de dialogue qu’Apache a fait remplir à votre visiteur. En y pluggant un système de login “classique”, qui va chercher une correspondance entre ces données et celles contenues dans une base de données, on se retrouve avec un module de login par headers http, envoyés par php, et couplé à une base de données dans laquelle on peut, notamment, stocker un niveau d’accès pour chaque utilisateur (et utiliser le Bit Bashing…)

]]>
https://www.php-experts.org/developpement-web/php-developpement-web/coder-un-systeme-dauthentification-apache-et-bases-de-donnees-11/feed 2