8725 sujets

Développement web côté serveur, CMS

Bonjour,
Actuellement, je gère les mises à jour d'un site "à la main", en modifiant directement des fichiers et en en uploadant via FTP.

Je voudrais rendre les mises à jour plus simples, entre autres raisons pour que d'autres personnes qui travaillent avec moi puissent mettre à jour les fichiers que nous proposons en téléchargement.
Je voudrais faire ça en deux temps :
1) basculement vers une base de données (pas vraiment de problème immédiat)
2) création d'une interface de gestion pour administrer le site

Je suis en train de découvrir comment on envoie des fichiers à un serveur via PHP (j'ai assez peu utilisé les formulaires HTML/PHP jusqu'à présent) et je suis confronté à un petit problème : le serveur définit une taille maxi de fichiers (dans php.ini, d'après ce que j'ai lu), certes, mais comment la connaître dans le cas d'un hébergement ? Pour le moment, le site est chez Free et je n'ai donc pas accès à la configuration du serveur.

D'autre part, j'anticipe un second problème : les fichiers que nous devons placer sur le serveur au fur et à mesure sont un peu volumineux (PDF de 5 à 15 Mo pour le moment). Je soupçonne une taille pareille d'être beaucoup trop grosse pour un envoi via PHP. Y a-t-il d'autres solutions pour envoyer les fichiers au serveur en utilisant une interface web (sans passer par un client FTP), notamment pour la mise à jour de la base de données ?
Bonjour.
Pour connaître les fonctionnalités php de l'hébergeur (free itou), vous pouvez créer un petit script comme suit:

<?php
       phpinfo();
?>

et nommez le phpinfo.php (ou test.php, ou autre.php...)
Transférez-le à la racine de votre site, et tapez l'adresse suivante dans un navigateur:
http://www.monsite.com/phpinfo.php

en remplaçant "www.monsite.com" par le nom de votre site.

Vous devriez voir s'afficher un tableau récapitulatif de la configuration.
La variable qui vous intéresse est:

upload_max_filesize

indiquant généralement 2M pour 2 mega-octets et fixant la taille maximale d'un fichier en upload (hors ftp)

Pour la suite, langue aux chats...
Modifié par GeorgesM (17 Nov 2006 - 10:05)
Merci pour l'info.

Bon, ça m'arrange pas : ça confirme que c'est trop limité (2 Mo) pour uploader mes fichiers. Smiley ohwell
Les fichiers que tu mets à jour à la main et que tu upload par FTP, ce ne sont que des PDF ? J'aurai pensé tout betement alors à générer les fichiers en PDF sur le serveur via une source, la base de données entre autre.
Ce sont des PDF, mais je ne peux pas les générer à la volée : nous "éditons" un fanzine dont nous proposons une version PDF (entièrement graphique, composée à 100 % d'images donc assez lourd en taille de fichier et impensable à gérer autrement qu'en sortie du logiciel de PAO) via un site web pour les gens qui ne peuvent pas se procurer la version papier.
Pour le moment, j'uploade les PDF sur le site en FTP et je cherche un moyen de rendre ça plus accessible pour mes autres collaborateurs.

Si ce n'est pas possible via un formulaire, peut-être existe-t-il des solutions pour faire le transfert FTP au sein d'une interface web, sans client à part (via un module Java, Flash, etc. qui pourrait interagir avec PHP) ?

EDIT : je suis en train de chercher s'il y a moyen de faire un transfert FTP via PHP et je trouve à boire et à manger. Est-ce que c'est possible d'utiliser ce protocole avec PHP ?

EDIT 2 : je découvre qu'il existe des fonctions FTP pour PHP donc ce que je veux faire devrait être techniquement possible. je vais me pencher là-dessus.
Modifié par terzag (17 Nov 2006 - 10:39)
Déjà si tu veux pouvoir uploader un fichier de 15Mo il faut régler la directive d'apache a propos des upload par POST.
Il suffit de faire un fichier .htaccess (sans nom de fichier) et d'y inscrire :

php_value upload_max_filesize 10 485 760
php_value post_max_size 10 485 760


