Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[apache] une solution pour un hébergement partagé ?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
digimag
Guru
Guru


Joined: 14 May 2005
Posts: 451
Location: Toulouse, France

PostPosted: Sat Sep 06, 2008 6:24 pm    Post subject: [apache] une solution pour un hébergement partagé ? Reply with quote

Bonjour,

Suite à mes mésaventures avec mpm-peruser qui semble être très performant malgré son instabilité selon certains, je tente de trouver une solution fiable pour que plusieurs utilisateurs puissent publier leurs documents web sur le même serveur sans aucune interférence.

Les principes :

- chaque utilisateur a un accès SSH
- chaque utilisateur a un dossier spécial pour ses documents web
- le propriétaire des fichiers web est l'utilisateur lui-même
- les permissions ne permettent pas aux autres utilisateurs d'accéder à ses fichiers

Le soucis c'est comment configurer Apache pour que le contenu d'un dossier particulier (ou d'un hôte virtuel, ça m'est égal) soit traîté sous un nom d'utilisateur particulier, et non apache. Je sais que des hébergeurs comme 1&1 ou Media Temple y arrivent, mais je ne comprends pas comment, toutes les solutions que j'ai vues semble être instables, en développement ou abandonnées.

Un peu à part, quelqu'un pourrait m'indiquer quel MPM serait adapté au PHP ?

Merci :)
_________________
Sacha
Back to top
View user's profile Send private message
digimag
Guru
Guru


Joined: 14 May 2005
Posts: 451
Location: Toulouse, France

PostPosted: Tue Nov 11, 2008 12:21 pm    Post subject: Reply with quote

Bonjour,

Je suis toujours à la recherche d'une solution pour créer une "ferme" d'hébergement. D'ailleurs si je n'en trouve vraiment pas je serai ammené à développer un nouveau module Apache et si quelqu'un ayant de l'expérience est intéressé et peut ne serait-ce que m'orienter, je lui serai très reconnaissant.


Reprenons. L'objectif est donc de pouvoir héberger plusieurs sites web, gérés par plusieurs utilisateurs différents.

En ce qui concerne la sécurité, il s'agit de créer une étanchéité parfaite entre les utilisateurs et leurs données. Un utilisateur doit pouvoir faire ce qu'il souhaite avec ses données, mais rien avec ceux des autres, qu'il s'agisse des données de l'espace web ou pas.

En ce qui concerne les fonctionnalités, il s'agit de lever autant de limites que possible. Par exemple, les utilisateurs doivent avoir un accès direct au serveur par SSH. Limiter l'accès au seul FTP comme le font beaucoup n'est donc pas une solution.


Voici comment on peut l'imaginer :


  • Chaque utilisateur a un nom, <username>
  • Chaque utilisateur a un dossier personnel qui contient toutes ses données, /home/<username>
  • /home est une partition séparée (ou un espace de stockage à part), spécialement configurée pour, par exemple, gérer les quotas
  • Chaque utilisateur a un dossier /home/<username>/www dédié à l'espace web. Il fonctionne comme suit :

    • Un utilisateur a un site web qui doit être accessible depuis le nom <www.example.tld>.
    • Pour cela, il crée un enregistrement DNS "www" qui pointe sur l'adresse IP de ntore serveur.
    • Ensuite, il crée un dossier /home/<username>/www/<www.example.tld> et y place tout le contenu de son site web.
    • Une fois les enregistrements DNS propagés, son site devient automatiquement visible sans aucune autre intervention.
    • Il peut alors facilement ajouter autant de sites web qu'il le souhaite de la même manière et ils seront tous automatiquement pris en compte.

  • Tous les hôtes virtuels sont en permance mis à jour en examinant les dossiers /home/*/www/*. Une simple table est constituée indexant tous les noms d'hôtes et les associants aux utilisateurs respectifs. Voici un exemple de structure possible :

    Dossiers trouvés :
    Code:

    /home/jerry/www/mouses.example.net
    /home/jerry/www/www.example.net
    /home/tom/www/cats.example.com
    /home/tom/www/www.example.com


    Table correspondante :
    Code:

    +--------------------+-------+
    | host               | user  |
    +--------------------+-------+
    | www.example.com    | tom   |
    | cats.example.com   | tom   |
    | www.example.net    | jerry |
    | mouses.example.net | jerry |
    +--------------------+-------+

  • Le processus principal d'Apache apparitent à un utilisateur priviligié ayant la capacité de lancer de nouveaux processus sous des noms d'utilisateurs différents. Dès qu'une requête est faite sur le serveur, le champ Host de l'en-tête HTTP est examiné, et une recherche est faite dans la table précédente. Dès qu'une correspondance est trouvée, un nouveau processus Apache est créé sous le nom de l'utilisateur correspondant et il se charge de délivrer la réponse.
  • Le processus ne meurt pas après avoir fourni la réponse. Il reste en mémoire et est réutilisé si une nouvelle requête le sollicite.
  • On peut bien entendu spécifier un espace web à utiliser si le nom d'hôte n'a pas été trouvé sur le serveur.


Ce fonctionnement est largement inspiré du fonctionnement de l'hébergeur Media Temple, mais j'ignore quelle solution ils ont adopté. L'avantage principal est la simplicité d'utilisation qui ne nécessite même pas d'interface d'administration. Il reste un problème à résoudre, c'est lorsque la table comporte un même enregistrement pour deux utilisateurs différents, mais c'est contournable.

Connaissez-vous des solutions permettant d'obtenir quelque chose de semblable à ce fonctionnement ? Histoire de ne pas réinventer la roue - ça serait tellement plus simple :)

J'ai trouvé deux choses intéressantes sur le sujet :

  • mpm-peruser permet de lancer des processus apache sous des noms d'utilisateurs différents. Mais il faut un fichier de configuration Apache avec tous les hôtes virtuels, il est donc difficile de les ajouter à la volée.
  • Apache prévoit la possibilité d'hôtes virtuels dynamiques, mais je ne vois pas comment pourrais-je le combiner avec mpm-peruser.


Merci d'avance ;)
_________________
Sacha
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum