Je me suis tourner le cerveau dans tous les sens possibles.. à bout de souffle je vous demande de me venir en aide
J’ai une commande awk dans un script cgi :
VISIO=$(param visio)
awk -F ";" -v VISIO=$VISIO ' $14 ~ VISIO {print $14";"$26";"$35} ' baseVisioV2.csv > liste.txt
Le problème est que cette commande me sort aucun résultat (liste.txt est donc vide)
J’ai donc vérifié si je récupéré bien le paramètre à enregistré dans la variable
VISIO=$(param visio)
avec un
echo $VISIO
Et ce echo me sort bien le bon contenue..
mais le plus fort c’est que, quand je tape la même cmd dans un terminal :
Ton fichier liste.txt est-il bien accessible en écriture par le cgi? (cgi lancé par le serveur http, donc avec l’utilisateur [mono]www-data[/mono] en principe)
Aussi, as-tu bien le bon “bang” en première ligne dans ton cgi (un script shell donc)?
[mono]#/bin/bash[/mono]
Aussi, regarde les logs d’erreur de ton serveur web (Apache je présume?) pour un indice éventuel.
Car grâce à la consultation des logs du apache je me suis rendu compte que le problème vient effectivement d’un soucis de droit quant à l’utilisation des fichiers que mon script génère.
Visite des logs est l’une des premières analyse à faire en cas de blocage et pourtant je n’y ai pas penser.
Donc solution apporté :
Mettre l’utilisateur d’apache www-data propriétaire du dossier où ce trouve les scripts cgi
attention ce n’est pas forcément la bonne solution
Potentiellement un problème de sécurité si l’utilisateur www-data modifie tes scripts cgi dans le dossier cgi-bin.
Il vaudrait peut-être mieux créer un dossier spécifique dans lequel tu stockera ton fichier résultat, et lui accorder les droit en écriture pour www-data.