In questa pagina descriverò come installare un server web completo su un router (Asus RT-AC56U)
- useremo alcuni pacchetti Entware, pertanto
fare riferimento a questa pagina su come installare Entware su un router.
Useremo il server web "Lighttpd",
un'alternativa ad Apache ovvero il server web più usato negli ambienti Linux. Logicamente
fornirò una breve panoramica delle funzionalità di questo server web, giusto per
installarlo e configurarlo. Questo server web è effettivamente un server web
completo, pertanto suggerisco di fare riferimento so alla sua
pagina wiki per ulteriori dettagli and per le funzionalità aggiuntive. Per
una migliore comprensione, dividerò questa pagina in diverse sezioni da leggere
passo dopo passo.
Allo scopo di installare il server web Lighttpd, dobbiamo eseguire i seguenti passi :
Fare riferimento al sito web di Lighttpd per ulteriori dettagli sulle opzioni del file di configurazione.
Normalmente il server web Lighttpd viene eseguito come
utente a pieni privilegi ("root" o "admin"). Io sconsiglio
vivamente di farlo per ragioni di sicurezza. Nella maggior parte dei router
viene incluso un utente a privilegi limitati più sicuro,
esso viene chiamato "nobody", appartenente al gruppo "nobody".
Questo utente è incluso nel file "/etc/passwd", assieme a tutti
gli altri utenti del router.
Allo scopo di eseguire il server web Lighttpd come utente "nobody",
dobbiamo eseguire i seguenti passi :
Per verificare che Lighttpd viene eseguito come utente "nobody",
usiamo il seguente comando :
ps | grep -i lighttpd
La seconda colonna ("USER") dovrebbe essere "nobody".
NOTA : ricordarsi che, ogni qualvolta aggiungiamo un
file all'interno della cartella radice "/opt/share/www/lighttpd/"
del server, dobbiamo impostare il proprietario del nuovo file a "nobody:nobody", usando
il comando "chown" -
si può persino usare il seguente comando :
chown -R nobody:nobody /opt/share/www/lighttpd/
Normalmente il server web Lighttpd non permette la
visualizzazione delle cartelle per questioni di sicurezza, pertanto abbiamo
bisogno di avere almeno un file indice ("index.php", "index.html", "index.htm", "default.htm") in
ogni cartella del server web, altrimenti il server web restituisce l'errore "403 - forbidden".
Per evitare questo errore, abbiamo bisogno di attivare la visualizzazione delle
cartelle, in questo modo il server web mostrerà un elenco di tutti i file
inclusi in ogni cartella del server web.
Allo scopo di attivare l'elenco delle cartelle nel server web Lighttpd web server,
abbiamo bisogno di eseguire i seguenti passi :
Per verificare che il server web Lighttpd stia visualizzando un elenco di file inclusi in ogni cartella del server web, rinominiamo tutti i file indice in maniera tale da lasciare la cartella web senza file indice (così da avere la cartella web senza nessuno dei file "index.php", "index.html", "index.htm", "default.htm"). Se apriamo il browser e digitiamo l'indirizzo del server web, il server web ora dovrebbe mostrare un elenco di file inclusi in una cartella web, invece di mostrare l'errore "403 - forbidden".
Fare riferimento al sito web di Lighttpd per ulteriori dettagli sull'elenco delle cartelle.
Normalmente il server web Lighttpd permette l'accesso
al server web a tutti gli utenti senza alcun tipo di autenticazione. Per ragioni
di sicurezza,
in questa sezione proviamo ad attivare l'autenticazione utente su questo server
web.
Allo scopo di attivare l'autenticazione utente nel server web Lighttpd,
dobbiamo eseguire i seguenti passi :
auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/opt/share/www/lighttpd/.htpasswd" auth.require = ( "/" => ( "method" => "basic", "realm" => "Please enter your Password.", "require" => "valid-user" ), )
Adesso il server web Lighttpd, se apriamo il browser e digitiamo l'indirizzo web del server web, dovrebbe visualizzare una finestra che richiede il nome utente e la password per accedere al server web.
Fare riferimento al sito web di Lighttpd per ulteriori dettagli sull'autenticazione.
Questa è una sezione opzionale riservata agli utenti che
vogliono attivare l'interprete PHP sul web server Lighttpd. Questa
sezione usa i più recenti pacchetti PHP7 di Entware invece dei più vecchi
pacchetti PHP5. A causa dell'enorme quantitativo delle peculiarità e delle
funzioni dell'interprete PHP, fare riferimento al
manuale PHP.
Per attivare l'interprete PHP nel server web Lighttpd, dobbiamo eseguire
i seguenti passi :
post_max_size = 500M display_errors = Off error_log = /opt/var/log/php_errors.log output_buffering = Off ; Resource Limits max_execution_time = 30 ; Maximum execution time of each script, in seconds. max_input_time = 60 ; Maximum amount of time each script may spend parsing request data. ;max_input_nesting_level = 64 memory_limit = 32M ; Maximum amount of memory a script may consume. ; Paths and Directories ;doc_root = "/opt/share/www/lighttpd" ;user_dir = extension_dir = "/opt/lib/php" enable_dl = On ;cgi.force_redirect = 1 ;cgi.nph = 1 ;cgi.redirect_status_env = ; cgi.fix_pathinfo=1 ; File Uploads file_uploads = On upload_tmp_dir = "/opt/tmp" upload_max_filesize = 500M max_file_uploads = 50
fastcgi.server = ( ".php" => ( "localhost" => ( "socket" => "/tmp/php-fcgi.sock", "bin-path" => "/opt/bin/php-cgi", "max-procs" => 1, "broken-scriptfilename" => "enable", "bin-environment" => ( "PHP_FCGI_CHILDREN" => "1", "PHP_FCGI_MAX_REQUESTS" => "1000" ) ) ) )
<?php phpinfo(); ?>
Ricordarsi di installare i pacchetti "php7-mod-*"
di Entware come da proprie necessità, si può ottenere un elenco dei
pacchetti disponibili con il seguente comando :
opkg list | grep -i php7-mod
Fare riferimento al sito web di Lighttpd per ulteriori dettagli su FastCGI.