Forum Linux.débutant [RESOLU] (WP) Le fichier n'a pas pu être déplacé vers wp-content/uploads/2016/04/

Posté par  . Licence CC By‑SA.
Étiquettes :
0
25
avr.
2016

Ma configuration WP actuelle

  • OS : Ubuntu LTS 12.04
  • Version de WordPress : la dernière à ce jour (téléchargée et installée hier 24/04/2016)
  • Version de PHP/MySQL : PHP : Version: 3.4.10.1deb1 / MySQL : Version du serveur: 5.5.49-0ubuntu0.12.04.1
  • Thème utilisé : Market
  • Extensions en place : aucune pour le moment
  • Nom de l'hebergeur : localhost
  • Adresse du site :

En réalité je ne sais pas trop si ici (spé Linux) je vais trouver de l'aide puisque ma question concerne Wordpress (j'ai aussi posé ma question sur le forum WP support).
Hier j'ai réussi (en parti grâce à ce forum) à installer un serveur local.
J'ai une petite complication : si je veux télécharger des thèmes ou des plug-in pour WP il faut que je passe par le terminal, mais ce n'est pas très grave en soi.

Le plus problématique maintenant c'est ce que me dit l'interface quand j'essaye de télécharger une image (cf sujet). J'ai créé les sous-dossiers via le terminal, j'ai même importé l'image dans le sous-dossier en pensant que de fait il apparaitrait dans la bibliothèque, mais non.