La première ligne définie une autre valeur pour le upload_max_filesize du php.ini
La seconde définie la valeur maximale a accepter en POST.
Il faut indiquer ces valeurs en octets je crois, mais je pense (je ne suis pas sur) que l'on peut le faire directement en Mo (10M).
Ici par exemple j'ai mis une limite de 10Mo.

Ensuite il faut l'enregistrer a la racine du site (après peut-être que free n'accepte pas les fichier .htaccess ou utilise d'autre fichiers, a toi de te renseigner je n'ai jamais touché a free).

Enfin il ne faut pas oublier de gérer le temps d'upload en PHP, si tu veux uploader un gros fichier il est probable que le script s'arrête (le temps d'exécute maximum par défaut étant de 30 secondes). memory_limit permet aussi de changer la taille de fichier maximale que PHP peut gérer.

<?php
ini_set('memory_limit', 8000000); // en octets
set_time_limit(600); // en secondes
?>


A la fin de l'exécution du script les valeurs par défaut remplacent celle la.
Modifié par Neovov (17 Nov 2006 - 10:42)
Neovov a écrit :
Déjà si tu veux pouvoir uploader un fichier de 15Mo il faut régler la directive d'apache a propos des upload par POST. Il suffit de faire un fichier .htaccess (sans nom de fichier) et d'y inscrire :

php_value upload_max_filesize 10 485 760
php_value post_max_size 10 485 760


Et de l'enregistrer a la racine du site (après peut-être que free n'accepte pas les fichier .htaccess ou utilise d'autre fichiers).


Mais est-ce que c'est possible d'outrepasser ce genre de limites fixées chez l'hébergeur ?
Free a justement mis récemment en place pas mal de limitations PHP sur les gros fichiers (impossible de récupérer des infos sur un fichier de taille supérieure à 5 Mo) ; ça m'étonne qu'on puisse forcer des paramètres qu'un serveur met en place lorsqu'on est simple utilisateur.
Modifié par terzag (17 Nov 2006 - 10:42)
En théorie, il n'est pas très difficile de faire une petite interface ftp avec php. Néanmoins, free (toujours les mêmes) ne le permet pas.

Mais, mais, mais...

Si vous avez un intranet avec php dessus, alors, celà redevient possible. Dans ce cas, il faut dénicher le bon script... et placer le bon lien sur les postes de vos collègues.

Sinon, il faut bricoler (ou faire bricoler) quelque chose en python.

Mais ça reste un petit peu technique...
a écrit :
Mais est-ce que c'est possible d'outrepasser ce genre de limites fixées chez l'hébergeur ?


Le code que je viens de te donner est sensé outrepasser les limites.

a écrit :
Free a justement mis récemment en place pas mal de limitations PHP sur les gros fichiers.


Je n'ai jamais essayé free donc je ne peux pas trop t'aider la dessus, mais ça ne coûte rien d'essayer.

a écrit :
ça m'étonne qu'on puisse forcer des paramètres qu'un serveur met en place lorsqu'on est simple utilisateur.


Les limitations sont justes en vigueur pour tous les utilisateurs. Les serveurs de free sont mutualisés, il y a donc plusieurs utilisateurs dessus, si il n'y avait pas de limite tout le monde enverrai de gros fichiers et cela saturerai le serveur.
Mais normalement il reste toujours possible d'outrepasser la limite (je l'ai fait sur un serveur qui avait une limitation).

Au pire tu peux changer d'hébergeur Smiley murf .
GeorgesM a écrit :
En théorie, il n'est pas très difficile de faire une petite interface ftp avec php. Néanmoins, free (toujours les mêmes) ne le permet pas.


Ah. Mon projet retombe à l'eau. Smiley ohwell

a écrit :
Mais, mais, mais...

Si vous avez un intranet avec php dessus, alors, celà redevient possible. Dans ce cas, il faut dénicher le bon script... et placer le bon lien sur les postes de vos collègues.


