# [TIP] Webfsd - Il web server piccolo piccolo

## mriya3

Avete bisogno di un server web piccolo, leggero e facilissimo da utilizzare?

La soluzione si chiama webfsd (webfs nel portage)

Innanzitutto installiamolo:

```
emerge webfs
```

Poi da shell (anche da utente non root!) lanciamo WebFsd:

```
webfsd [opzioni]
```

E le opzioni disponibili sono:

-h     Visualizza l'aiuto

-d     Abilità la modalità debug

-s     Scrive un log degli errori in syslog. Se mettete due volte -s si aumenterà il dettaglio dei log.

-t secondi  Timeout della rete

-c n  Numero massimo di connessioni per thread

-a n  Dimensione della cache dei contenuti delle directory. 

-y n  Numero di threads da lanciare

-p porta  Porta da utilizzare (default 8000)

-r directory Directory da utilizzare come root del server

-R directory Imposta la directory da usare e ci fa un chroot 

-f file Usa il file specificato come indice per le directory (p.es. index.html)

-n hostname Nome dell'host (usato per le redirezioni)

-i ip  Specifica l'indirizzo IP

-l logfile Specifica il file di log

-L logfile File di log che viene aggiornato ad ogni riga aggiunta (utile per un tail -f)

-m file Legge i tipi MIME dal file specificato (default /etc/mime.types)

-u user Imposta l'uid a user (possibile solo se lanciato da root)

-g gruppo Imposta gid a gruppo (solo per root)

-F  Non demonizzare il server (rimanendo in foreground un CTRL+C è sufficiente per killare il server)

-b utente:password Imposta nome utente e password per l'accesso (solo un nome/password possibile)

-v  Abilita i virtual hosts, per esempio se lancio il server con 

```
webfsd -v -r /home/utente/publichtml
```

se cerco di accedere a http://ftp.server.net:8000/path/file, otterò	      /home/utente/publichtml/ftp.server.net/path/file

Buon utilizzo! 

 :Wink: 

----------

## fedeliallalinea

Grazie per il fantastico tip che mi e' servito stasera  :Wink: 

----------

## Dhaki

Bello bello penso proprio che mi servirà in futuro   :Very Happy: 

----------

## fedeliallalinea

Aggiunto ai post utilissimi sezione tips

----------

## rota

da paura domani installo gentoo su un ibm ...e lo provvo subbito....

----------

## =DvD=

Scusate la mia ignoranza, ma cosa ha di così bello?

(il tono non è critico, è una domanda!!)

----------

## fedeliallalinea

 *=DvD= wrote:*   

> Scusate la mia ignoranza, ma cosa ha di così bello?

 

Che se voglio condividere file ma non avere un web server vero uso questo. Piccolo veloce da configurare.

----------

## =DvD=

 *fedeliallalinea wrote:*   

> Che se voglio condividere file ma non avere un web server vero uso questo. Piccolo veloce da configurare.

 

Capito.   :Embarassed: 

----------

## gaffiere

poi vuoi mettere? il tutto in 49 Kb   :Cool: 

see ya

----------

## randomaze

 *gaffiere wrote:*   

> poi vuoi mettere? il tutto in 49 Kb  
> 
> see ya

 

Decisamente piú piccolo anche di DAD-IT... che tuttavia offre come plus l'essere multipiattaforma, un linguaggio pe fare pagine dinamiche (lua) e un database (sqlite)

----------

## fedeliallalinea

 *gaffiere wrote:*   

> poi vuoi mettere? il tutto in 49 Kb  

 

Spiego il perche' l'ho avuto bisogno. Sto installando una gentoo sul un 133 solo che il livecd di gentoo non parte troppa poca ram. Allora cd debian passo alla console solo che mi accorgo che non ha il bunzip questo cd. Scarico sul mio notebook lo stage bunzippo gzippo e faccio partire il server e wgetto lo stage sul pc dove sto installando (chiaramente ssh inesistente sul cd di debian)

----------

