GNU/Linux >> Linux Esercitazione >  >> Linux

Tutorial di installazione completo per Lighttpd, un server Web leggero

Esiste un server Web molto conservativo nell'utilizzo delle risorse e nell'ingombro della memoria. Quel server è noto come lighttpd (pronunciato "lighty"). L'impostazione di un'istanza lighttpd può essere un po' complicata, quindi questo tutorial funge da guida chiara su come configurare correttamente un server lighttpd su Linux.

La comprensione del file di configurazione per ciascuna istanza del server Web è fondamentale per eseguire correttamente lighttpd. Questo tutorial tratterà anche l'aggiunta del supporto PHP per i tuoi server web

Opzioni di configurazione di Lighttpd

Dopo aver installato lighttpd, inizieremo creando un file che definisce le impostazioni del server web. Chiamiamo questo 'example.conf' nella home directory. Copieremo semplicemente il file di configurazione predefinito che si trova in /etc/lighttpd. Questo è un file ".conf" standard, quindi si applicano le normali regole di sintassi, ovvero, ad esempio, tutti i caratteri dopo "#" vengono trattati come commenti.

$ cp /etc/lighttpd/lighttpd.conf ~/webservers/example.conf
$ vim ~/webservers/example.conf # Or whatever editor you wish 

Moduli server

Il campo "server.modules" contiene un array di moduli utilizzati dal server. Aggiungiamo ora altri due alla lista:'mod_fastcgi' e 'mod_setenv'. Mod_fastcgi ci permetterà di aggiungere il supporto PHP. Mod_setenv ci permetterà di passare un header che permetterà al server di fare richieste ad altri domini, utile per caricare librerie esterne.​

NOTA:se vuoi includere anche 'mod_status' nell'elenco, metti 'mod_setenv' prima di esso.

Impostazioni server

Esaminiamo la seguente sezione:

server.document-root = "/var/www/html"
server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
server.errorlog = "/var/log/lighttpd/error.log"
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80 

Questi campi sono davvero autoesplicativi. Queste sono le impostazioni predefinite che si trovano nel file di configurazione in /etc/lighttpd . Poiché si tratta di un nuovo file, copiato dal file di configurazione predefinito, possiamo modificare quello che vogliamo. La radice del documento specifica il livello di directory più in alto visibile al server web. Il campo 'upload-dirs' contiene una serie di directory in cui archiviare i caricamenti. Nome utente e nome del gruppo corrispondenti a quelli trovati sul tuo sistema. Per impostazione predefinita, l'utente "www-data" è il proprietario dei file creati da questa istanza di lighttpd. Dovrai assicurarti che il registro degli errori sia scrivibile da "www-data" (trattato un po' più avanti).

In questa configurazione, cambiamo la directory della radice del documento in '/var/www/mysite/html' .Successivamente cambia il registro degli errori con un nome diverso:'/var/log/lighttpd/mysite/error.log'. Quindi cambia la porta in 8080, se lo desideri.

Supporto FastCGI e "setenv"

Dato che abbiamo aggiunto questi due moduli in:dovremo inserire le configurazioni nel file sotto le impostazioni del server (se gli eseguibili per 'php' e 'php-cgi' si trovano altrove, specificali invece):

fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/tmp/php.socket"
)))cgi.assign = ( ".php" => "/usr/bin/php" ) 

Quello che abbiamo fatto è stato detto a lighttpd che se uno script PHP è stato richiesto dal server, dovrebbe avviare l'interprete PHP sul computer per elaborarlo. Il modulo FastCGI è ciò che utilizziamo per eseguire script PHP.

Se è necessario consentire la condivisione delle risorse tra origini (CORS), aggiungere questa riga di seguito. setenv.add-response-header =( “Access-Control-Allow-Origin” => “*”) Per specificare un solo dominio, sostituisci “*” con il dominio desiderato.

Ecco il contenuto del file di configurazione:

Come installare PHP

Se desideri il supporto per PHP, dovrai installare PHP, in particolare i pacchetti "php" e "php-cgi". Per il supporto MySQL, è necessario installare anche 'php-mysql'. Abbiamo già configurato il server web nel file di configurazione per consentire l'esecuzione del codice PHP.

​Alcuni passaggi extra

File di registro

Poiché la posizione del file di registro che abbiamo specificato nella configurazione è in una cartella che non esiste ancora, lighttpd genererà un errore durante l'esecuzione. Per prima cosa, dovremo creare la cartella:

$ sudo mkdir /var/log/lighttpd/mysite ​

Quindi, crea il file di registro, quindi modifica la proprietà dell'utente e del gruppo del file nell'utente "www-data" come specificato nel file di configurazione.