Ouh là, rien de tout ça ! Smiley cligne
Nous n'avons aucune organisation formelle. le but est surtout que les autres (qui n'ont aucune formation technique et n'ont sans doute pas la moindre idée de ce que "FTP" signifie ni qu'il existe plusieurs protocoles de transfert de données sur internet) puissent mettre à jour le site (dont l'upload des PDF) depuis leur connexion internet perso sans forcément reposer sur moi (et aussi pour me simplifier la vie : si je peux tout gérer dans une même interface...).

a écrit :
Sinon, il faut bricoler (ou faire bricoler) quelque chose en python.
Mais ça reste un petit peu technique...


Si tu as des infos là-dessus, je suis preneur (je prends tout, même si je n'ai pas forcément les capacités pour utiliser tout de suite).

Neovov a écrit :
Au pire tu peux changer d'hébergeur Smiley murf .


Pas vraiment : l'intérêt de Free c'est qu'ils sont gratuits. Nous avons un budget extrêmement bas et pas forcément les moyens immédiats de payer un hébergement (même si j'y pense de temps en temps). En fait, si je n'avais pas eu la possibilité d'utiliser un de mes comptes chez Free, nous n'aurions même pas de site web. Smiley cligne
Modifié par terzag (17 Nov 2006 - 11:01)
free est gratuit, soit, mais les hébergeurs ne sont pas cher du tout... Il y a des abonnements qui commencent à 15€ (par an), et avec 40€ (par an), on a déjà quelque chose... avec nom de domaine et tout et tout...
Ne serait-ce que l'email illimité, ça peut rendre des services, pour une structure comme la votre...

Mais, j'y pense : en suivant votre lien www, on débouche sur votre carte de visite. Le php de votre hébergeur pourrait faire l'affaire...
Modifié par GeorgesM (17 Nov 2006 - 11:38)
GeorgesM a écrit :
free est gratuit, soit, mais les hébergeurs ne sont pas cher du tout... Il y a des abonnements qui commencent à 15€ (par an), et avec 40€ (par an), on a déjà quelque chose... avec nom de domaine et tout et tout...

Certes, mais notre budget est d'environ 0 € (au-delà, ce serait de ma poche). Le site, c'est un peu un bonus parce qu'on avait la possibilité de le mettre en place avec un de mes comptes perso.

a écrit :
Ne serait-ce que l'email illimité, ça peut rendre des services, pour une structure comme la votre...

Mais nous n'avons pas vraiment de structure, en fait.

a écrit :
Mais, j'y pense : en suivant votre lien www, on débouche sur votre carte de visite. Le php de votre hébergeur pourrait faire l'affaire...

J'y ai pensé mais je voudrais éviter d'héberger ça sur mon site pro. Ne serait-ce que si je dois déléguer le boulot d'administration, ça ne m'arrange pas vraiment que quelqu'un d'autre manipule des données qui sont hébergées sur mon site.
Modifié par terzag (17 Nov 2006 - 11:44)
De toute façon, j'ai dis limite une bêtise avec le ftp déporté.

Votre problème n'est pas simple...

Demandez leur de passer à linux. Ftp est intégré et une simple commande ferait l'affaire.
GeorgesM a écrit :
Votre problème n'est pas simple...

Au contraire, il est très simple :
Est-ce que ce que je veux faire est possible ? oui -> je mets ça en place / non -> je continue à fonctionner à l'ancienne et on se repenchera dessus le jour où on prend un vrai hébergement. Smiley biggrin

Il n'y a pas d'obligation de changer la méthode de mises à jour du site, c'est juste que si j'en ai la possibilité ça peut être intéressant. Dans le cas contraire, ce n'est absolument pas grave.
Modifié par terzag (17 Nov 2006 - 11:57)
Je profite de ce post pour faire part de mon souci : j'ai un formulaire HTML d'upload + PHP côté serveur.
Dans le formulaire, j'ai déclaré un champ de type hidden permettant de fixer la taille max possible à 6Go.
Côté PHP 4.4.0 (dans php.ini), j'ai modifié :
- max_input_time = 240
- post_max_size = 6000M
- upload_tmp_dir = /tmp
- upload_max_filesize = 6000M
et redémarré le serveur Apache2.

Le serveur est sous distrib SuSE 9.3.

Pour des fichiers de 1.4Go environ, aucun souci, par contre, il ne se passe rien (et je ne sais pas trop où regarder non plus) pour des fichiers supérieurs à 2Go.
Est-ce que quelqu'un a une petite idée ?

Merci.