Made the barely working web interface
This commit is contained in:
123
tp4.md
123
tp4.md
@@ -508,6 +508,129 @@ Il faut aussi les passer en autorisations d'execution
|
||||
|
||||
Quand on a pu faire ca la même la version dynamique de test fonctionne !!
|
||||
|
||||
## Déploiement d’un mini serveur web embarqué
|
||||
|
||||
### [Q8] : Créez et donnez le contenu du patch permettant de patcher l’arborescence d’origine afin d’obtenir une nouvelle arborescence qui rempli le cachier des charges demandé (ajout nouveau script, modifications pages, config, etc.).
|
||||
|
||||
J'ai créé un repertoire www dans /var et j'ai copié le contenu du repertoire www dans ressources que l'on a de disponible dans le git du cours.
|
||||
|
||||
On peut voir ca depuis la machine
|
||||
|
||||
```
|
||||
/var/www # ls
|
||||
cgi-bin gohome.png index.html upload
|
||||
```
|
||||
|
||||
```
|
||||
/var/www # httpd -h /var/www
|
||||
```
|
||||
|
||||
Et la si on va sur 192.168.144.10 dans mon navigateur on a accès à notre site youpiiiii !
|
||||
|
||||
Ensuite je suis allé dans `www/cgi-bin` pour modifier les différents fichiers qui ont des chemins hard codés en www/... en /var/www/
|
||||
|
||||
il faut le faire dans le fichier upload.cfg et dans index.html également pour que les liens soient corrects
|
||||
|
||||
Maintenant quand on essaie d'upload on a plus une erreur 404 mais une erreur 501 Not implemented. Il faut donc encore trouver le bon endroit ou mettre le fichier binaire upload que on a compilé.
|
||||
|
||||
Ensuite pour faire une nouvelle page on peut aller regarder comment est fait une page classique pour les cpu par exemple
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
UPLOAD_DIR="/www/upload/files"
|
||||
URL_PATH="/upload/files"
|
||||
|
||||
echo "Content-type: text/html"
|
||||
echo
|
||||
echo "<html>"
|
||||
echo "<body>"
|
||||
echo "<h1>CPU information</h1>"
|
||||
echo "The embedded system is based on the following CPU:<pre>"
|
||||
cat /proc/cpuinfo
|
||||
echo "</pre>"
|
||||
echo "<p><a href=\"/\"><img src=\"/gohome.png\" border=\"0\"></a></p>"
|
||||
echo "</body></html>"
|
||||
```
|
||||
|
||||
On peut voir que la seule partie vraiment script c'est le 'cat /proc/cpuinfo' et que donc si on veut faire une page qui permette de lancer notre script on peut tout copier et changer ici.
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
echo "Content-type: text/html"
|
||||
echo
|
||||
echo "<html>"
|
||||
echo "<body>"
|
||||
echo "<h1>System usage and processes</h1>"
|
||||
echo "Informations about processes and sys usage :<pre>"
|
||||
top -n1 -b
|
||||
echo "</pre>"
|
||||
echo "<p><a href=\"/\"><img src=\"/gohome.png\" border=\"0\"></a></p>"
|
||||
echo "</body></html>"
|
||||
```
|
||||
|
||||
Pour plus d'infos à propos de la commande top on peut utiliser
|
||||
|
||||
`top -n1 -b`
|
||||
|
||||
Qui nous donne ce resultat
|
||||
|
||||
```
|
||||
Mem: 11484K used, 235516K free, 0K shrd, 0K buff, 1352K cached
|
||||
CPU: 0.0% usr 9.0% sys 0.0% nic 90.9% idle 0.0% io 0.0% irq 0.0% sirq
|
||||
Load average: 0.01 0.00 0.00 1/35 110
|
||||
PID PPID USER STAT VSZ %VSZ CPU %CPU COMMAND
|
||||
109 46 0 R 1496 0.6 0 5.4 top -n1 -b
|
||||
7 2 0 IW 0 0.0 0 1.8 [kworker/u2:0-nf]
|
||||
39 2 0 IW 0 0.0 0 1.8 [kworker/u2:4-xp]
|
||||
46 1 0 S 1492 0.6 0 0.0 -/bin/sh
|
||||
1 0 0 S 1484 0.6 0 0.0 init
|
||||
....
|
||||
```
|
||||
|
||||
On doit évidemment ajouter les entrées dans la page index.html pour avoir un lien qui pointe vers notre nouveau fichier
|
||||
|
||||
```html
|
||||
<html>
|
||||
<head>
|
||||
<title>Tiny Web Server</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Tiny Web Server</h1>
|
||||
<h3>Available pages</h1>
|
||||
<ul>
|
||||
<li><a href="/cgi-bin/uptime.sh">Uptime</a></li>
|
||||
<li><a href="/cgi-bin/kernel.sh">Kernel info</a></li>
|
||||
<li><a href="/cgi-bin/cpu.sh">CPU info</a></li>
|
||||
<li><a href="/cgi-bin/list_files.sh">Uploaded files</a></li>
|
||||
<li><a href="/cgi-bin/top.sh">Processes</a></li>
|
||||
</ul>
|
||||
<h3>Upload a file</h3>
|
||||
<form action="/var/www/cgi-bin/upload" enctype="multipart/form-data" method=post>
|
||||
<input type=file name="File">
|
||||
<input type=submit value="Upload">
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
Et voila on a une nouvelle page qui nous annonce des trucs super !
|
||||
|
||||
### [Q9] : Quel nouveau script avez-vous ajouté et quel est son contenu ?
|
||||
|
||||
Pour que le service web se lance directement au démarrage, j'ai ajouté un scrip nommé StartHttp.sh dans /etc/init.d
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
|
||||
httpd -h /var/www
|
||||
```
|
||||
|
||||
Très simple mais ca fait le boulot car au redémarrage de la board, le site web est accessible.
|
||||
|
||||
Note: Il faut que le script commence avec un 'S' sinon il n'est pas pris en compte par notre inittab
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user