$ sudo touch /var/log/lighttpd/mysite/error.log
$ sudo chown www-data /var/log/lighttpd/mysite/error.log
$ sudo chgrp www-data /var/log/lighttpd/mysite/error.log ​

Quindi proviamo a eseguire il server utilizzando il nostro file di configurazione:

$ sudo lighttpd -f mysite.conf 

Copia il file indice

Non dimenticare di copiare il file di indice che si trova nella directory /var/www/html nella tua directory principale:

$ sudo cp /var/www/html/index.lighttpd.html /var/www/html/mysite/index.html   

Eseguire il server

Si spera che lighttpd si avvii in background senza errori di stampa sullo schermo. Tuttavia, ho riscontrato un problema con uno dei comandi "include_shell" nella configurazione:

include_shell "/usr/share/lighttpd/include-conf-enabled.pl" 

Se riscontri anche questo problema, un'opzione è disabilitarlo (apponendo un "#" all'inizio della riga).

#include_shell "/usr/share/lighttpd/include-conf-enabled.pl" 

Se vuoi o hai bisogno di aggiustarlo, l'altra opzione è aprire lo script Perl specificato nel comando include_shell e cambiare una delle stringhe.

Trova questa riga:

my $enabled = “conf-enabled/*.conf”; 

Il problema è che questa è una directory a cui fa riferimento questo script, ma è incompleta. Quello che ho fatto è stato aggiungere dove diceva che si trovava la directory alla variabile $enabled.

my $enabled = “/etc/lighttpd/conf-enabled/*.conf”; 

Applicazione delle modifiche

Dopo aver modificato il file di configurazione per un particolare server, dovresti uccidere quell'istanza di lighttpd e riavviarla. Il PID di quel server può essere facilmente trovato usando il comando "ps".

Se hai solo un'istanza di lighttpd in esecuzione, esegui semplicemente il comando "killall".

$ sudo killall lighttpd   

Visualizza nel tuo browser

Per verificare che il tuo server sia attivo, funzionante e funzionante, apri il tuo browser web (qualunque esso sia) e digita nella barra degli indirizzi "localhost:8080" o "127.0.0.1:8080". Se viene visualizzata una pagina con il titolo "Pagina segnaposto", il tuo server è in esecuzione e fornisce pagine HTML correttamente.

Risoluzione dei problemi

Se riscontri problemi quando avvii il server, o anche dopo, potrebbe essere necessario risolvere i problemi. Ecco alcuni esempi e come superare i problemi che si trovano qui.

File scaricati anziché gestiti correttamente

Se hai provato ad aprire la tua pagina index.html nel tuo browser web e hai preso l'iniziativa di scaricare il file invece di eseguirne il rendering, potresti non avere i tuoi tipi MIME configurati correttamente.

Assicurati che lo script Perl per configurarli sia in esecuzione.

include_shell "/usr/share/lighttpd/create-mime.assign.pl" 

​Questo comando configura il tuo server web per gestire in modo appropriato diversi tipi di file.

Script PHP non in esecuzione

Assicurati di aver installato PHP e che il file di configurazione abbia le impostazioni descritte in questo tutorial.

Errori HTTP 500

Questi errori richiedono ulteriori indagini. Un colpevole potrebbe essere un errore nel codice PHP. Qualunque sia la causa, leggi il file di registro per scoprire cosa è successo.

Conclusione

Dovresti avere un server web correttamente configurato che funzioni correttamente con lighttpd. Se hai bisogno di più di un lighttpd istanza in esecuzione, assicurarsi che la porta specificata in ciascun file di configurazione sia diversa l'una dall'altra, altrimenti lighttpd genererà un errore.

Un piccolo consiglio sulla qualità della vita

Puoi gestire i file senza eseguire editor come root concedendoti la piena proprietà della directory:

$ sudo chown -R your_username /var/www/html/mysite
$ sudo chgrp -R your_username /var/www/html/mysite

Linux
  1. Come configurare Raspberry Pi come server di backup per desktop Linux e Windows

  2. Come installare il server Web Lighttpd su CentOS 7

  3. 10 browser Web leggeri e open source per Linux

  4. LAMP vs. LEMP:suggerimenti su come scegliere Apache o nginx per il tuo server web

  5. Nozioni di base su Vhost

Come installare Nginx Web Server su Ubuntu Linux:un tutorial per principianti

Apache vs Nginx:quale server Web è il migliore per te?

Come configurare il server Web Lighttpd su Ubuntu 18.04

Come installare il server Web Lighttpd su Ubuntu 18.04

Come configurare un server NGINX RTMP per lo streaming

Come configurare Nginx come loadbalancer per Apache o Tomcat per HTTP/HTTPS