Héberger votre site à la maison. Et pourquoi pas ?

Cette page va nous servir de "tutoriel pour les nuls" en guise de support d'apprentissage de l'art de monter son propre serveur et par obligation d'apprendre les rudiments de Linux et tout ce qui va avec. Lol !

Partons du principe que nous commençons à zéro ce qui veut dire qu'on n'est pas arrivé. Nous n'avons pas peur d'entreprendre. ;-)
Ce site va se faire tout seul au fur et à mesure de l'apprentissage et les débutants piocheront ici les réponses à leurs propres questionnements. 

En partant du principe que plus on est de fous plus on rigole, qu'ils soient des débutants en recherche d'émotion ou des geeks avisés voulant nous donner un coup de main, ceux qui le désirent entreront avec nous dans la danse.

Nous voilà partis sur le chemin mystérieux de la programmation Linux.

Une version d'Ubuntu étant installée sur une de mes machines il n'a pas été très difficile d'installer les paquets devant faire fonctionner le serveur. La procédure sera donnée ici en temps utile. Voir la rubrique Tutoriel.

Nous travaillerons sur trois axes.

1/ L'apprentissage de Linux
2/ La mise en place d'un serveur maison
3/ Le développement de Drupal

Au fur et à mesure du développement du projet, nous étudierons diverses applications mais chut, il est trop tôt pour en parler.

Si vous vous le sentez bon, n'hésitez pas à intervenir et à faire part de vos suggestions qui seront dans tous les cas bienvenues quelles que soient leur pertinence.

Quand on débarque sur la planète Linux, rien n'est simple car le système est orienté "administrateur" pour ne pas dire "développeur", et les habitués du "clic and drop" seront vite perdu parce que là, il va falloir réfléchir un peu.

Surtout quand on vient de l'univers Windows qui est excellent mais orienté logiciels et il faut absolument chercher à comprendre.

Quelques notions sont absolument indispensables par exemple:

- Monter une partition (ou un périphérique).

http://fr.wikipedia.org/wiki/Point_de_montage

- La gestion des utilisateurs

Il faut savoir que sous Linux, il y a par défaut deux utilisateurs dont "Root", l'administrateur du système qui a touts les droits (même celui de faire des bêtises) et l'utilisateur principal créé à l'installation du système.

Cette notion est très importante car par la suite, quand nous gérerons notre système, nous interviendrons sous l'une ou l'autre casquette selon notre besoin et c'est là que nous pouvons commencer à parler "des droits".

En effet, le système d'exploitation Linux est très puissant et le code est ouvert (on parle "d'open source") de manière à ce que n'importe qui, pour autant qu'il en ait les compétences nécessaires, pour le modifier, l'agrémenter, le parfaire, bref, le développer à sa façon et bien sûr le gérer pour en tirer le meilleur comme bon lui semble.

Sous Windows, les utilisateurs se contenteront de démarrer les logiciels d'application et de régler quelques points pour exploiter au mieux les diverses options mises à disposition et cela au sein d'une interface graphique et tout est fait pour "sécuriser" l'intervenant et l'empêcher de toucher au système si il n'a pas les compétences requises.

Sous Linux, c'est la même chose mais avec en plus, au travers des "lignes de commandes" (on parle aussi de Shell), l'adorable possibilité de faire énormément de choses et nous reviendrons là-dessus.

Cette option native étant particulièrement mise en avant, l'utilisateur se verra octroyer des droits afin qu'il ne puisse pas faire n'importe quoi et surtout pas toucher par mégarde à un élément du système qui pourrait déstabiliser sa machine voire la rendre Kput après une opération hasardeuse.

Le grand principe est que l'utilisateur habituel (propriétaire de la machine) travaille avec des droits d'administrateur tronqués qu'il pourra modifier à loisir en cas de besoin.

Il donnera lui-même des droits plus ou moins élevés à ses partenaires selon leurs compétences, leurs besoins et son bon vouloir.

C'est d'ailleurs sur ce principe que fonctionne le noyau du système Linux.

Il faut savoir que certains fichiers peuvent être lus par tout le monde, par certaines personnes seulement, modifiés ou non, exécutés ou pas que cela soit par les utilisateurs (en général) du système ou par le système lui-même qui un coup pourra faire ceci et et maintenant pas faire cela.

Nous nous heurterons souvent à cet aspect des choses et il est primordial de bien appréhender cette technique sous peine de nous décourager bien vite devant la complexité

