1 votes

Configuration de Trac avec Apache et mod_fcgi entraîne soit une erreur 404, soit une erreur 403

Je suis en train de créer une installation de trac sur mon serveur privé afin de l'utiliser pour la gestion de projets. J'ai suivi les instructions d'installation et de connexion au serveur apache qui se trouvent dans le guide officiel d'installation de trac mais lorsque j'essaie d'accéder à trac, j'obtiens une erreur 404. Lorsque je désactive ScriptAlias, j'obtiens une erreur 403 Accès refusé. Voici les détails:

Ma configuration est la suivante: ArchLinux i686 fonctionnant en mode sans interface graphique (je m'y connecte via ssh) et connecté sans fil au routeur de mon réseau domestique. J'ai choisi de connecter trac et apache avec FastCGI

Un utilisateur trac pour contenir tout ce qui concerne trac.

$ sudo ls /home/trac
cgi-bin  env  htdocs

env est l'endroit où se trouvent les projets cgi-bin et htdocs ont été générés avec la commande trac-admin $TARGET $DESTINATION deploy.

Un utilisateur httpd pour contenir le DocumentRoot du serveur apache:

$ sudo ls /home/httpd
ftp  http

J'ai donné la propriété de tout dans /home/trac, de manière récursive, à httpd et au groupe http (non sécurisé, je sais, mais je voulais d'abord le tester de la manière la plus simple possible):

sudo chown -R http.httpd /home/trac

J'ai apporté les modifications suivantes à httpd.conf:

Ajouté:

LoadModule fcgid_module modules/mod_fcgid.so

Modifié:

User httpd
Group http

Changé DocumentRoot à ceci partout:

DocumentRoot "/home/httpd/http"

Et enfin, j'ai activé les hôtes virtuels:

# Hôtes virtuels
Include conf/extra/httpd-vhosts.conf

Voici le httpd-vhosts.conf:

ServerAdmin myemail@email.com
DocumentRoot "/home/trac/"
ServerName SERVER_IP
ErrorLog "/var/log/httpd/trac.error.log"
CustomLog "/var/log/httpd/trac.access.log" combined

    Order deny,allow
    Deny from all
    Allow from 192.168.0.0/16 127.0.0.1

    Order deny,allow
    Allow from all
    AuthName "Trac Projects"
    AuthType Basic
    AuthUserFile /home/trac/.htpasswd
    Satisfy Any
    Require valid-user

ScriptAlias /env /home/trac/cgi-bin/trac.fcgi

À noter que j'ai donné la propriété de trac.fcgi à http ainsi que défini explicitement les autorisations pour le rendre exécutable.

Lorsque ScriptAlias est commenté, j'obtiens une erreur 403 Accès refusé pour le root, SERVER_IP, ainsi que SERVER_IP/env ou tout autre répertoire dans le chemin. Lorsque la ligne n'est pas commentée, j'obtiens une erreur 403 Accès refusé pour le root et 404 Objet non trouvé pour tout le reste.

Les sources que j'ai utilisées pour en arriver à ce point sont d'abord le guide d'installation de trac puis le guide d'installation arch linux obsolète lorsque le premier n'a pas fonctionné (produit les mêmes résultats que je décris, seulement j'ai pu atteindre la page factice dans le DocumentRoot, et même avec l'alias de script activé, SERVER_IP/env était Accès refusé 403). Voici le httpd.conf car il est trop volumineux pour le poster ici: httpd.conf

Je pense qu'il s'agit d'un problème de permission mais en raison de ma faible expérience avec apache, je n'arrive pas à trouver de solution.

Merci d'avance.

P.S. Étant donné que je contrôle le tout via ssh, connecté en tant qu'un utilisateur différent, j'ai dû donner la propriété de httpd à ses répertoires http et ftp après les avoir créés. Je ne suis pas sûr si cela a une importance cependant.

1voto

hasienda Points 156

Notez qu'il existe une page wiki dédiée à la configuration FastCGI liée dans le guide d'installation générique. Notez également que wsgi est la configuration recommandée pour Trac de nos jours.

Mais si vous ne le souhaitez que pour un usage privé, je doute sérieusement que cela en vaille la peine. Cela pourrait être instructif, certes, mais je parie que la configuration autonome avec tracd vous permettra d'utiliser Trac en quelques minutes seulement.

En ce qui concerne l'accès et l'authentification, vous devriez avoir au moins un utilisateur dans votre /home/trac/.htpasswd, et le même utilisateur (de préférence en minuscules, sans caractères spéciaux comme les espaces, etc.) doit être enregistré dans Trac et avoir les autorisations appropriées. Pour commencer, vous devriez ajouter le premier utilisateur en tant qu'administrateur Trac en utilisant trac-admin comme ceci :

$> trac-admin /home/trac permission add  TRAC_ADMIN

Remplacez username par votre choix et comme d'habitude, vous devriez avoir au moins un autre utilisateur avec des autorisations régulières (après connexion, les autorisations du groupe authenticated s'appliquent).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X