## Dhaki

 *Dhaki wrote:*   

> Bello bello penso proprio che mi servirà in futuro  

 

Infatti l'ho appena installato e lo sto usando come alternativa allo scambio file in msn   :Very Happy: 

----------

## hardskinone

Segnalo anche lighttp come alternativa ad apache (php o php-cgi, virtual hosts, chroot, ha quasi tutto).

----------

## power83

ma xke' siete contro apache?

che ha che nn v piace?

va meglio la 2 o l'1.3?

esiste in gentoo un how to x apache?

----------

## unz

lo emergi e quando sta per finire guardi bene le info che ti da ... basta ed avanza per farlo funzionare ... apache2 va benissimo

----------

## .:deadhead:.

 *power83 wrote:*   

> ma xke' siete contro apache?
> 
> che ha che nn v piace?

 Nessuno ce l'ha contro nessun'altro  :Laughing: 

Apache è un gran server, ma tu l'avresti usato, se fossi stato nella situazione di fedeli? Meglio usar il tool più adato alla situazione da risolvere: apache è grosso e complesso. webfsd e lighttpd invece sono veloci da installare, intuitivi nella configurazione e non sono affatto esosi di risorse...

Contribuisco anche io con l'ultimo light webserver non ancora citato: cherokee !

----------

## lavish

Olà  :Wink: 

Ero un pò nel dubbio se riesumere questo thread o o iniziarne uno nuovo, nel dubbio continuo qui, al massimo i MOD mi splitteranno  :Razz:  :Razz:  :Razz: 

Dunque... non avendo una macchina che posso dedicare esclusivamente come server e essendo costretto quindi a far svolgere al mio desktop mansioni serveristiche (ftp/http) e non necessitando di php, ho deciso di mettere webfsd.

Uso questo piccolo serverino da un bel pò con moltissima soddisfazione, al punto da hackarmelo per fargli includere un css nella generazione delle pagine html che visualizzano il contenuto delle dirs...

Ora... visto che sono perverso, ho voluto provare il supporto CGI

 *man webfsd / sito di webfsd wrote:*   

> 
> 
> Recent versions also got limited CGI support (GET requests only) and optional SSL support.
> 
> 

 

Penso ... bene no? Tanto per me dovrebbe bastare e avanzare....

Mi leggo il man :

 *man webfsd wrote:*   

> 
> 
>        -x path
> 
>               Use  >path< as CGI directory.  >path< is interpreted relative to the document root.  Note that
> ...

 

Quindi edito /etc/conf.d/webfs in questo modo:

```

# Configuration for webfsd init script

WEBFS_PORT=80

WEBFS_DOCROOT=/var/www/localhost/htdocs

WEBFS_INDEX=index.html

WEBFS_LOG=/var/log/webfsd.log

# set server name

WEBFS_SERVNAME="Darkstar"

# uncomment to chroot to specified dir

WEBFS_CHROOT="/mnt/web/" 

# max allowed connections (defaults to 32)

#WEBFS_MAXCONN=50

# uncomment to enable directory listings

WEBFS_DIR_LIST=true

# uncomment to enable SSL (you'll need to add -C <cert> -P <pass> to WEBFS_OPTS)

#WEBFS_SSL=true

# uncomment to enable ipv6

WEBFS_IPV6=true

# Add any extra options here. See webfsd for more information.

WEBFS_OPTS="-x ./cgi-bin/"
```

Notare che ho provato tutte le combinazioni possibili tipo: "cgi-bin ./cgi-bin cgi-bin/ /cgi-bin /cgi-bin/ ....." , ma niente... se metto degli scripts in quella dir e li rendo eseguibili, il browser mi mostra il contenuto, nient'altro...

Lo script di prova è stato questo:

```

darkstar web # cat cgi-bin/script 

#!/bin/sh

echo -ne "Content-type: text/html\n\n<html><body>$QUERY_STRING</body></html>";

```

I permessi nella dir sono:

```

darkstar web # ls -la cgi-bin/

total 25

drwxr-xr-x  2 root root    96 Apr 11 23:18 .

drwxr-xr-x  6 root root   632 Apr 12 09:07 ..

-rwxr-xr-x  1 root root    89 Apr 11 23:12 script

-rwxr-xr-x  1 root root 20480 Apr 11 23:18 uname

```

Scusate il post enorme, ma volevo essere chiaro... grazie a tutti  :Wink: 

----------

## randomaze

 *lavish wrote:*   

> Ero un pò nel dubbio se riesumere questo thread o o iniziarne uno nuovo, nel dubbio continuo qui, al massimo i MOD mi splitteranno 

 

Continua pure qui... fino a che non diventa talmente usato da generare thread da 10 pagine penso che sia meglio che tutti i commenti, i problemi e i tip striano raggruppati  :Wink: 

Per il tuo problema, hai provato a dare un estensione .cgi o simili ai files?

----------

## lavish

 *randomaze wrote:*   

> Per il tuo problema, hai provato a dare un estensione .cgi o simili ai files?

 

ho provato... ma non cambia nulla.. è la prima volta che provo a far qualcosa del genere... vi sembra corretto lo script?

----------

## lavish

UP

Non ho trovato nulla in google e la cosa mi sembra strana... possibile che non esista nessuno al mondo che abbia mai provato una cosa del genere? Almeno il programmatore l'avrà testato il supporto, no?  :Laughing: 

----------

## lavish

Mi sa che questo è l'ultimo UP che faccio... .diciamo che poi, andrei oltre i limiti della decenza (cosa che non mi sfagiola molto)... ieri ero tentato da un 

```
emerge apache
```

 ma non mi sembrava giusto nei confronti del nostro povero webserverino... non trovate?

 :Wink: 

----------

## hardskinone

Uppo questo 3d perchè ho appena trovato [url=http://nanoweb.si.kz/]questo[url] webserver implementato in PHP (!). In portage non c´è ancora un ebuild (nemmeo su bugzilla) visto che io $scusa_banale_random non posso fare ebuild qualcuno è così gentile?

Nel frattempo provo a compilare a mano manina.

----------

## lavish

 *hardskinone wrote:*   

> Uppo questo 3d perchè ho appena trovato [url=http://nanoweb.si.kz/]questo[url] webserver implementato in PHP (!). In portage non c´è ancora un ebuild (nemmeo su bugzilla) visto che io $scusa_banale_random non posso fare ebuild qualcuno è così gentile?
> 
> Nel frattempo provo a compilare a mano manina.

 

Mi sembra OT in questo thread... qui si parla di webfsd. 

Comunque alla fine ho capito qual'era un problema. Un bug sull'implementazione del chroot.. ho risolto e patchato con un amico (a cui devo gran parte del lavoro) e la patch è stata mandata allo svilupatore

Ciau!

[EDIT] curiosità, come fai a compilarlo se è scritto in php?  :Razz: 

----------

## Flonaldo

se cerco di accedere a http://ftp.server.net:8000/path/file, otterò /home/utente/publichtml/ftp.server.net/path/file 

Si ma come? ho eseguito tutto ma non mi va mica...forse faccio qualche cappella!

----------

## lavish

 *Flonaldo wrote:*   

> se cerco di accedere a http://ftp.server.net:8000/path/file, otterò /home/utente/publichtml/ftp.server.net/path/file 
> 
> Si ma come? ho eseguito tutto ma non mi va mica...forse faccio qualche cappella!

 

Ma non puoi mica fare così  :Shocked:   :Confused:   (magari si potesse  :Laughing:  )

Ponendo il caso che ftp.server.net sia la tua webroot, l'indirizzo a cui accedere a path/file sarà http://<tuo_ip>/path/file (ovviamente anche http://localhost/path/file e i redirect DNS). Riguardo alla porta, sicuro che si tratti della 8000 e non della 80?

Ciao

----------

## gutter

 *lavish wrote:*   

> 
> 
> Ma non puoi mica fare così    (magari si potesse  )
> 
> 

 

 :Laughing:   :Laughing:   :Laughing: 

----------

## hardskinone

 *lavish wrote:*   

> 
> 
> [EDIT] curiosità, come fai a compilarlo se è scritto in php? 

 

/me esempio di cosa succede a scrivere senza pensare.

----------

## Kernel78

 *lavish wrote:*   

>  *Flonaldo wrote:*   se cerco di accedere a http://ftp.server.net:8000/path/file, otterò /home/utente/publichtml/ftp.server.net/path/file 
> 
> Si ma come? ho eseguito tutto ma non mi va mica...forse faccio qualche cappella! 
> 
> Ma non puoi mica fare così    (magari si potesse  )

 

si che si può, basta lanciare 

```
webfsd -v -r /home/utente/publichtml
```

 *Quote:*   

> 
> 
> Riguardo alla porta, sicuro che si tratti della 8000 e non della 80?
> 
> 

 

Di default è la 8000

----------

## Sephirot

scusate quando dò

```
iride root # webfsd -v -r /home/utente_pincopallino/publichtml

bind: Address already in use

```

qualcuno può illuminarmi?

----------

## xchris

c'e' gia' un server che "binda" su quella porta..

----------

## Ghostraider

Ciao ho appena scoperto questo post...questo pacchetto mi servirebbe tantissimo...se funzionasse...  :Crying or Very sad: 

Ho emerso il pacchetto e settato la  "document root", però non ho nessun file di configurazione in /etc/conf.d/ ...

la cosa è normale, cioè lo devo scrivere da zero, oppure c'è qualcosa che non va ?

----------

## .:deadhead:.

i paametri venono passati all'avvio, dai uno sguardo alla man page o dai 

```
nomeprogramma --help
```

----------

## Ghostraider

Ciao, si lo avevo già lanciato l'help, ma non mi è stato molto utile...non mi parla di file di configurazione...

Aspetta, intendi che non c'è file di conf, ovvero configuro il tutto tramite gli argomenti a linea di comando ?

----------

## Kernel78

Non so se ti può interessare il mio parere ma anche io, quando cercavo un web server minimale, sono stato attratto da questo post ma alla fine mi sono trovato molto meglio con lighttpd.

Prova a considerarlo.

----------

## Ghostraider

 *Kernel78 wrote:*   

> Non so se ti può interessare il mio parere ma anche io, quando cercavo un web server minimale, sono stato attratto da questo post ma alla fine mi sono trovato molto meglio con lighttpd.
> 
> Prova a considerarlo.

 

Ottimo grazie lo provo subito...per caso sai se supporta anche PHP ?

----------

## Kernel78

Supporta PHP  :Wink: 

Per i dettegli guarda qui.

----------

## Dr.Dran

Come al solito arrivo lunghissimo in questa discussione... se avete esigenze estreme e volete un server che gestisca i CGI in perl o shell dalle caratteristiche veramente minimali c'è anche il mitico BOA, è ormai diventato il server ufficiale della distribuzione uclinux (dove u sta per micro) eh eh eh

By the way see you soon   :Very Happy: 

----------

## lucapost

C'è anche darkhttpd, lo trovate con layman nell'overlay berkano:

```
> ~/eix darkhttpd

* www-servers/darkhttpd [1]

     Available versions:  ~1.5-r1

     Homepage:            http://dmr.ath.cx/net/darkhttpd/

     Description:         A simple static webserver

[1] /usr/local/overlay/berkano
```

E' tutto qua:

```
> ~/ll /usr/portage/distfiles/darkhttpd-1.5.tar.bz2 

-rw-r--r-- 1 root portage 18K 2006-12-14 12:13 /usr/portage/distfiles/darkhttpd-1.5.tar.bz2
```

----------

## drizztbsd

Io mi sono innamorato di nginx invece  :Razz: 

----------

## Dr.Dran

Molto interessante!  :Very Happy: 

----------

