PluXml.org

Blog ou CMS à l'Xml

Vous n'êtes pas identifié(e).

#1 08/02/2016 14:10:15

michelw
Membre
Inscription : 08/04/2015
Messages : 121

[RESOLU]Gestion répertoires téléchargement par différentes personnes

Bonjour,
Je suis enseignant et je souhaite que mes élèves puissent montrer leur projet sur mon site internet pluxml. Pour cela je pensais leur mettre à disposition un dossier dans lequel ils mettent leur fichier html, css,... par ftp. Mon soucis est que je souhaite que les élèves ne puissent avoir accès qu'à leur dossier et n'accèdent à aucun cas à la totalité de l’arborescence. Avez-vous une idée pour gérer cela?

Dernière modification par michelw (23/02/2016 18:39:07)

Hors ligne

#2 08/02/2016 18:20:00

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 768
Site Web

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Bonjour,

En supposant que ton serveur Web soit Apache et qu tu as les droits pour modifier la config, la directiveUserDir est faite pour cela.
Voir la documentation

Hors ligne

#3 08/02/2016 20:24:55

michelw
Membre
Inscription : 08/04/2015
Messages : 121

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Merci pour cette réponse, j'ai effectivement oublié de préciser que mon serveur est sous nginx. Auriez-vous une idée pour celui-ci? En vous remerciant

Hors ligne

#4 08/02/2016 20:25:20

Pierre
Membre
Lieu : La belle province
Inscription : 22/06/2014
Messages : 1 122

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Et si le site est sur un hébergeur auquel on accède par un panneau de contrôle (par le web), la ségrégation se fera au moment de la création d'un compte FTP.  Dans l'interface pour créer le compte, on offre la possibilité de diriger l'utilisateur vers un répertoire.


#titanic {
    float: none;
    bottom: 0;
}

Hors ligne

#5 08/02/2016 21:20:50

Stéphane
Responsable du projet
Lieu : pas loin de Metz
Inscription : 07/08/2007
Messages : 6 194
Site Web

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Bonjour

Tu peux déjà activer l'option dans Paramètres > Configuration avancée > Utiliser un dossier images et documents différent pour chaque utilisateur


Mes articles et tutoriels pour PluXml
Pluxopolis mon site sur PluXml, mais pas seulement...
Twitter: @pluxopolis

Hors ligne

#6 08/02/2016 22:18:07

Pierre
Membre
Lieu : La belle province
Inscription : 22/06/2014
Messages : 1 122

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Mais ça restreint au répertoire de documents.  S'il s'agit de fichiers CSS et HTML, on ne pourra pas les faire démarrer de ce répertoire et les voir "rendre" le contenu de cette relation.  Ma suggestion de les maintenir en-dehors de l'installation de PluXml était dans ce but. 

Et pourquoi pas créer une page statique pour chaque élève qui appelle sa propre page HTML brute avec son propre CSS appliqué, tous deux tirés du répertoire de documents.  Quel beau concours!

Attendons une réponse éventuelle du demandeur si l'idée se précise.


#titanic {
    float: none;
    bottom: 0;
}

Hors ligne

#7 09/02/2016 03:06:48

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 768
Site Web

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Nginx n'est pas trop évident à configurer.

Pour des pages statiques, il faut utiliser cette règle :

[== Indéfini ==]
location ~ /~(.+)/(.*)$ {
     alias /home/$1/public_html/$2;
}

et créer un dossier public_html dans le dossier de chaque utilisateur.
Pour les scripts PHP, c'est moins évident. Il faut que je cherche sur le net. J'ai fait un essai sur un orangepi sous Debian mais cela ne marche pas.

Hors ligne

#8 09/02/2016 11:00:38

cpalo
Membre
Lieu : Franqueville Eure
Inscription : 13/07/2011
Messages : 855

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Pierre a écrit :

Et si le site est sur un hébergeur auquel on accède par un panneau de contrôle (par le web), la ségrégation se fera au moment de la création d'un compte FTP.  Dans l'interface pour créer le compte, on offre la possibilité de diriger l'utilisateur vers un répertoire.

Bonjour,
Par exemple chez mon hébergeur j'ai la possibilité de créer 10 accès FTP secondaires.

On pourrait donc imaginer créer un dossier travaux-eleves dans le site principal  et dans celui-ci les sous-dossiers élèves ( dans mon cas je serai limité à 10 mais on doit pouvoir sans problème trouver d'autres solutions d'hébergement) auquel on attribue cet accès FTP secondaire.
Et ce sous-dossier élève pourrait même être un pluxml "en entier".

Ce qui nous donnerait la structure suivante:
site-principal (pluxml)
    core
    data
    plugins
    thèmes
    travaux-eleves
        eleve-1
        eleve-2 (par exemple un pluxml)

Cordialement

Dernière modification par cpalo (09/02/2016 11:01:20)

Hors ligne

#9 09/02/2016 15:03:22

