PnX-SI / GeoNature

Application de saisie et de synthèse des observations faune et flore
GNU General Public License v3.0
99 stars 101 forks source link

Problème d'accès au dossier geonature/custom #2980

Closed jbrieuclp closed 1 month ago

jbrieuclp commented 5 months ago

Version 2.14 Debian 12.5 Apache 2.4.57 modules rewrite, proxy, proxy_http et deflate activés

Description du bug Avec la config apache de base (fichier conf-available/geonature.conf) les éléments du dossier /geonature/custom ne sont pas accessibles dans l'appli (images et css non chargés : Not Found).

Ca ça ne marche pas :

Alias "/geonature/api/static" "/home/user/geonature/backend/static"
<Directory "/home/user/geonature/backend/static">
    Require all granted
    AllowOverride None
    Options -Indexes
</Directory>

# CUSTOM STATIC FILE
RewriteEngine On
# Define STATIC_FILE environment variable
RewriteRule "^/geonature/api/static/(.*)$" - [env=STATIC_FILE:$1,chain]
# Test if custom static file exists (not tested for non static file thanks to previous chain flag)
RewriteCond "/home/user/geonature/custom/%{ENV:STATIC_FILE}" -f
# If so, redirect to custom static file instead of default static file
RewriteRule "^/geonature/api/static/(.*)$" "/home/user/geonature/custom/$1" [L]
<Directory "/home/user/geonature/custom">
    Require all granted
    AllowOverride None
    Options -Indexes
</Directory>

En dur dans ce sens, ça marche

Alias "/geonature/api/static" "/home/user/geonature/custom"
<Directory "/home/user/geonature/custom">
    Require all granted
    AllowOverride None
    Options -Indexes
</Directory>

Alias "/geonature/api/static" "/home/user/geonature/backend/static"
<Directory "/home/user/geonature/backend/static">
    Require all granted
    AllowOverride None
    Options -Indexes
</Directory>

En dur dans ce sens, ça ne marche pas

Alias "/geonature/api/static" "/home/user/geonature/backend/static"
<Directory "/home/user/geonature/backend/static">
    Require all granted
    AllowOverride None
    Options -Indexes
</Directory>

Alias "/geonature/api/static" "/home/user/geonature/custom"
<Directory "/home/user/geonature/custom">
    Require all granted
    AllowOverride None
    Options -Indexes
</Directory>

Vu que ça marche pour la config numero 2, ce n'est pas un problème de droit debian non plus.

Est-ce que j'ai un module manquant qui demande à être activé ? Du coup j'ai un peu de mal à comprendre le pourquoi du comment là dessus... J'ai testé en échappant les / des regex en \/ : pas mieux

Et puis le cache du navigateur vient aussi donner de faux espoirs sur les tests de config, en faisant croire que ça marche alors que non...

jbrieuclp commented 5 months ago

En fait non, c'était une blague ! La seconde config que je disais marcher ne marche pas... Mauvaise surprise du jour : les fichiers du dossier geonature/backend/static ne sont plus servis -_- Pour le coup il devait y avoir une histoire de cache là dedans...

Solution provisoire en ce qui me concerne tout remonter dans le dossier geonature/backend/static.

Personne n'a rencontré de problème similaire ?

camillemonchicourt commented 5 months ago

C'est bizarre, on n'a pas identifié ça jusque là dans nos tests etc... Faut qu'on regarde.

gildeluermoz commented 5 months ago

Tu as bien fait le chmod +x /home/user/ ?

camillemonchicourt commented 5 months ago

Oui ça c'est discuté sur https://github.com/PnX-SI/GeoNature/issues/2852

Et je ne reproduis pas lors de mes tests d'installation... 🤔

jbrieuclp commented 5 months ago

Tu as bien fait le chmod +x /home/user/ ?

Après moult tests j'ai fini par tenter cette commande, mais rien de mieux. Vraiment étrange comme problème. J'ai modifié la config en désactivant l'alias sur le dossier backend/static et en modifiant le rewrite pour justement le rediriger vers ce dossier backend/static et bien pas mieux => Not Found Comme si le rewrite ne fonctionnait pas... Ca ne me semble pas provenir d'un droit apache car avec l'alias ca marche sans problème... Je n'ai pas de problème sur ma VM en dev non plus.

Qu'avez vous au niveau de vos variables SERVER_NAME ?

jbrieuclp commented 1 month ago

Salut, je reviens sur ce sujet : pouvez-vous me confirmer que les fichiers de conf (geonature.conf, taxhub.conf et usershub.conf) présents dans le dossier conf-available d'apache ne sont pas publiés dans le répertoire conf-enabled ?

jbrieuclp commented 1 month ago

Ok, le problème était dû au fait que j'avais 2 fichiers de config pour le même virtualhost (un pour gérer la racine et le second pour geonature qui est pourtant en alias) du coup les 2 configs se télescopaient. J'ai fusionné mes 2 fichiers de configs en un et c'est ok.