Come installare Linux, OpenLiteSpeed, MariaDB, PHP (stack LOMP) su Ubuntu 22.04
L'autore ha selezionato il programma Write for DOnations.
introduzione
Lo stack LOMP è l'acronimo di Joomla e di altre applicazioni basate su PHP che servono contenuti dinamici.
In questo tutorial, configurerai un server LOMP in esecuzione su Ubuntu 22.04. Al momento della scrittura, le versioni correnti sono PHP 8.1, MariaDB 10.7 e OpenLiteSpeed 1.7.
Prerequisiti
Prima di iniziare questa guida, avrai bisogno di quanto segue:
- Un server Ubuntu 22.04 con un utente sudo non root, un firewall e almeno 1 GB di RAM, che puoi configurare seguendo la guida all'installazione iniziale del server Ubuntu 22.04
- Un nome di dominio completo (richiesto per la configurazione SSL e consigliato per i siti web pubblici). Puoi ottenere un nome di dominio su DNS Quickstart per indirizzare il nome di dominio al tuo server.
- Certificati e chiavi SSL per il tuo dominio. Segui How To Use Certbot Standalone Mode to Retrieve Let's Encrypt SSL Certificates su Ubuntu 22.04 per ottenere la coppia certificato-chiave per il tuo dominio. Nel passaggio 2, apri la porta
80
accanto alla porta443
.
Passaggio 1: installazione di OpenLiteSpeed
In questo passaggio, installerai il server web OpenLiteSpeed dopo aver importato i repository dei pacchetti richiesti sul tuo server. Se è la prima volta che usi sudo
nella sessione SSH, potresti dover inserire la password per il tuo utente non root.
Inizia aggiornando la cache del gestore pacchetti:
- sudo apt update
Quindi, aggiorna i pacchetti richiesti eseguendo il seguente comando:
- sudo apt upgrade -y
Nota: se ti viene richiesto di aggiornare il kernel, digita y
per continuare. Se ti viene richiesto di riavviare, esegui il comando sudo reboot
per riavviare il sistema.
A differenza di Nginx, OpenLiteSpeed ospita il proprio codice sul proprio repository. Aggiungi questo repository all'elenco delle fonti del gestore di pacchetti apt
con il seguente comando:
- sudo wget -O - https://repo.litespeed.sh | sudo bash
wget
recupera lo script della shell per il repository remoto situato sul server di OpenLiteSpeed e il flag -O
stampa il contenuto del file sul terminale. La pipe |
passa il contenuto a una nuova shell bash, lanciata dal comando sudo bash
. Questo terminale bash esegue i comandi menzionati nel contenuto del file .sh
(script bash) recuperato dal repository e installa il repository nell'elenco di repository APT locale.
Vedrai un output come questo:
OutputRedirecting output to ‘wget-log’.
--2022-09-08 08:27:42-- http://rpms.litespeedtech.com/debian/lst_debian_repo.gpg
Resolving rpms.litespeedtech.com (rpms.litespeedtech.com)... 52.55.120.73
Connecting to rpms.litespeedtech.com (rpms.litespeedtech.com)|52.55.120.73|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1198 (1.2K) [application/octet-stream]
Saving to: ‘/etc/apt/trusted.gpg.d/lst_debian_repo.gpg’
/etc/apt/trusted.gpg.d/l 100%[==================================>] 1.17K --.-KB/s in 0s
2022-09-08 08:27:42 (139 MB/s) - ‘/etc/apt/trusted.gpg.d/lst_debian_repo.gpg’ saved [1198/1198]
--2022-09-08 08:27:42-- http://rpms.litespeedtech.com/debian/lst_repo.gpg
Resolving rpms.litespeedtech.com (rpms.litespeedtech.com)... 52.55.120.73
Connecting to rpms.litespeedtech.com (rpms.litespeedtech.com)|52.55.120.73|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2336 (2.3K) [application/octet-stream]
Saving to: ‘/etc/apt/trusted.gpg.d/lst_repo.gpg’
/etc/apt/trusted.gpg.d/l 100%[==================================>] 2.28K --.-KB/s in 0s
2022-09-08 08:27:42 (226 MB/s) - ‘/etc/apt/trusted.gpg.d/lst_repo.gpg’ saved [2336/2336]
LiteSpeed repository has been setup!
Aggiorna l'elenco dei repository per assicurarti che il repository appena aggiunto venga scansionato dal gestore di pacchetti apt
:
- sudo apt update
Successivamente, installa il pacchetto openlitespeed
:
- sudo apt install openlitespeed
Se richiesto, inserisci la tua password, quindi conferma l'installazione con Y
.
Una volta completata l'installazione, verifica che OpenLiteSpeed sia installato e funzioni correttamente controllandone lo stato con il comando service
:
- sudo systemctl status lsws
Il comando systemctl status
ottiene lo stato di un servizio identificato dalla sua parola chiave. La parola chiave per il servizio OpenLiteSpeed Web Server è lsws
. Il comando systemctl
può abilitare o disabilitare l'avvio automatico dei servizi e avviare o arrestare manualmente un servizio.
Riceverai il seguente output:
Output● lshttpd.service - OpenLiteSpeed HTTP Server
Loaded: loaded (/etc/systemd/system/lshttpd.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-03-16 08:59:09 UTC; 2min 26s ago
Process: 32997 ExecStart=/usr/local/lsws/bin/lswsctrl start (code=exited, status=0/SUCCESS)
Main PID: 33035 (litespeed)
CGroup: /system.slice/lshttpd.service
├─33035 openlitespeed (lshttpd - main)
├─33044 openlitespeed (lscgid)
└─33073 openlitespeed (lshttpd - #01)
Ora hai un server Web OpenLiteSpeed in esecuzione con la sua configurazione predefinita. Potresti non essere ancora in grado di accedere al pannello di amministrazione basato sulla GUI e al sito Web di esempio, poiché il firewall blocca il traffico verso queste porte.
Con il tuo server web OpenLiteSpeed in esecuzione, puoi aggiornare il firewall e aprire le porte necessarie per consentire agli utenti di accedere al sito web.
Passaggio 2: aggiornamento del firewall
In questo passaggio, configurerai il firewall per il tuo server. Consentirai il traffico su TCP alle porte selezionate per il pannello di amministrazione basato su GUI e il sito Web di esempio, nonché le porte 80
e 443
per i siti HTTP e HTTPS.
Il server OpenLiteSpeed raggruppa un pannello di amministrazione basato su GUI e un sito Web di esempio con il server. Il pannello di amministrazione è un'interfaccia di facile utilizzo per la configurazione di listener, host virtuali, SSL e registri di monitoraggio. Il sito Web di esempio presenta uno script CGI di esempio, uno script PHP, una pagina di errore e una pagina protetta da password. Questo sito web può dimostrare le capacità del server web.
Il pannello di amministrazione basato su GUI è in ascolto sulla porta 7080
nella configurazione predefinita, mentre il sito Web di esempio è in ascolto sulla porta 8088
. Devi consentire il traffico TCP a queste porte tramite il firewall ufw
per accedere a questi siti.
Per fornire l'accesso, eseguire il seguente comando:
- sudo ufw allow 7080,80,443,8088/tcp
Quindi, controlla lo stato delle regole del firewall:
- sudo ufw status
Il tuo output sarà simile a questo:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80,443,7080,8088/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80,443,7080,8088/tcp (v6) ALLOW Anywhere (v6)
Puoi visualizzare il sito Web di esempio tramite la porta 8088
:
http://your_server_ip:8088
Dovrebbe apparire come la schermata qui sotto:

Puoi dare un'occhiata al sito web di esempio per esplorare le funzionalità offerte dal server web.
Per visualizzare il pannello di amministrazione basato su GUI, accedi alla porta 7080
:
http://your_server_ip:7080
Più avanti in questo tutorial, utilizzerai il pannello di amministrazione della GUI di OpenLiteSpeed per configurare il tuo server web.
Ora hai configurato il server OpenLiteSpeed sulla tua istanza Ubuntu, che ti consentirà di servire una varietà di applicazioni web basate su diversi linguaggi e framework di back-end. Nel passaggio successivo, configurerai altri servizi dello stack LOMP.
Passaggio 3: installazione di MariaDB
Con il server OpenLiteSpeed in esecuzione su Linux, ora puoi configurare il server database MariaDB. Il server del database ti consentirà di archiviare, recuperare e gestire i dati sul tuo sito web. MariaDB è un popolare motore di database perché offre funzionalità SQL e NoSQL e può incorporare più motori di database come InnoDB.
Installa il server MariaDB con il seguente comando:
- sudo apt install mariadb-server
Quando viene richiesta la conferma, digita Y
per confermare.
Al termine dell'installazione, completare la configurazione iniziale del server con il seguente comando:
- sudo mysql_secure_installation
L'installazione predefinita non ha una password di root, quindi puoi premere Invio
quando richiesto.
Riceverai un output come questo dopo la configurazione dell'installazione:
Output
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Ti verrà quindi richiesto di abilitare l'autenticazione socket
. Quando ti viene chiesto se desideri Passare all'autenticazione unix_socket
, digita Y
:
OutputSetting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
... Success!
Quando il prompt successivo ti chiede se vuoi impostare la password di root
, digita Y
e inserisci due volte la tua password di root preferita:
OutputYou already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Il prompt successivo chiede se desideri rimuovere gli utenti anonimi
. Rispondi Y
a questo prompt:
OutputBy default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
A meno che tu non abbia intenzione di accedere al database come utente root da altri server o dalla tua macchina locale, dovresti anche disabilitare l'accesso root da remoto
. Per disabilitare gli accessi root da macchine remote, rispondi Y
al prompt:
OutputNormally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
Puoi anche rimuovere il database di test e i relativi privilegi
digitando Y
per il seguente prompt:
OutputBy default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment:
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Infine, confermerai di ricaricare le tabelle dei privilegi
in modo che tutte le modifiche di cui sopra vengano applicate al server:
OutputReloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
Ora hai installato, configurato e protetto un server di database MariaDB sulla tua istanza Ubuntu. Il database ascolterà le connessioni MySQL sulla porta 3306
nella sua configurazione predefinita. Poiché si accederà al database internamente (nella maggior parte dei casi sullo stesso server), non aprirete questa porta al traffico esterno nel firewall.
Successivamente, installerai PHP per l'utilizzo con OpenLiteSpeed.
Passaggio 4: installazione di una versione specifica di PHP
Il server Web OpenLiteSpeed viene fornito in bundle con una versione PHP, che potrebbe non essere l'ultima versione stabile di PHP. È possibile utilizzare la versione preinstallata di PHP oppure installare un'istanza specifica. In questo passaggio, controllerai la versione della tua installazione PHP, la aggiornerai se necessario e installerai i pacchetti richiesti.
Per sapere quale versione di PHP è stata preinstallata con il tuo server OpenLiteSpeed, fai clic sul pulsante nella sezione Test PHP del sito Web di esempio o visita il seguente URL:
http://your_server_ip:8088/phpinfo.php
La versione PHP verrà visualizzata nella pagina delle informazioni.
Per installare una versione specifica di PHP sul server web OpenLiteSpeed, controlla l'elenco delle versioni disponibili insieme alla loro compatibilità nella Guida introduttiva

Puoi anche controllare i pacchetti LSPHP (LiteSpeed PHP) disponibili per Ubuntu con il seguente comando:
- sudo apt-cache search lsphp
Dall'elenco dei pacchetti, puoi identificare le versioni di php
usando il suffisso dei nomi dei pacchetti. Vedrai un elenco di pacchetti come questo:
Output...
lsphp81 - server-side, HTML-embedded scripting language (LSAPI binary)
...
In questo esempio, lsphp81
afferma che questo è PHP v8.1
, mentre lsphp 74
significherebbe PHP v7.4
.
Per installare uno specifico pacchetto lsphp
, usa il seguente comando (sostituendo 81
con il suffisso per la tua versione preferita):
- sudo apt install lsphp81 lsphp81-{common,mysql}
Digita Y
per confermare l'installazione.
Hai installato solo il pacchetto lsphp
, ma non hai configurato OpenLiteSpeed per utilizzare questa versione di PHP. Il sito Web di esempio continuerà a mostrare la versione PHP predefinita fino a quando non lo configuri per utilizzare la nuova versione. Nel passaggio successivo, configurerai OpenLiteSpeed per utilizzare questa versione di PHP.
Passaggio 5: configurazione di OpenLiteSpeed
In questo passaggio, configurerai le credenziali per il pannello di amministrazione basato su GUI per il server web OpenLiteSpeed e configurerai il server web per utilizzare la versione PHP di tua scelta.
Per configurare il web server OpenLiteSpeed, accedi al pannello di amministrazione della GUI alla porta 7080
:
http://your_server_ip:7080
Nel tuo terminale, imposta le credenziali dell'account amministratore con il seguente comando:
- sudo /usr/local/lsws/admin/misc/admpass.sh
Queste credenziali di accesso saranno diverse da quelle impostate nei passaggi precedenti e funzioneranno solo per il pannello di amministrazione della GUI del server OpenLiteSpeed.
Vedrai il seguente output, che ti chiederà di inserire un nome utente e una password:
OutputPlease specify the user name of administrator.
This is the user name required to login the administration Web interface.
User name [admin]: sammy
Please specify the administrators password.
This is the password required to login the administration Web interface.
Password:
Retype password:
Administrators username/password is updated successfully!
Dopo aver impostato le credenziali, è possibile configurare il server in modo che utilizzi la versione specificata.
Tramite http://your_server_ip:7080
, accedi al Pannello di amministrazione (utilizzando le credenziali appena impostate) e vai alla sezione Configurazione server. Quindi, fai clic sulla scheda App esterna.
Vedrai la seguente schermata:

Fare clic sul pulsante di modifica nella colonna Azioni della prima riga per LiteSpeed SAPI App, che aprirà un'app con il nome lsphp. Scorri fino al campo Comando per modificarne il valore in lsphp81/bin/lsphp
(seguendo la convenzione di denominazione nel passaggio 4). Dopo aver configurato questo valore, scorrere fino all'intestazione LiteSpeed SAPI App e fare clic sul pulsante Salva a destra.
Utilizzare il pulsante Graceful Restart in alto a destra per riavviare il server web. Il pulsante Graceful Restart è evidenziato in alto a destra nella seguente schermata:

Verifica che il tuo server stia ora utilizzando la versione PHP specificata visitando la pagina informativa sulla porta 8088
:
http://your_server_ip:8088/phpinfo.php
La pagina visualizzerà ora il numero di versione specificato.
In questo passaggio, hai configurato le credenziali per il pannello di amministrazione e impostato per utilizzare la versione desiderata di PHP. Successivamente, configurerai gli host virtuali per i diversi siti Web che prevedi di ospitare su questo server Web.
Passaggio 6: configurazione di un host virtuale
In questo passaggio, configurerai gli host virtuali per il tuo server web e configurerai la crittografia TLS per tutto il traffico verso il tuo sito web.
Gli host virtuali consentono di servire più siti Web, identificati da nomi host univoci, tramite un singolo server Web. OpenLiteSpeed può servire più host virtuali, che vengono quindi mappati ai listener; i Listener vengono quindi mappati su porte specifiche. OpenLiteSpeed consente agli host virtuali di avere regole di reindirizzamento personalizzate e può anche essere configurata una versione PHP diversa per ciascun host virtuale. Gli host virtuali possono essere configurati per fungere da connessioni proxy inverse per altri server Web come Node.JS.
Sempre nel pannello di amministrazione della GUI, vai alla sezione Host virtuali. Nell'angolo in alto a destra della tabella visualizzata, fai clic sul pulsante più (+) per aggiungere un nuovo host virtuale.
È quindi possibile aggiungere un nome host virtuale di propria scelta per impostare la root dell'host virtuale e il percorso per il file di configurazione dell'host virtuale, utilizzando variabili come $SERVER_ROOT
(per fare riferimento alla directory root del server Web OpenLiteSpeed) o $VH_ROOT
(per fare riferimento alla directory principale dell'host virtuale). Fare clic su Sì su Abilita script/ExtApps per assicurarsi che PHP funzioni sull'host virtuale.
Quando si configura l'host virtuale, completare i seguenti campi con i valori desiderati (i valori mostrati di seguito sono esempi):
- Nome host virtuale:
MyWebsite
- Root host virtuale:
$SERVER_ROOT/MyWebsite/html/
- File di configurazione:
conf/vhosts/MyWebsite/vhconf.conf
- Abilita script/ExtApps:
Sì
- Trattenuto:
Sì
Puoi sostituire MyWebsite
con il nome di dominio che hai creato durante i Prerequisiti.
Nota: potresti ricevere un errore se il file di configurazione non esiste nel percorso specificato. Fare clic sul collegamento indicato nel messaggio di errore per creare automaticamente il file.
Sì
su Enable Scripts/ExtApps consente di specificare una versione personalizzata dell'interprete PHP nella sezione App esterne della configurazione. Può essere disattivato se non si intende configurare una versione PHP personalizzata.
Yes
on Restrained impedisce agli utenti di accedere a file in directory diverse da quelle contenute nella directory root dell'host virtuale, anche se i collegamenti simbolici puntano a file al di fuori della directory root dell'host virtuale. Per motivi di sicurezza, abilita questa funzione.

Dopo aver completato la configurazione, fare clic sul pulsante Salva sul lato destro della riga Host virtuali.
Il Pannello di amministrazione potrebbe visualizzare una richiesta di eseguire un riavvio regolare per applicare le modifiche alla configurazione. È possibile eseguire un riavvio regolare a questo punto in quanto non influirà sui passaggi di configurazione. Puoi anche attendere di eseguire il Graceful Restart dopo aver completato le modifiche alla configurazione del listener.
Dopo aver configurato il Virtual Host, configurerai il Listener. Vai alla sezione Ascoltatori del Pannello di amministrazione. Fare clic sul listener predefinito, quindi fare clic sul pulsante più (+) nell'angolo in alto a destra della tabella Virtual Host Mappings.
Dall'elenco a discesa corrispondente all'host virtuale, seleziona il nome dell'host virtuale che hai assegnato nella configurazione dell'host virtuale. Nell'esempio mostrato, l'host virtuale selezionato è MyWebsite.
Nella casella di testo per un nome di dominio, inserisci il nome di dominio completo e registrato che utilizzerai per servire l'host virtuale che hai configurato. Nella schermata qui sotto, il valore di esempio è impostato su mywebsite.com
, ma aggiornalo con il valore che hai utilizzato per your_domain
.

Nota: il listener predefinito è configurato per l'ascolto sulla porta 8088
. La porta utilizzata per il traffico HTTP verso il tuo sito è 80
e, se la crittografia SSL/TLS è abilitata, il tuo sito web HTTPS dovrebbe essere in ascolto sulla porta 443
. Sarà necessario modificare la porta nelle impostazioni dell'indirizzo della configurazione del listener per modificare la porta su cui il listener è in ascolto.
Fare clic su Salva in alto a destra nella riga Mappatura host virtuali.
Ti consigliamo vivamente di abilitare la sicurezza TLS per il tuo sito web. Nelle impostazioni generali per il listener, aggiorna l'opzione Secure a Yes
e modifica la porta da 8088
a 443
per i listener che servono le pagine HTTPS . 443
è la porta predefinita per HTTPS. Salva le impostazioni dell'indirizzo aggiornate.
Poiché hai generato un certificato e un file chiave da un'autorità di certificazione durante i prerequisiti, ora puoi aggiungerli alla configurazione di OpenLiteSpeed. Aggiungi i percorsi del certificato e del file chiave nella sezione SSL della configurazione del listener facendo clic sull'icona Modifica nella riga Chiave privata e certificato SSL.
Se hai seguito le guide menzionate nel prerequisito, il certificato e i file chiave generati da Let's Encrypt si troveranno nelle seguenti posizioni:
- File chiave privata:
/etc/letsencrypt/live/tuo_dominio.privkey.pem
- File del certificato:
/etc/letsencrypt/live/tuo_dominio.fullchain.pem
Per i certificati generati da Let's Encrypt, devi impostare l'opzione Chained Certificate su Yes
, come consigliato dalla documentazione ufficiale per la configurazione di Let's Encrypt SSL su OpenLiteSpeed.
Di seguito è mostrata una configurazione di esempio per il certificato TLS e i file chiave nella sezione SSL della configurazione del listener (assicurati di aggiornare i percorsi dei file in modo che corrispondano al tuo dominio):

In caso di problemi, puoi consultare la guida alla configurazione di OpenLiteSpeed per SSL nella documentazione di OpenLiteSpeed.
Dopo aver configurato e salvato queste impostazioni, fare clic sul pulsante Graceful Restart nell'angolo in alto a destra dello schermo per applicare le modifiche.
Ora hai configurato un host virtuale con un listener e impostato la crittografia TLS per tutto il traffico verso il tuo sito web. Dopo aver configurato il tuo DNS per mappare all'indirizzo IP pubblico del tuo server, il tuo sito web sarà accessibile nel dominio specificato.
Nota: OpenLiteSpeed è uno dei primi server open source a incorporare il protocollo HTTP3 sul protocollo QUIC (Quick UDP Internet Connections).
Per abilitare HTTP3/QUIC, devi impostare SSL per il tuo dominio e configurare il certificato e la chiave tramite il Pannello di amministrazione. Ritorna al passaggio 6 per la direzione.
Se desideri utilizzare HTTP3, devi anche consentire al traffico UDP di raggiungere la porta 443
del tuo server. Per fare ciò, esegui il comando:
- sudo ufw allow 443/udp
Conclusione
In questo tutorial, imposti un server di database MariaDB e un server Web OpenLiteSpeed in grado di servire applicazioni PHP con la versione PHP specificata. Ora puoi ospitare una varietà di applicazioni e framework PHP come Joomla sul tuo server.
Se non l'hai ancora fatto, puoi impostare la sicurezza TLS sul tuo server web e abilitare HTTP/3 su QUIC per sfruttare al meglio il server web OpenLiteSpeed. Consulta la guida per la configurazione di Let's Encrypt SSL su OpenLiteSpeed e quindi fai riferimento alla sezione Abilita HTTP/3 su QUIC nel passaggio 6 di questa guida.