Fonction move_uploaded_file

Bonjour tout le monde

Dans un de mes scripts php je me sers de la fonction move_uploaded_file le seul problème c’est que cette fonction n’est pas implémentée sur mon serveur Debian, il n’y aurait pas une petite commande apt-get pour remédier à celà ?

Merci d’avance,
Cordialement,

LuckyNux

move_uploaded_file fait parti de PHP et cette fonction est activée par défaut (pas comme certaines fonctions de la librairie GD de PHP avec Debian).
Montres le message d’erreur que tu as, si ça se trouve c’est simplement le safe_mode d’activé.

Voilà les deux warnings qui apparaissent :

[code]
Warning: move_uploaded_file(upload/P1070006.JPG) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/ftp/virtual/www/upload.php on line 25

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move ‘/tmp/phpOUx5lc’ to ‘upload/P1070006.JPG’ in /home/ftp/virtual/www/upload.php on line 25
Impossible de copier le fichier dans upload/[/code]

Je ne comprend pas vraiment ce qu’il faut que je fasse pour remedier à cela

A mon avis, c’est tout simplement que le user www-data n’a pas les droit sur ton répertoire ftp, dont je suppose que les droit sont associés à un autre utilisateur.

J’ai pas trop compris là…

Ca viendrait de vsftpd ?

des droits associés a ton compte virtuel vsftp.
Moi je regarderais par là.

Voici les droits personnalisiés de l’utilisateur

anon_world_readable_only=NO write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES

Je ne peux pas non plus “chmoder” avec mon FTP, si je veux chmoder je suis obliger de me connecter en SSH et en root !

Ce qui me dérange c’est que ton home pour l’utilisateur vrituel x doit permettre à l’utilisateur www-data de lire et d’exécuter des fichiers. Si tu regardes dans ton dossier ftp, les droits sont ils bons ?

J’y pense comment as tu monté ton site dans les répertoires ftp ? Avec bind ou bien as tu monté une seconde copie de ton site ?

Je comprend pas ce qu’est www-data et ce qu’il faut que je fasse avec ?

J’ai mis anon_umask=022 pour qu’à leur création les fichiers aient les droits 755

Et mon site comment je l’ai monté dans le répertoire ftp ? En me connectant avec FileZilla… Mais je crois que j’ai mal compris la question

L’utilisateur Apache (www-data) n’a pas le droit d’accéder au répertoire /tmp, soit tu modifies ton code PHP en indiquant un autre répertoire pour l’envoi temporaire des fichiers, soit tu ajoutes l’utilisateur www-data au répertoire /tmp ou alors dans ton virtualhost tu spécifies un répertoire /tmp différent (upload_tmp_dir).

ah oui j’y avais pas pensé a celle la :wink: pourtant c’est écrit

Comment ajouter l’utilisateur www-data au répertoire tmp ? Est-ce définitif ? Je veux dire par là, si le serveur redémarre faudra-t-il refaire cela ?

Je sais que le répertoire /tmp est vider à chaque reboot par contre je ne sais plus si les droits sont eux aussi restaurés.

Tu ajoutes l’utilisateur www-data avec la commande chown sur le répertoire /tmp ou tu appliques un chmod 777 sur /tmp (à éviter ^^)

Non.

j’ai fait un

Mais rien n’a changé, toujours la même erreur

Il semblerait que le [b]chmod[/b] par défaut du répertoire [b]/tmp[/b] soit 777, vérifies bien ce dernier.

Il semblerait que le chmod par défaut du répertoire /tmp soit 777, vérifies bien ce dernier.

Voici les propriété du dossier /tmp

Ca ne doit donc pas venir de là

Post la ligne 25 de ton script.


Je l'ai essayé sur les serveur de Free, il marche bien...

Je l’ai essayé sur les serveur de Free, il marche bien…

Euh ton répertoire upload a bien un chmod 777 ?

Oh que j’ai honte de moi :blush: :blush: :blush: :blush: :blush: :blush: Non il n’était pas en chmod 777 :blush: :blush: :blush: :blush:

Je l’avais pourtant fait mais ça ne marche pas si j’essaie en FTP, je suis obligé de “chmoder” en SSH.

Comment puis-je faire pour pouvoir “chmoder” en FTP ? j’utilisie vsftpd, y-a-t’il un réglage à faire ?

En tout cas merci beaucoup !