Configurer Apache sous Windows XP => .htaccess

Mammouth du PHP | 19672 Messages

16 janv. 2006, 15:11

Bonjour,
je fais face à un problème de configuration de mon serveur Apache en local pour utiliser des fichiers .htaccess.

Un premier test n'avais fait absolument aucun effet. Je suis allé faire un tour sur le tuto du site et j'ai modifié en conséquence mon fichier httpd.conf

Les directives modifiées sont devenues:

Code : Tout sélectionner

<Directory "C:/www"> #... AllowOverride All #... #... AccessFileName c:/www/.htaccess #...
Le résultat n'est pas brillant, en ouvrant la page index de mon serveur, je n'ai droit qu'à ceci :
Forbidden
You don't have permission to access /index.php on this server.

Apache/1.3.33 Server at localhost Port 80
En clair, une belle erreur 403

J'ai donc du louper un chapitre quelque part. La doc sur Apache étant d'une clarté et d'une luminosité digne d'une mine de charbon (de nuit :mrgreen:)

Si quelqu'un a une petite idée à me suggérer ?

Ma configuration :
Windows XP Pro SP2;
Apache 1.3.33;

[Edit]Je précise que ce n'est ni WAMP ni EasyPHP mais une installation manuelle complète.[/Edit]
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2006, 16:48

As-tu jeté un coup sur le HOWTO disponible dans la documentation officielle?
http://httpd.apache.org/docs/2.0/howto/auth.html

Mammouth du PHP | 19672 Messages

16 janv. 2006, 16:54

Je cherchais pour Apache 1.3, ça, c'est la doc Apache 2, enfin merci quand même ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2006, 17:01

Alors il existe la version pour 1.3:
http://httpd.apache.org/docs/1.3/howto/auth.html

Mammouth du PHP | 19672 Messages

16 janv. 2006, 17:05

Ça, j'ai fouillé, mais comme j'ai dit, c'est pas d'une clarté évidente. Le développement en PHP, je sais très bien faire, mais la configuration serveur, c'est pas vraiment mon rayon, je suis pas admin réseau, alors le jargon des techniciens Apache m'échappe un peu des fois. Enfin bon, de toutes façon, comme j'ai d'autres petits soucis, je vais vérifier quelques détails et peut-être bien virer tout ça pour refaire une install complète avec Apache 2, on verra.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2006, 17:18

En gros, voici le résumé des étapes:
  1. Autoriser l'utilisation des directives d'authentification en ajoutant ceci à la directive AllowOverride: AuthConfig
    Il faut redémarrer le serveur pour que les configurations soient prises en compte.
  2. Créer les fichiers contenant les mots de passe en utilisant la commande suivante (qui se trouve dans le répertoire bin du répertoire d'installation)

    Code : Tout sélectionner

    htpasswd -c "W:\.htpasswd" cyrano
    Tu seras alors invité à entrer le mot de passe pour l'utilisateur cyrano.
    Le fichier contenant les mots de passe se trouvera dans le dossier W:\.htpasswd
  3. Créer le fichier .htaccess qui contiendra les directives d'authentification

    Code : Tout sélectionner

    AuthType Basic AuthName "Restricted Files" AuthUserFile W:\.htpasswd Require user cyrano
Terminé!

Mammouth du PHP | 19672 Messages

16 janv. 2006, 17:24

Ben c'est intéressant, mais je ne cherche pas à restreindre l'accès, d'autant moins que mon serveur n'est pas accessible depuis Internet, le routeur ferme la porte.

Enfin bon, je vais essayer ça quand même, mais j'y crois pas trop.

Merci.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2006, 17:29

Que désires-tu faire?

La documentation inclue un petit bloc descriptif à chaque directive documentée. Dans ce bloc se trouve la caractéristique "Override" et également "Context".

Override indique quel paramètre tu dois ajouter à la directive AllowOverride du fichier httpd.conf pour autoriser l'utilisation de la directive désirée dans le fichier .htaccess

Ensuite, Context indique dans quel fichier tu peux utiliser la directive. Si tu n'as pas .htaccess, il est normalement que cela ne fonctionne pas dans un fichier .htaccess.

Mammouth du PHP | 19672 Messages

16 janv. 2006, 17:37

J'ai expliqué ce que je voulais faire dès le départ. J'ai cherché "Contect" dans le fichier httpd.conf, rien trouvé.

Le problème vient peut-être de ce que je n'utilise pas le répertoire htdocs du répertoire Apache pour stocker mes fichiers web mais un répertoire indépendant, "www" à la racine de mon C: : c'est pour cette raison que j'ai essayé en modifiant l'adresse dans <Directory> qui à la base pointait sur le répertoire Apache/htdocs : en mettant C:/www, rideau et erreur 403.

Et mon Root directory était lui au départ pointé vers C:/www et ça fonctionnait très bien. Ce qui ne fonctionne pas, c'est l'utilisation d'un quelconque fichier .htaccess, il n'est pas du tout interprété ni appliqué.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

16 janv. 2006, 17:54

J'ai expliqué ce que je voulais faire dès le départ. J'ai cherché "Contect" dans le fichier httpd.conf, rien trouvé.
Je n'ai jamais parlé de "Contect" mais de Contexte. Et cela ne se trouve pas dans le fichier httpd.conf mais dans la documentation.

Si tu désires déplacer ton DocumentRoot, tu dois modifier les directives suivantes:

DocumentRoot "C:/www"

<Directory "C:/www">
# Autorise tous les changements dans les fichiers .htaccess
# Idéalement, il ne faudrait donner que les permissions nécessaires
AllowOverride All

# Important car par défaut, tous les répertoires sont interdis d'accès
Order allow,deny
Allow from all
</Directory>

Le redémarrage du serveur est évidemment nécessaire pour tenir compte des nouvelles directives.

Si le problème persiste, ouvre le fichier error.log du répertoire logs/ et dis-moi ce qui s'y trouve dans les dernières lignes.

Mammouth du PHP | 19672 Messages

16 janv. 2006, 18:05

C'était une bonne idée de regarder le log, ça va simplifier mon problème: je vire tot ça et je refais l'installation complète, c'est l'horreur.

Merci quand même pour le coup de main.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 19672 Messages

16 janv. 2006, 19:44

Bon, problème résolu, je viens de refaire une grosse partie de mon installation incluant Apache 2.0.55 : l'url-rewriting a l'air de fonctionner, le résultat n'est pas exactement ce que j'espérais, mais ça fonctionne et c'est tout ce que je voulais.

Merci à ceux (même anonymes) qui ont pris la peine de s'attarder ici;)

++
Cyrano
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: