You are not logged in.
Pages: 1
Topic closed
Bonjour,
Je précise que mon GLPI (v0.90) est hébergé sur le web et je n'ai pas accès au logs http et php...
Lors de l'upload de documents via Gestion->Documents (idem dans les tickets), l'erreur "Répertoire temporaire manquant" est retournée (Dans la barre de progression de l'upload)
J'ai vérifié les autres sujets ici mais n'ai pas trouvé de solution pertinente.
Pour info, les répertoires indiqués dans config_base.php existent avec des droits en écriture pour apache :
// Path for temp storage
if (!defined("GLPI_TMP_DIR")) {
define("GLPI_TMP_DIR",GLPI_ROOT . "/files/_tmp");
}
// Path for rss storage
if (!defined("GLPI_RSS_DIR")) {
define("GLPI_RSS_DIR",GLPI_ROOT . "/files/_rss");
}
// Path for upload storage
if (!defined("GLPI_UPLOAD_DIR")) {
define("GLPI_UPLOAD_DIR",GLPI_ROOT . "/files/_uploads");
}
Par ailleurs, les variables php semblent ok pour l'upload, ci-après les configs php :
file_uploads On
max_file_uploads 20
upload_max_filesize 256M
upload_tmp_dir no value
post_max_size 8M
La config upload_tmp_dir a t-elle une importance pour les uploads glpi ?
Vu que je n'ai pas de logs, j'ai cherché une solution pour afficher des contenus de variables directement dans le formulaire d'upload pour être dans le contexte, ou après les boutons de debug GLPI, mais je suis une brèle en php, je veux bien un peu d'aide la dessus aussi si ça peut me sortir d'affaire.
Une idée pour résoudre mon problème ?
Merci d'avance
Last edited by JDH (2016-02-05 10:34:59)
Offline
Il faudrait les logs exacts de glpi dans /files/_logs (php et sql)
Là votre message indique que le répertoire glpi/files_tmp n'existe pas.
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Il faudrait les logs exacts de glpi dans /files/_logs (php et sql)
L'opération d'upload de documents, que ce soit dans Gestion->Documents ou dans un ticket ne génère aucun log php ou sql dans files/_logs/
Là votre message indique que le répertoire glpi/files_tmp n'existe pas.
C'est /glpi/files/_tmp pour être exact et ce répertoire existe bien avec les droits 775 (j'ai ajouté les droits au groupe pour être certain.
J'ai finalement réussi à afficher la variable php $upload_dir utilisée à l'envoi du fichier :
$upload_dir = /var/www/sites/mondomaine/www/glpi/files/_tmp/ ce qui parait logique pour cet hébergement.
Ce répertoire existe et il a les bons droits
Offline
Up.
Je me demande si ça ne pourrait pas être dû au fait que je (mon instance Apache) ne puisse pas traverser les répertoires /var/www/sites/mondomaine dont le dernier est la racine de mon Hébergement.
Si oui, il faudrait alors indiquer un chemin relatif (j'imagine dans le fichier php qui gère l'upload) plutôt qu'un chemin absolu.
Maintenant, je n'ai aucune idée de la manière d'indiquer ce chemin.
Des avis d'experts Linux et Apache ?
Offline
/files doit être la propriété d'apache en récursif. C'est bien le cas ?
Concernant les variables de stockage, pour pouvez définir un config_path.php dans config où vous indiquez vos path personnels (pour _tmp c'est la variable GLPI_TMP_DIR)
CentOS 6.5 - CentOS 7.x
PHP 5.6 - PHP 7.x - MySQL 5.6 - MariaDB 10.2 + APC + oOPcache
GLPI from 0.72 to dev version
Certifiée ITIL (ITV2F, ITILF, ITILOSA)
Offline
Les droits sur le répertoire files sont corrects.
Concernant les variables de stockage, pour pouvez définir un config_path.php dans config où vous indiquez vos path personnels (pour _tmp c'est la variable GLPI_TMP_DIR)
OK pour ça, mais cela ne semble pas suffire, la variable GLPI_TMP_DIR pointe bien sur le bon répertoire. Je l'ai faite afficher au moment de l'upload et ça donne : /var/www/sites/mondomaine/www/glpi/files/_tmp/
Ce qui est étrange, c'est que PHP peut très bien écrire dans /files : logs, install de plugins, dumps SQL, même dans le répertoire de fichiers TXT/.../... si je le dépose en ftp dans _uploads, puis ajout via Gestion->Documents.
Seul l'upload ne veut rien savoir : Répertoire temporaire manquant.
Offline
Bonjour,
Je suis dans le même cas que JDH impossible d'uploder des fichiers à la création de ticket.
si vous avez eu une solution je suis preneur.
Nous somme passé de GLPI 0.82 -> 0.90 et nous avons eu ce message d'erreur. Nous somme passé ensuite en version 0.90.1 sans changement malheureusement.
A la différence de JDH nous sommes dans un environnement Windows 2012 r2 et GLPI est hébergé sur IIS 8.0
et que je n'ai pas trouvé où éditer la variable $upload_dir.
cordialement
Offline
Bonjour,
J'ai également eu le même problème et je l'ai résolu de la façon suivante :
Création d'un répertoire c:\tmp sur le serveur donné les droits NTFS all users en full access puis dans le fichier php.ini :
; Directory where the temporary files should be placed.
; Defaults to the system default (see sys_get_temp_dir)
sys_temp_dir = "/tmp"
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
; http://php.net/upload-tmp-dir
upload_tmp_dir = "C:\Temp\"
; Default timeout for socket based streams (seconds)
; http://php.net/default-socket-timeout
upload_tmp_dir = "C:\Temp\"
Et maintenant tout fonctionne chez moi
Offline
Bonjour,
Merci Cabli grâce a ta remarque j'ai chercher aussi du côté de php.ini au lieu de glpi
J'ai bien créé un répertoire comme tu l'as mentionné "c:\tmp\" avec tous les droits nécessaires
mais par contre je n'ai modifié qu'une seule ligne
upload_tmp_dir = "C:\Windows\Temp\"
vers
upload_tmp_dir = "C:\tmp\"
; Default timeout for socket based streams (seconds)
; http://php.net/default-socket-timeout
default_socket_timeout = 60
extension_dir = "C:\Program Files (x86)\PHP\5.4.45\ext\"
error_log = "C:\Windows\Temp\php-5.4.45_errors.log"
;upload_tmp_dir = "C:\Windows\Temp\"
upload_tmp_dir = "C:\tmp\"
cgi.force_redirect = 0
cgi.fix_pathinfo = 1
fastcgi.impersonate = 1
fastcgi.logging = 0
(perso j'aime bien commenter la ligne originale pour revenir en arrière rapidement)
Encore merci pour avoir transmis la solution à la communauté GLPI
Last edited by poubelle69 (2016-02-01 14:54:08)
Offline
Merci beaucoup à vous deux. Bien que ce ne soit pas la solution directe pour moi vu que mon GLPI est sur un hébergement mutualisé en ligne, cette piste m'a permis de résoudre mon problème :
Dans mon cas, je ne peux pas modifier le fichier php.ini qui est géré par mon hébergeur; en revanche, on peut ajouter la directive dans le fichier .htaccess qui se trouve à la racine de l'installation GLPI (ici, on est sous Unix) :
php_value upload_tmp_dir /glpi/files/_tmp
Et c'est tout ! Les uploads fonctionnent parfaitement après ce réglage.
Un grand merci pour votre participation et sujet est résolu en ce qui me concerne.
Offline
Pages: 1
Topic closed