Je suis donc à nouveau perdue. Quelqu'un pourrait me guider, s'il vous plaît ?

  • # Commentaire supprimé

    Posté par  . Évalué à 3.

    Ce commentaire a été supprimé par l’équipe de modération.

    • [^] # Re: Droits

      Posté par  . Évalué à 1.

      J'ai essayé de passer à une version plus recente, mais j'ai un bug depuis pres d'un an dont je n'arrive pas à me défaire qui m'empêche de changer de version d'ubuntu.
      Je vois partout parler de ce chmod, j'avoue qu'il m'effraye (des fois, y'a des trucs comme ça). Il semble un peu être la clef de tout et dangereux façon nitro.
      Je vais néanmoins essayer.

      • [^] # Re: Droits

        Posté par  . Évalué à 1.

        rien à faire, malgré cette commande impossible de modifier ce fichier …

        • [^] # Commentaire supprimé

          Posté par  . Évalué à 2. Dernière modification le 25 avril 2016 à 13:31.

          Ce commentaire a été supprimé par l’équipe de modération.

          • [^] # Re: Droits

            Posté par  . Évalué à 1.

            j'avais trouvé étrange le x mais je m'étais dit qu'il servait peut-être aussi de raccourci plutot que d'écrire rw

            Cela étant, ça ne marche toujours pas :/

            • [^] # Re: Droits

              Posté par  . Évalué à 1.

              je m'auto-reponds. J'ai donné les droits directement au sous-fichier final /var/www/adrv/wp-content/upload/2016/04, et si j'ai toujours le message d'erreur, l'image entre dans la bibliothèque et je peux l'utiliser.
              Donc on va dire que ca marche, mais ca reste bancal.

              • [^] # Re: Droits

                Posté par  (site web personnel) . Évalué à 2.

                C'est sans doute que ton apache est lancé pour l'utilisateur www-data (standard sous debian) alors que tu l'as peut être créé en tant que root.

                /var/www/adrv/wp-content/upload/2016/04
                pour accéder au répertoire upload (et créer des sous-répertoires), ton utilisateur apache (un ps auxww |grep -E "USER|apache|httpd" te le montrera) doit :

                • pouvoir traverser chacun des répertoires intermédiaires = droit x pour chaque arborescence, ce que tu peux voir par ls -ld /var ; ls -ld /var/www ; ls -ld /var/www/adrv/ ; ls -ld /var/www/adrv/wp-content ; ls -ld /var/www/adrv/wp-content/upload/ ; ls -ld /var/www/adrv/wp-content/upload/2016 ; ls -ld /var/www/adrv/wp-content/upload/2016/04
                • pouvoir écrire sous wp-content, upload, 2016 et 04 (là un chown -R www-data:www-data /var/www/adrv/wp-content si ton utilisateur apache est bien www-data, la commande man chown est sans doute un réflexe désormais pour toi pour voir tout ce que cela fait)

                La gestion des droits Unix/Linux est relativement simple, encore faut-il y passer un peu de temps à lire…

                • [^] # Re: Droits

                  Posté par  (site web personnel, Mastodon) . Évalué à 3.

                  Pour avoir touché à du Wordpress il y a peu, j'ai eu le même message d'erreur. Ma cause ? J'ai, par le biais de la directive PHP open_basedir, autorisé Wordpress à écrire uniquement dans ses propres répertoires, éliminant de fait le répertoire /tmp.

                  Dans ce cas, plusieurs possibilités :

                  • autoriser Wordpress à écrire dans /tmp en ajoutant ce répertoire à la directive open_basedir, cela dépend de la manière dont PHP est configuré sur la machine ;
                  • configurer Wordpress pour écrire ailleurs, de ce que j'ai compris cela passe par la directive WP_TEMP_DIR qu'on ajoute dans le fichier wp-config.php (comme ici par exemple).

                  A noter que jeter un œil dans les logs du serveur Web peut aider à vérifier cette hypothèse, moi je m'en suis aperçu car Wordpress criait dans l'error_log Apache quelque chose du genre :

                  | 'PHP message: PHP Warning: file_exists(): open_basedir restriction in effect. File(/tmp/trucmuche) is not within the allowed path(s): (/machin/bidule/chose/foo/bar/) in /machin/bidule/chose/foo/bar/wp-includes/functions.php on line 1337\n', referer: http://exemple.fr/wp-admin/post-new.php

                  • [^] # Re: Droits

                    Posté par  . Évalué à 2.

                    Merci d'avoir donner ces explications complémentaires.
                    Le probleme a été résolu au chargement d'images suivant (autant dire que j'ai fait le plein pendant que ca marchait).

                    Nul doute que toutes ces explications pourront servir à d'autres.

                    Merci encore de votre aide aux uns et aux autres.

                  • [^] # Re: Droits

                    Posté par  (site web personnel) . Évalué à 3.

                    éliminant de fait le répertoire /tmp.

                    encore une PHPerie… clairement laisser écrire une appli web en dehors de /var/www/ est un trou de sécurité béant pouvant faire tomber le serveur : il suffirait de remplir /tmp pour empêcher d'autres applis de fonctionner correctement ; il faudrait dans ce cas un répertoire /var/www/tmp ou /var/www/adrv tmp permettant de confiner les dégâts (et gérer les droits, notamment éviter de l'exposer sur le réseau/Internet).

                    je m'en suis aperçu car Wordpress criait dans l'error_log Apache quelque chose du genre

                    je ne suis pas sûr que Felixia< a trouvé la doc' lui donnant les bonnes pratiques d'administration de son wordpress :D (bon, tant qu'il est en intranet, le wordpress se fera un peu moins vite trouer que directement sur Internet…).

                    • [^] # Re: Droits

                      Posté par  (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 26 avril 2016 à 10:21.

                      encore une PHPerie… clairement laisser écrire une appli web en dehors de /var/www/ est un trou de sécurité béant pouvant faire tomber le serveur : il suffirait de remplir /tmp pour empêcher d'autres applis de fonctionner correctement ; il faudrait dans ce cas un répertoire /var/www/tmp ou /var/www/adrv tmp permettant de confiner les dégâts (et gérer les droits, notamment éviter de l'exposer sur le réseau/Internet).

                      Pour sa défense, Wordpress fait ce qu'il peut avant de se comporter comme une brute : dans wp-includes/functions.php, ligne 1725, il y a une fonction nommée « get_temp_dir() ». Elle essaie d'abord de retourner la valeur de sys_get_temp_dir(), puis la valeur de upload_tmp_dir, ensuite la valeur de WP_CONTENT_DIR avant de s'abandonner à tenter sa chance dans /tmp.

                      D'ailleurs en écrivant ceci, je me rend compte je n'avais pas tenté ma chance en activant upload_tmp_dir (qui doit, bien entendu, être accessible en écriture et, le cas échéant, être déclaré dans open_basedir). Bien entendu, ce répertoire n'est pas accessible via le serveur web.

                      La morale de cette histoire, c'est que confiner une application PHP, ce n'est pas de tout repos et clairement pas paramétré par défaut.

                      • [^] # Re: Droits

                        Posté par  (site web personnel) . Évalué à 2. Dernière modification le 26 avril 2016 à 22:40.

                        La morale de cette histoire, c'est que confiner une application PHP, ce n'est pas de tout repos et clairement pas paramétré par défaut.

                        oui, ce qui m'horripile c'est que l'upstream ne comprend pas l'intérêt d'avoir une conf' par défaut sécurisé (même si elle permet de se simplifier la vie par config'). C'est celui qui souhaite une conf' spécifique qui doit se compliquer la vie, pas l'utilisateur normal qui va le laisser tel quel…

                        Pour les packageurs de distro que je connais, ils ajoutent le patch normal pour sécuriser l'utilisateur, le proposent upstream et laissent tomber, la plupart du temps…

  • # systéme sous linux

    Posté par  . Évalué à -1.

    Si j’étais à ta place je n’hésiterais pas à faire un petit détour sur http://www.alphorm.com/tutoriel/formation-en-ligne-linux-lpic-1-comptia-linuxplus . Comme ça tu pourras mieux maitriser les bases de l’administration système sous linux.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.