Hostabene
ssabine
ssarah
ttoufic
csmtp
ssmtp
nouvelles
manuel
code-php
code-ttoufic
forum
contact-us
Serveur HTTP
Ssarah est un serveur de requête HTTP sur le port 80 comme Apache.

Programmation et Compilation
Programmé en C à l'aide de [gedit] et compilé avec un compilateur GCC sur une redhat 9.

Compatibilité
Compatible posix, testé sur redhat 9 et Debian 3.1.

Version
La version actuelle est la version 0.1c

Organisation
Ssarah doit être déposer dans le folder (/root/tmbss/). Les sites virtuelles doivent être deposer dans le folder (/whome/). Ex : le site hostabene.com correspond au folder (/whome/hostabene.com/) et la page d'accueil correspond à (/whome/hostabene.com/index.php). Les logs et les fichiers de config des différents domaines se trouvent dans (/whomeconf/). Ainsi le domaine hostabene.com dispose d'un repertoire (/whomeconf/hostabene.com/). Les tables [ttoufic] se trouvent dans le folder (/table/), pour hostabene.com, les tables sont dans (/whomeconf/hostabene.com/table/).

En pratique
Ssarah, crée une socket et écoute le port 80. A chaque requête cliente, Ssarah crée un processus child avec fork pour sous-traiter le travail. Le processus child écrit dans un fichier log (/root/tmbss/lolobuffer.txt) la date puis le buffer d'entrée, puis répond au client en respectant les règles suivantes :


1- le fichier demandé n'éxiste pas : Child ferme la connexion et se suicide.

2- Pas de fichier demandé : Child cherche (index.html puis index.php), le premier trouvé sera envoyé puis child ferme la connexion et se suicide. Si aucun des deux n'est présent, Child ferme la connexion et se suicide.

3- le fichier demandé éxiste : Child ouvre le fichier, l'écrit sur la sortie, ferme le fichier puis ferme la connexion et se suicide. Si le fichier demandé est un php, child lit le fichier ligne après ligne et traite les lignes contenant la mention <php> par des fonctions [php] et des fonctions [ttoufic] pour la gestion database. Chaque fonction php est appelée par son nom depuis la ligne, et si cette fonction n'éxiste pas, Child ne traite pas la ligne est passe à la ligne suivante. A la fin du fichier, Child ferme la connexion et se suicide.

4- La vie d'un fork() est limité à 9 secondes, ainsi tout traitement dépassant les 9 secondes sera arrêté à 9 secondes, ceci empêchera les boucles interminables et autres evenements monopolisant ssarah pour lui seul et l'empêchant de repondre correctement aux autres requêtes.

Réflexion
Il s'agit biensur de nanoserveurs php et database ttoufic, integrés au sein des processus fork(). Cette organisation permet d'assurer un service web continue puisque toute anomalie d'execution de script ne depassera pas le fork(), ainsi les capacités php et database ttoufic des autres fork() ne seront pas touchées et continuent à fonctionner de facon normale.

Téléchargement
Dès qu'on passe à une version relativement stable. Prévu pour début 2006.


Nouvelles fonctions
Pour suivre les dernières nouvelles de ssarah c'est par ici.



Copyright © 2005 Dr Mteyrek Mohamad All rights reserved