michelw
Membre
Inscription : 08/04/2015
Messages : 121

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Bonjour,
L'idée se précise. Effectivement une page statique comme le décrit Pierre m'interesse. Donc une page par projet pour un groupe de 3 à 5 élèves serait la meilleure idée pour que les élèves puissent mettre leur css et html librement. D’où la question comment restreindre l'accès admin à un groupe d'élève pour une page statique?

Dernière modification par michelw (09/02/2016 15:45:52)

Hors ligne

#10 09/02/2016 16:38:52

Pierre
Membre
Lieu : La belle province
Inscription : 22/06/2014
Messages : 1 122

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Je ne suis pas certain si le plugin MyPrivateStatic permet plusieurs mots de passe séparés mais ça serait une piste.


#titanic {
    float: none;
    bottom: 0;
}

Hors ligne

#11 09/02/2016 20:36:41

cpalo
Membre
Lieu : Franqueville Eure
Inscription : 13/07/2011
Messages : 855

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

@michelw

Une petite précision par rapport à ce que tu souhaites.
Ton groupe d'élèves n'aurait besoin que de pouvoir rédiger une page statique ?
Parce que si tu souhaites qu'il puisse mettre leur css il faut qu'ils aient également accès à un dossier où ils transfèrent leur css, à moins de le mettre directement dans leur page statique ( ce qui peut se concevoir si ce n'est pas un css trop long).

Dernière modification par cpalo (09/02/2016 20:39:38)

Hors ligne

#12 09/02/2016 21:54:00

michelw
Membre
Inscription : 08/04/2015
Messages : 121

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Bonsoir,
Effectivement il faudrait avoir un accès à un dossier pour mettre le css. J'ai suivi sur le plugin MyPrivateStatic fil http://forum.pluxml.org/viewtopic.php?id=2923&p=3 cela commence à être compliqué la solution que j'entrevoie est de gérer cela au niveau sftp. Qu'en pensez-vous?

Hors ligne

#13 10/02/2016 09:43:29

cpalo
Membre
Lieu : Franqueville Eure
Inscription : 13/07/2011
Messages : 855

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Bonjour,

Il me semble avoir compris que ce n'était pas que la rédaction d'une page que tu voulais permettre à tes élèves. Alors je pense que l'idée de sous-sites correspond plus à ce que tu veux faire et surtout réglerait facilement le problème de droits d'accès suivant les groupes d'élèves.
Et toi dans ton site, par exemple, tu fais une page statique (travaux d'élèves) où tu peux présenter les travaux d'élèves et indiquer le lien vers ceux-ci.

Cordialement

Hors ligne

#14 10/02/2016 20:17:00

michelw
Membre
Inscription : 08/04/2015
Messages : 121

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Bonsoir,
Effectivement ce n'est pas qu'une page que je souhaite que mes élèves remplissent, il faudrait qu'ils mettent en œuvre du html et du css dans un dossier présentant leur projet. Cela me fait au minimum 5 dossiers qui chacun serait géré par 3 élèves et donc accessibles en lecture écriture par eux. Sachant que ces pages doivent être lisibles pour n'importe quel visiteur du site et que je puisse garder un contrôl total sur leur travaux. Une structure serait effectivement de prévoir 5 sous sites pour chacun des projet plus le mien qui renverrai sur les 5 sites élèves. Cela me semble trop important du moins dans un premier temps. Je vais plutôt me diriger vers une page statique de mon site qui renvoi vers leur dossier en utilisant pour ma page statique http://simplepie.org/ ou plutôt http://moonmoon.org/ qui renvoie au dossier des projets réalisé par les élèves, le tout géré avec http://mysecureshell.sourceforge.net/fr/index.html.
Qu'en pensez-vous?

Hors ligne

#15 11/02/2016 00:48:56

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 768
Site Web

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

@michelw,

Ton serveur tourne sous quel OS ? Windows, Linux, FreeBSD, ...
As-tu des droits administrateur sur ce serveur ?

J'ai un serveur NGINX qui tourne sur Debian. Dans ce cas, il est assez facile de créer pour chaque utilisateur ou élève un dossier public_html dans chaque dossier utilisateur qui héberge une version totalement indépendante de Pluxml pour chacun, ou plus simplement de créer un site purement statique sans cms.

Quelle est la contrainte qui t'oblige à utiliser Nginx ? Ce serveur est un peu plus compliqué à paramétrer que Apache, et il faut corriger légèrement la fonction plxUtils;;getRacine() de Pluxml.

Tu évoques SimplePie et Moonmoon qui sont 2 bibliothèques pour rassembler des flux RSS mais les pages statiques de Pluxml ne sont pas gérées par les flux RSS.
Il faut que tu partages un groupe avec tes éléves pour accéder à leurs travaux, à moins de te connecter en root où tu auras tous les super pouvoirs.

Une installation neuve de Pluxml pèse environ 1.6Mo. Même avec 30 élèves, cela fera seulement 48 Mo. Vu la taille mini des disques durs (500Go). Cela ne pose aucun souci matériel.

Hors ligne

#16 11/02/2016 00:53:41

cpalo
Membre
Lieu : Franqueville Eure
Inscription : 13/07/2011
Messages : 855

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Je ne connais pas. Je suis allé voir par curiosité. Mais ce n'est pas la même démarche : ce sont des agregateurs de flux rss.
Mais pourquoi pas.
Cependant il te faudra quand même créer 5 dossiers différents par ftp et leur donner une adresse pour qu'ils puissent être lisibles par le public ( du genre http:// tondomaine/groupe1 ou http://groupe1.tondomaine). Je ne suis donc pas persuadé que cela soit beaucoup plus simple.
Et cela depend aussi de l'hébergement que tu as.
Mais comme je ne connais pas ces solutions que tu proposes, je passe sans doute à côté de toutes leurs possibilités.
De toute façon il n'y jamais de solution ni parfaite ni unique.

Cordialement

Hors ligne

#17 12/02/2016 12:23:04

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 768
Site Web

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

@michelw,

Voici la config de Nginx qui va bien pour avoir un site web totalement indépendant pour chaque utilisateur de ton serveur :
   

[== Indéfini ==]
location ~ ^/~(?<user>\w+)(?<path>/.*)?$ {
		alias /home/$user/public_html$path;
		autoindex on;
		error_log /var/log/nginx/userdir-$user.log notice;
		rewrite_log on;
		location ~ \.php$ {
			root /home/$user/public_html;
			fastcgi_split_path_info ^/~\w+(/.+?\.php)(.*)$;

			# return 200  $document_root|$fastcgi_script_name|$query_string|$content_type|$fastcgi_script_name|$request_uri|$path_info|$fastcgi_path_info";

			try_files $fastcgi_script_name =404;

			set $path_info $fastcgi_path_info;
			fastcgi_param PATH_INFO $path_info;

			fastcgi_index index.php;
			include fastcgi.conf;

			fastcgi_pass unix:/var/run/php5-fpm.sock;
		}
	}

Ces lignes sont à ajouter dans le bloc server {} du fichier /etc/nginx/sites-availables/default sur une distribution Debian/Jessie ou autre Linux.
Cela remplace la directive UserDir sur un serveur Apache.
Le fichier complet est disponible ici

Par contre, il faut corriger les valeurs $dirname et $racine de la fonction plxUtils:getRacine() dans le fichier core/lib/class.plx.utils.php, vers la ligne 568 :

[== PHP ==]
$dirname = preg_replace('#(?:core/admin/|plugins/)?[\w-]+\.php$#i', '', explode('?', $_SERVER['REQUEST_URI'])[0]);
if (substr($dirname, -1) != '/') {
	$dirname .= '/';
}
$racine = $protocol.$servername.$serverport.$dirname;

Dans le dossier de chaque utilisateur, il faut créer un dossier public_html. Penser à corriger les droits en écriture pour Pluxml.

J'ai fait les tests sur un Bananapi.
Note qu'à côté de Pluxml tu peux créer un site entièrement statique dans un dossier indépendant

Hors ligne

#18 13/02/2016 20:00:32

michelw
Membre
Inscription : 08/04/2015
Messages : 121

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Merci c'est ce que je cherchais.

Hors ligne

#19 15/02/2016 00:01:08

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 768
Site Web

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Tu vas pouvoir profiter des vacances scolaires pour installer Plumxl dans le dossier personnel de chacun de tes élèves de ta classe  lol

Hors ligne

#20 05/03/2016 17:00:47

bazooka07
Membre
Lieu : Quelque part en Rhône-Alpes
Inscription : 06/02/2014
Messages : 768
Site Web

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

@michelw,

Je te propose un nouveau paramétrage de Nginx pour résoudre ton problème sans avoir à modifier Pluxml. J'ai fait un essai avec la version 5.5-beta3 de Pluxml sous Debian/Jessie.

[== Indéfini ==]
# remplace directive userdir de Apache2
location ~ ^/~(?<user>\w+)(?<path>/.*)?$ {
	alias /home/$user/public_html$path;
	autoindex on;
	access_log /var/log/nginx/userdir-access.log;
	error_log /var/log/nginx/userdir-error.log;
	rewrite_log on;
	location ~ \.php$ {
		fastcgi_split_path_info ^/~\w+(/.+?\.php)(.*)$;
		include fastcgi.conf;
		fastcgi_param SCRIPT_NAME /~$user$fastcgi_script_name;
		fastcgi_param DOCUMENT_ROOT /home/~$user/public_html;
		fastcgi_index index.php;
		fastcgi_pass unix:/var/run/php5-fpm.sock;
	}
}

La modif est à faire dans le fichier /etc/nginx/sites-enabled/default
Voici la copie d'écran d'écran qu'on obtient après un appel à phpinfo():
copie d'écran phpinfo()

Dernière modification par bazooka07 (05/03/2016 17:02:13)

Hors ligne

#21 05/03/2016 17:06:14

michelw
Membre
Inscription : 08/04/2015
Messages : 121

Re : [RESOLU]Gestion répertoires téléchargement par différentes personnes

Super merci beaucoup

Hors ligne

Pied de page des forums

A propos Nous soutenir Contact Twitter Google+
Copyright © 2006-2017 PluXml.org, tous droits réservés