J'essaye de configurer l'accès mercurial en utilisant Apache http. Cela nécessite une authentification. Mon /etc/apache2/sites-enabled/mercurial
ressemble à ceci:
NameVirtualHost *:8080
<VirtualHost *:8080>
UseCanonicalName Off
ServerAdmin webmaster@localhost
AddHandler cgi-script .cgi
ScriptAliasMatch ^(.*) /usr/lib/cgi-bin/hgwebdir.cgi/$1
</VirtualHost>
Chaque tutoriel que j'ai lu sur Internet me dit d'insérer ces lignes:
AuthType Basic
AuthUserFile /usr/local/etc/httpd/users
Mais quand je le fais, j'obtiens l'erreur suivante:
# /etc/init.d/apache2 reload
Syntax error on line 8 of /etc/apache2/sites-enabled/mercurial:
AuthType not allowed here
Ma distribution est une Ubuntu personnalisée appelée Turnkey Linux Redmine
<Location /opt/mcmap/shapefiles.php> AuthType Kerberos AuthName KerberosLogin KrbServiceName HTTP/intranet.spectrumasa.com KrbMethodNegotiate On KrbMethodK5Passwd On KrbAuthRealms DOMAIN.COM Krb5KeyTab /etc/httpd/conf/intranet.keytab require valid-user Options Indexes MultiViews FollowSymLinks AllowOverride All Order allow,deny Allow from all SetOutputFilter DEFLATE </Location>
require valid-user
partie. Un exemple complet peut être une chose merveilleuse. Merci.<Location />
Dans tous les cas, j'avais besoin de ne pas avoir d'erreur de syntaxe lors du chargement du fichier de configuration.<Location />
édité pour<Location>
avec un message de journal interne de "corrigé ... pour éviter beaucoup de problèmes", sans rien dire de la vraie raison dans la réponse elle-même? Il n’existe pas de<Location>
directive (c’est-à-dire sans localisation) dans Apache. Cela cause certainement des problèmes maintenant. ;) (Voir par exemple ci-dessus.)Je lance Apache2 sur Ubuntu 10.04 - même problème et merci pour la solution. J'ai trouvé que je devais mettre la configuration en
/etc/apache2/apache2.conf
Vous pouvez générer le nom d'utilisateur et le mot de passe à l'aide de htpasswd. Nouveau fichier:
Pour ajouter au fichier existant:
la source
Vous pouvez protéger un emplacement ou un répertoire. Pour un répertoire, ajoutez quelque chose comme:
Vous pouvez également ajouter
Deny
etAllow
directives pour un contrôle plus précis.la source
On dirait que vous spécifiez les paramètres d’authentification dans le fichier
VirtualHost
. Généralement, ces paramètres sont spécifiés dans laDirectory
directive.Vous pouvez également utiliser des
.htaccesss
fichiers, mais spécifier dans la configuration d'Apache est un bon choix par défaut, car il est moins exposé.Documentation Apache
la source
J'exécute Apache2 sur Ubuntu 10.10. J'ai eu des problèmes avec toutes les solutions ci-dessus, mais cela a bien fonctionné (d'après Apache Docs):
La plus grande différence par rapport aux réponses ci-dessus semble être la directive AuthBasicProvider définie sur "fichier" et la directive Require comprenant le bit "utilisateur" précédant le nom d'utilisateur réel.
J'espère que ça aide quelqu'un.
la source
Nous utilisons une version optimisée de la mémoire d’apache et avons rencontré ce problème.
Cela était dû au fait que la ligne suivante n'était pas présente dans la configuration d'Apache:
la source