[ english | italian ]
SHTTPD è un web server molto leggero. Gli obiettivi principali sono la facilita' di uso e la posibilita' di embed. Ideale per uso personale, demo di software web-based (come PHP, Perl ecc), veloce condivisione di file. Degli accorgimenti sono stati presi per rendere il codice sicuro. SHTTPD è sotto i termini della licenza MIT. Non leggere piu'! Scaricalo e provalo!
Compilare e' facile. Tutto il sorgente è in un file .c. Nessun file di configurazione e nessun makefile sono necessari.
*BSD, MacOSX | cc -o shttpd shttpd.c |
Linux | cc -o shttpd shttpd.c -ldl |
Windows | cl shttpd.c (MS VC) |
QNX | cc -o shttpd shttpd.c -lsocket |
Solaris | cc -o shttpd shttpd.c -lsocket -lnsl |
-DNO_GUI |
Disabilita il supporto per il GUI in Windows |
-DNO_CGI |
Disabilita il supporto CGI. Rimuove attorno ai 4K di codice |
-DIO_MAX=16384 |
Grandezza HTTP massima richiesta (default impostato su 32K) |
-DNO_SOCKLEN_T |
Must be used on platforms where socklen_t type is not defined. Few to name are Windows, and Darwin prior to 7.0....Deve essere usato sulle piattaforme in cui il tipo del socklen_t non è definito. Pochi al nome sono Windows e Darwin prima di 7.0 |
-DCONFIG=\"/etc/shttpd.conf\" |
Percorso del file Config (di default è "shttpd.conf") |
Sotto WIndows, tutto ciò che devi fare è eseguire shttpd.exe
- nessuna installazione la configurazione però è
richiesta. SHTTPD creerà un icona nel vassoio di sistema (system
tray), da cui puoi anche fermare SHTTPD o cambiare qualsiasi opzione.
Se tu pensi di usare CGI - per esempio, perl, PHP, python o altri - una
buona idea sarebbe quella di collegare il percorso dell'interprete alla
variabile di ambiente del sistema (il PATH). Per esempio, se PHP
è installato su C:\php, aggiungi questo al Path, e allora potete
usare
#!php-cginel vostro script PHP.
Ci sono due modi per settare i parametri per SHTTPD: attraverso la linea di comando o tramite il file config. Solitamente, l'unica cosa che bisogna settare è il percorso della cartella radice WWW (WWW root directory). Se non specificata, la cartella in cui SHTTPD è lanciato è usata come WWW root. Cosi' fai un
% shttpd -d /var/www
quando lanci SHTTPD dalla linea di comando, o usi il file shttpd.conf
document_root C:\wwwroote allora lancia SHTTPD. Tutte le opzioni di configurazione e il corrispettivi switch per la linea di comando sono descritti nel SHTTPD manual page
Due file sono richiesti per fare questo: shttpd.c e
shttpd.h (file header contenente le API embedded). Entrambi posso essere trovati nel source package (pacchetto sorgenti). shttpd.c deve essere compilato insieme all'applicazione, con il flag -DEMBEDDED
settato:
% cc myprogram.c shttpd.c -DEMBEDDED
Il source package contiene diversi esempi:
arm-elf-gcc -o shttpd shttpd.c trio.c triostr.cÈ stato segnalato che altri piccoli webservers non funzionano ugualmente una volta compilati contro uClibc per ARM. le difficoltà di sscanf() potrebbero contribuire a richiamare quel problema.
Can't create TCP/IP socket (10106)Lo stesso errore l'ho ricevuto eseguendo uno script PHP simile:
mysql_connect(): Can't create TCP/IP socket (10106)Dopo ore di debugging ho realizzato che il server web (in questo caso SHTTPD) deve passare la variabile d'ambiente SYSTEMROOT al processo CGI figlio, a meno che il processo figlio non possa fare operazioni sul socket. I suppongo che questa è un altra divertente caratteristica da Microsoft.
Copyright © di Sergey Lyubka (shttpd-general at lists dot sourceforge dot net). Ritieniti libero di mandarmi una lettera se hai qualsiasi domanda! Inoltre, potete mantenermi felice riducendo la mia lista dei desideri dei libri.
Tradotto da SuM90 (sum90 AT libero DOT it) e rivisitato da klyvya