Nous vous encourageons (c'est obligatoire) à bien étudier ces principes en lisant les documentations sur les tutoriels existants par exemple enhttp://www.trustonme.net/didactels/144.html

Attention : Le débutant sera vite perdu et nous lui conseillons, quand il ne comprends pas quelque chose, de passer à un autre chapitre plus "clair" pour lui et d' y revenir un peu plus tard quand le besoin impératif se fera sentir.

Ne faite pas comme nous c'est à dire mépriser l'excellente documentation Ubuntu.

Avertissement:

Vous trouverez sur le net une foultitude de tutoriels et de forums tous plus utiles les uns que les autres mais il faut savoir que Linux évoluant sous de multiples contributions (Débian, Ubuntu, Slackware, openSUSE, Fedora, Gentoo, Mandrake, etc...), il y a des petites différences entre elles d'autant plus que certaine sont ancienne et un conseil qui est valable ici n'est pas toujours opportun là.

Préférez rechercher aide et secours au sein de la communauté qui exploite la contribution (le système d'exploitation) que vous aurez choisi sous peine de perdre des heures et des jours à essayer d'apprendre des trucs inexploitables dans votre cas.

- Les droits

Etape 2

La première étape consistait à nous déniaiser par rapport à Linux et "oser" y faire quelque chose d'autre que trembler devant la difficulté de ne pas savoir se l'approprier. Lol !

Le pas a été franchi et la machine en local héberge désormais un serveur et voici la caractéristique de l'ordi qui héberge le système.

Il s'agit tout simplement d'un Netbook hébergeant une version 9.10 (Karmic) d'Ubuntu avec 994, 3 Mio de mémoire, et un processeur Genuire Inter(R) @ 1,60GHz.
Notre espace disque disponible est de 28,7 Gio dont nous utilisons 4,5 Gio pour le moment.

Note: Maintenant une machine P4/20Go/512 ram tournant sous Ubuntu 10.04 LTS et dédiée au projet

Nous sommes connecté en Wifi à une Freebox V5 fonctionnant en dégroupé partiel.

Débit descendant (download)7,2 Mbit/s (à l'heure du test)
Longueur ligne : 1846 mètres
Affaiblissement : 25 dB
DSLAM compatible ADSL2+
Débit ATM : Down 121 53 Kbit/s Up 1022 Kbit/s (en ce moment)

La Wifi est désactivée sur cette machine le temps de la sécurisation de la machine pour éviter de tenter le diable. Lol !

Pour le moment, tout va bien dans le meilleur des mondes et, pour se faire la main, nous allons essayer de faire fonctionner un site basé sur les sources aimablement proposées parhttp://www.legtux.org qui ne sont pas moins que que celles de leur propre système soit un service d'hébergement mutualisé tournant sur un serveur local sous Débian.

Notre objectif premier n'est pas d'implémenter un tel service pour l'exploiter tel quel, mais de le disséquer et de l'examiner sous toutes les coutures parce qu'il y a à l'intérieur des éléments qui nous intéressent.

Cette étude servira de base à notre apprentissage.

La particularité du système.

- Le système crée automatiquement des comptes d'hébergement.
- Webmail, Cron, Service SMS, Upload de fichiers, FTP,
annuaire, tickets de support
- Installation automatique d'outils gestion de contenu (CMS)
- Gestion des domaines et sous/domaines
- Informations serveur en live
- Quelques autres outils de moindre importance.

Nous avons pour le moment copié ces sources sur notre serveur, créé les bases de donnes référentes et sommes en train de chercher à y comprendre quelque chose tout en apprenant les bases de linux ce qui veut dire que nous avons pas mal de boulot.

L'idéal serait que quelques personnes se joignent à ce projet d'étude et de mise en place de sorte qu'au travers d'un jeu de questions/réponses nous ne perdions pas trop de temps à farfouiller dans l'abondante documentation linuxienne à laquelle il faut rajouter les recherches qui comblent l'incompétence question programmation de notre cher couple mysql/php.

...Et de ses nouveaux amis. ;-)

Liens tutos.

http://wiki.auto-hebergement.fr/

Appels système au clavier : les Touches Magiques
Comment configurer son réseau local ?
Comment créer un terminal X ou recycler une vieille machine ? Serveur et client XDMCP
Comment redémarrer le serveur graphique ?
Ligne de commande de base pour le débutant
Installer un serveur de façon rapide
Que faire lorsque le système gèle ?
Récupérer ses données depuis un live-CD
Sauvegarder automatiquement ses bases de données MySQL
http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2

http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2_et_dyndns
http://doc.ubuntu-fr.org/tutoriel/virtualhosts_avec_apache2_et_dyndns
Virtualhosts avec apache2 et dyndns

Pour ceux qui débutent vraiment sous Linux, un petit test sympa. ;-)
Appache

Pour la sécurité :

Je te conseillerais de jeter un coup d'oeil a iptables, fail2ban, denyhosts et aussi à la configuration de ssh surtout l'authentification par un système de clés publique/privé.

La doc d'ubuntu-fr.org est un bon début pour découvrir ces programmes, le web étant rempli de tutoriels en tout genre et il y aura toujours quelqu'un pour te donner un petit coup de main ;)
http://doc.ubuntu-fr.org/serveur#securite

Ligne de commande :

http://guides-info.org/linux/admin/commandes1.php

Plus précis :

http://www.commentcamarche.net/faq/8386-kit-de-survie-linux

L'utilitaire sudo s'utilise en ligne de commande, dans un terminal. Il sert à exécuter, en mode superutilisateur, des commandes ou des applications en console. Pour lancer des applications graphiques avec les privilèges d'administration, il est de mise d'utiliser les pendants graphiques gksudo, pour GNOME, ou kdesudo, pour KDE. Voir en...

Simple comme Ubuntu
Compilation
installation de logiciels & compiler
Auto-hébergement
Installation serveur Ubuntu
Installation et configuration d’un serveur Web (Apache + Php + Mysql)
sudo

Hébergement, serveur, gratuit, Ubuntu, Débutants, programmation, Tutoriel, Apprentissage, Logiciel Linux,

nach oben