Closed maximetoma closed 1 year ago
Y a rien dans les logs de GeoNature ?
C'est pas un PB de droits sur le répertoire où le fichier d'export est écrit ? Du genre apache n'a pas les droits. S'assurer qu'il y'a bien un Require all granted sur ce répertoire
@camillemonchicourt non rien de particulier qui s’inscrit quand je fais la manipulation
@gildeluermoz ci-joint mon fichier geonature.conf, je n'arrive pas à régler le pb et je suis pas très fort en apache :)
Salut !
Peut-être aussi voir si le dossier /home/geonatureadmin/geonature/backend/media/exports a les bons droits linux. Pour voir ça :
ls -l /home/geonatureadmin/geonature/backend/media
et voir à qui appartient le dossier exports
et si l'utilisateur linux geonatureadmin a bien les droits. Cela permettra de voir aussi si le fichier d'export est présent :)
Bonjour @maximetoma, A minima, il semble y avoir un pb sur la config apache sur les lignes:
<Location /home/geonatureadmin/geonature/backend/media/exports>
Require all granted
</Location>
Location concerne les chemins d'url, dans le cas présent, il s'agirait plutôt de Directory
<Directory /home/geonatureadmin/geonature/backend/media/exports>
Require all granted
</Directory>
Par contre, ton fichier semble contenir d'anciennes config geonature.
Ton bloc
# ========================== CONFIGURATION GEONATURE ==========================
ServerName sep-geonature.reserves-naturelles.org
# ServerAlias sep-geonature.reserves-naturelles.org
DocumentRoot "/home/geonatureadmin/geonature/frontend/dist"
IncludeOptional /etc/apache2/conf-available/geonature.conf
IncludeOptional /etc/apache2/conf-available/usershub.conf
ErrorLog "/var/log/apache2/geonature_error.log"
CustomLog "/var/log/apache2/geonature_access.log" combined
<Location /api>
ProxyPass http://127.0.0.1:8000/api
ProxyPassReverse http://127.0.0.1:8000/api
Require all granted
</Location>
<Location /home/geonatureadmin/geonature/backend/media/exports>
Require all granted
</Location>
devrait sans doute plutôt ressembler à ça:
# ========================== CONFIGURATION GEONATURE ==========================
ServerName sep-geonature.reserves-naturelles.org
IncludeOptional /etc/apache2/conf-available/geonature.conf
IncludeOptional /etc/apache2/conf-available/taxhub.conf
IncludeOptional /etc/apache2/conf-available/usershub.conf
ErrorLog "/var/log/apache2/geonature_error.log"
CustomLog "/var/log/apache2/geonature_access.log" combined
Le vhost de GeoNature a été beaucoup amélioré et simplifié depuis la version 2.8.0. Le fichier geonature.conf doit être comme le template : https://github.com/PnX-SI/GeoNature/blob/master/install/assets/vhost_apache.conf, comme indique @lpofredc.
Comme on voit dans celui-ci, il fait appel et inclut le fichier de configuration généré et renseigné automatiquement : https://github.com/PnX-SI/GeoNature/blob/master/install/assets/geonature_apache.conf
Cela a été rappelé dans le changelog de la 2.12.0 :
Il est fortement conseillé d'utiliser la configuration Apache générée par défaut dans /etc/apache2/conf-available/geonature.conf et de l'inclure dans votre vhost (/etc/apache2/sites-available/geonature.conf et/ou /etc/apache2/sites-available/geonature-le-ssl.conf), en suivant la documentation dédiée
Le changelog de la version 1.4.0 du module Export indique aussi d'enlever la conf spécifique au chemin des fichiers exportés, ce que tu ne sembles pas non plus avoir fait :
Le dossier de stockage des exports a été modifié de geonature/backend/static/exports/ à geonature/backend/media/exports/. La configuration Apache fournie avec GeoNature 2.12 sert directement le dossier media sans passer par gunicorn. Si vous aviez modifié votre configuration spécifiquement pour le module d’export, il est recommandé de retirer cette partie spécifique au profit de la configuration générique de GeoNature.
Merci pour vos retours !
J'avais je crois gardé à l'époque la config précédente en adaptant le code, mais je n'ai pas saisi que on pouvait beaucoup le simplifier :)
Du coup j'ai d'un côté :
# /etc/apache2/sites-available/geonature.conf
ServerName sep-geonature.reserves-naturelles.org
IncludeOptional /etc/apache2/conf-available/geonature.conf
IncludeOptional /etc/apache2/conf-available/taxhub.conf
IncludeOptional /etc/apache2/conf-available/usershub.conf
ErrorLog "/var/log/apache2/geonature_error.log"
CustomLog "/var/log/apache2/geonature_access.log" combined
et
# /etc/apache2/conf-available/geonature.conf
# Alias: first have precedence, so static & media aliases must be defined before /geonature alias
Alias "/api/media" "/home/geonatureadmin/geonature/backend/media"
<Directory "/home/geonatureadmin/geonature/backend/media">
Require all granted
AllowOverride None
Options -Indexes
</Directory>
Alias "/api/static" "/home/geonatureadmin/geonature/backend/static"
<Directory "/home/geonatureadmin/geonature/backend/static">
Require all granted
AllowOverride None
Options -Indexes
</Directory>
# CUSTOM STATIC FILE
RewriteEngine On
# Define STATIC_FILE environment variable
RewriteRule "^/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/geonatureadmin/geonature/custom/%{ENV:STATIC_FILE}" -f
# If so, redirect to custom static file instead of default static file
RewriteRule "^/api/static/(.*)$" "/home/geonatureadmin/geonature/custom/$1" [L]
<Directory "/home/geonatureadmin/geonature/custom">
Require all granted
AllowOverride None
Options -Indexes
</Directory>
AliasMatch "^(.*)$" "/home/geonatureadmin/geonature/frontend/dist$1"
<Directory "/home/geonatureadmin/geonature/frontend/dist">
Require all granted
</Directory>
<Location "/api">
ProxyPass http://127.0.0.1:8000/api
ProxyPassReverse http://127.0.0.1:8000/api
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/json
AddOutputFilterByType DEFLATE application/geo+json
</IfModule>
</Location>
# Location: last have precedence so next blocks must be located after /api location block
<Location "/api/media">
ProxyPass !
</Location>
<Location "/api/static">
ProxyPass !
</Location>
Pour le changelog d'Export, je crois de souvenir que je n'avais rien à modifier (je n'avais rien changé à la config de base)... Ou alors je n'ai pas compris...
@mvergez pour les permissions, j'ai
drwxrwxrwx 4 geonatureadmin geonatureadmin 4096 2 août 16:55 exports
Mais avec toutes ces modifications (en faisant un sudo systemctl reload apache2
), j'ai toujours le même soucis...
Mon fichier geonature/config/exports_config.toml
se résume à
## Nombre de jours après lequel les fichiers exportés sont supprimés automatiquement sur le serveur
nb_days_keep_file = 15
[EDIT] En redémarrant le service geonature_worker, les exports publics fonctionnent
Autrement, les exports privés restent avec la même erreur 403 Forbiden
Petite précision, l'erreur se fait après avoir sélectionné le format de fichier, validé la licence et cliquer sur "OK". Le fichier d'export n'est pas généré et le mail n'est pas envoyé
du coup je ne comprends pas si ton soucis est résolu.
Si ton geonature est en https, penses bien à vérifier que le IncludeOptional /etc/apache2/conf-available/geonature.conf
est présent dans le fichier de conf apache pour le https, par exemple /etc/apache2/sites-available/geonature-le-ssl.conf
et pas seulement dans /etc/apache2/sites-available/geonature.conf
@gildeluermoz Non j'ai toujours le problème sur mes exports privés L'IncludeOptional est bien dans le fichier geonature-le-ssl.conf
OK je viens de tester et de reproduire sur le serveur de DEMO. Quand un export n'est pas PUBLIC et que mon utilisateur est bien associé à l'export, j'ai la même erreur que tu as mentionné :
Donc ça semble un bug de la version 1.5.0 du module EXPORT...
Par contre je ne reproduis pas en production sur notre serveur du PNE.
Fixé par ce commit : https://github.com/PnX-SI/gn_module_export/pull/193/commits/100217734d80e7358f5ced908395b95f7ef3a184 a venir dans la 1.5.1 (et normal que sur notre Prod ça fonctionne, on est déjà sur la branche "hot-fixe 1.5"
Un grand merci @TheoLechemia ça fonctionne :D
Une partie des soucis était liées au fait que la configuration Apache de cette instance n'avait pas été mis à jour. Une autre partie était un soucis de permissions corrigé dans la 1.5.2.
Version GeoNature 2.12.3 Exports 1.5.0
Description du bug Erreur retournée :
Le téléchargement ne veut pas se faire, me donne une erreur 403, avez-vous une idée du problème ? Je suis en admin avec les permissions admin
Logs Aucun log relevable....