Blog

Cum să instalați, OpenLiteSpeed, MariaDB, PHP (LOMP) pe Ubuntu 22.04

Reading Time: 11 minutes

Introducere
LOMP este un acronim pentru Linux, OpenLiteSpeed, MariaDB și PHP. OpenLiteSpeed reprezintă varianta open-source a serverelor web LiteSpeed. Aceste servere sunt recunoscute pentru performanța lor rapidă, în special cu limbaje precum PHP, care se integrează eficient cu LiteSpeed Server Application Programming Interface (LSAPI). Interpretorul PHP al LiteSpeed (LSPHP) funcționează mult mai rapid pentru a servi pagini PHP dinamice prin intermediul API-ului lor proprietar, LS-API. Acest API se integrează cu serverul HTTP, reducând timpul total necesar pentru răspunsul serverului la o solicitare. OpenLiteSpeed devine alegerea preferată pentru aplicații bazate pe PHP, precum WordPress, Joomla sau alte platforme care deservesc conținut dinamic.

În acest tutorial, veți configura un server LOMP pe Ubuntu 22.04. La momentul redactării acestui ghid, versiunile curente sunt PHP 8.1, MariaDB 10.7 și OpenLiteSpeed 1.7.

Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:

  1. Un server Ubuntu 22.04 cu:
    • Un utilizator non-root cu drepturi sudo
    • Un firewall activat
    • Minimum 1GB RAM
  2. Un nume de domeniu complet calificat (obligatoriu pentru configurarea SSL și recomandat pentru site-uri publice). Puteți achiziționa un domeniu de la DDS, ROTLD sau alt registrar.
  3. Certificate și chei SSL pentru domeniul dvs. Urmați ghidul Certbot în modul Standalone pentru a obține certificate Let’s Encrypt pe Ubuntu 22.04. La Pasul 2, deschideți portul 80 împreună cu portul 443.

Pasul 1 — Instalarea OpenLiteSpeed
În acest pas, veți instala serverul OpenLiteSpeed după importarea repository-urilor necesare. Dacă este prima utilizare a comenzii sudo în această sesiune SSH, este posibil să fie necesară introducerea parolei utilizatorului non-root.

Începeți prin actualizarea cache-ului managerului de pachete:

sudo apt update

Apoi, actualizați pachetele necesare rulând următoarea comandă:

sudo apt upgrade -y

Notă: Dacă vi se solicită să actualizați kernelul, introduceți y pentru a continua. Dacă vi se cere să reporniți sistemul, executați comanda sudo reboot pentru a-l reporni.

Spre deosebire de Apache și Nginx, OpenLiteSpeed își găzduiește codul pe propriul repository. Adăugați acest repository în lista de surse a managerului de pachete apt folosind următoarea comandă:

sudo wget -O - https://repo.litespeed.sh | sudo bash

wget preia scriptul shell pentru depozitul (repository) de la distanță, aflat pe serverul OpenLiteSpeed, iar opțiunea -O afișează conținutul fișierului în terminal. Simbolul | (pipe) transmite acest conținut către un nou shell bash, lansat prin comanda sudo bash. Acest terminal bash execută comenzile specificate în conținutul fișierului .sh (un script bash) preluat din depozit și instalează depozitul în lista locală de depozite APT.

Veți vedea o ieșire similară cu aceasta:

Output
Redirecting output to ‘wget-log’.
--2024-09-08 12:21:46--  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      

2024-09-08 12:21:47 (139 MB/s) - ‘/etc/apt/trusted.gpg.d/lst_debian_repo.gpg’ saved [1198/1198]

--2024-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      

2024-09-08 12:21:48 (226 MB/s) - ‘/etc/apt/trusted.gpg.d/lst_repo.gpg’ saved [2336/2336]

LiteSpeed repository has been setup!

Actualizați lista de repository-uri pentru a vă asigura că noul repository adăugat este recunoscut de managerul de pachete apt:

sudo apt update

În continuare, instalați pachetul OpenLiteSpeed:

sudo apt install openlitespeed

Dacă vi se solicită, introduceți parola, apoi confirmați instalarea cu Y.

După finalizarea instalării, verificați dacă OpenLiteSpeed este instalat și funcționează corect prin verificarea stării sale folosind comanda service:

sudo systemctl status lsws

Comanda systemctl status obține starea unui serviciu identificat prin identificatorul său. Identificatorul pentru serviciul OpenLiteSpeed Web Server este lsws. Comanda systemctl poate activa sau dezactiva pornirea automată a serviciilor și poate porni sau opri manual un serviciu.

Veți vedea următoarea ieșire:

Output
● lshttpd.service - OpenLiteSpeed HTTP Server
     Loaded: loaded (/etc/systemd/system/lshttpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2025-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)

Acum aveți un server web OpenLiteSpeed funcționând cu configurația implicită. Este posibil să nu puteți accesa încă Panoul de administrare bazat pe interfață grafică (GUI) și site-ul exemplu, deoarece firewall-ul blochează traficul către aceste porturi.

Cu serverul web OpenLiteSpeed pornit, puteți actualiza setările firewall-ului și deschide porturile necesare pentru a permite utilizatorilor accesul la site.


Pasul 2 — Actualizarea setărilor firewall-ului
În acest pas, veți configura firewall-ul pentru server. Veți permite traficul TCP către porturile selectate pentru panoul de administrare bazat pe GUI și site-ul exemplu, precum și porturile 80 și 443 pentru site-urile HTTP și HTTPS.

Serverul OpenLiteSpeed include:

  1. Panoul de administrare GUI: O interfață ușor de utilizat pentru configurarea:
    • Listeners (ascultători)
    • Virtual Hosts (gazde virtuale)
    • SSL
    • Monitorizarea jurnalelor (logs).
  2. Site-ul exemplu: Include:
    • Un script CGI exemplu,
    • Un script PHP exemplu,
    • O pagină de eroare,
    • O pagină protejată cu parolă.
      Acest site demonstrează capacitățile serverului web.

Configurarea porturilor:

  • Panoul de administrare GUI ascultă pe portul 7080 (configurație implicită).
  • Site-ul exemplu ascultă pe portul 8088.

Pentru a accesa aceste resurse, trebuie să permiteți traficul TCP către aceste porturi prin firewall-ul ufw.

Pentru a permite accesul, executați următoarea comandă:

sudo ufw allow 7080,80,443,8088/tcp

Apoi, verificați starea regulilor firewall-ului:

sudo ufw status

Ieșirea dvs. va arăta astfel:

Output
Status: 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)

Puteți accesa site-ul exemplu prin portul 8088:

http://ip_server:8088

Ar trebui să apară ca în captura de ecran de mai jos:

Puteți naviga pe site-ul exemplu pentru a explora funcționalitățile oferite de serverul web.

Pentru a vizualiza Panoul de Administrare bazat pe interfață grafică (GUI), accesați portul 7080:

http://ip_server:7080

Mai târziu în acest tutorial, veți folosi Panoul GUI de Administrare OpenLiteSpeed pentru a configura serverul web.

Acum ați configurat serverul OpenLiteSpeed pe instanța Ubuntu, care vă va permite să serviți diverse aplicații web bazate pe diferite limbaje și framework-uri back-end. În pasul următor, veți configura celelalte componente ale stivei LOMP.


Pasul 3 — Instalarea MariaDB
Cu serverul OpenLiteSpeed pornit pe Linux, puteți instala Serverul de Baze de Date MariaDB. Acesta vă permite să stocați, să preluați și să gestionați datele site-ului. MariaDB este un motor de baze de date popular datorită suportului pentru funcționalități SQL și NoSQL, precum și capacității de a integra mai multe motoare de baze de date (e.g., MyISAMInnoDB).

Instalați serverul MariaDB cu următoarea comandă:

sudo apt install mariadb-server

Când vi se solicită confirmarea, introduceți Y pentru a confirma.

După finalizarea instalării, completați configurația inițială a serverului executând următoarea comandă:

sudo mysql_secure_installation

Instalarea implicită nu are o parolă setată pentru root, așa că puteți apăsa Enter când vi se solicită.

După configurarea instalării, veți primi o ieșire similară cu aceasta:

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...

Ulterior, vi se va solicita să activați autentificarea prin socket. Când vi se întreabă dacă doriți să treceți la autentificarea unix_socket, introduceți Y:

Output
Setting 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!

Când vi se va cere să setați parola root, introduceți Y și tastați parola preferată de două ori:

Output
You 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!

Următorul prompt vă întreabă dacă doriți să eliminați utilizatorii anonimi. Introduceți Y ca răspuns:

Output
By 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!

Dacă nu intenționați să accesați baza de date ca utilizator root de pe alte servere sau de pe mașina locală, ar trebui să dezactivați și autentificarea root de la distanță. Pentru a dezactiva autentificarea root de la distanță, răspundeți cu Y la prompt:

Output
Normally, 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!

De asemenea, puteți elimina baza de date de test și privilegiile asociate introducând Y la următorul prompt:

Output
By 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!

În final, veți confirma reîncărcarea tabelelor de privilegii pentru ca toate modificările de mai sus să fie aplicate serverului.

Output
Reloading 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!

Acum ați instalat, configurat și securizat un server de baze de date MariaDB pe instanța Ubuntu. În configurația implicită, baza de date ascultă pentru conexiuni MySQL pe portul 3306. Deoarece aceasta va fi accesată intern (pe același server, în majoritatea cazurilor), nu veți deschide acest port pentru trafic extern în firewall.

În continuare, veți instala PHP pentru a-l integra cu OpenLiteSpeed.


Pasul 4 — Instalarea unei versiuni specifice de PHP
Serverul web OpenLiteSpeed include o versiune preinstalată de PHP, care poate să nu fie cea mai recentă versiune stabilă. Puteți utiliza versiunea preinstalată de PHP sau puteți instala o versiune specifică. În acest pas, veți verifica versiunea PHP instalată, o veți actualiza dacă este necesar și veți instala pachetele necesare.

Pentru a verifica versiunea PHP preinstalată cu serverul OpenLiteSpeed:

http://your_server_ip:8088/phpinfo.php

Versiunea PHP va fi afișată pe pagina de informații.

Pentru a instala o versiune specifică de PHP pe serverul web OpenLiteSpeed, verificați lista de versiuni disponibile și compatibilitatea acestora pe pagina Getting Started a site-ului oficial OpenLiteSpeed. Lista versiunilor disponibile este afișată în secțiunea LiteSpeed Repository din antetul Installation:

De asemenea, puteți verifica pachetele LSPHP (LiteSpeed PHP) disponibile pentru Ubuntu folosind următoarea comandă:

sudo apt-cache search lsphp

Din lista de pachete, puteți identifica versiunile PHP folosind sufixul din numele pachetelor. Veți vedea o listă de pachete similară cu aceasta:

Output
...
lsphp81 - server-side, HTML-embedded scripting language (LSAPI binary)
...

În acest exemplu, lsphp81 indică PHP v8.1, iar lsphp74 ar corespunde PHP v7.4.

Pentru a instala un pachet lsphp specific, folosiți următoarea comandă (înlocuiți 81 cu sufixul versiunii preferate):

sudo apt install lsphp81 lsphp81-{common,mysql}

Introduceți Y pentru a confirma instalarea.

Ați instalat doar pachetul lsphp, dar nu ați configurat OpenLiteSpeed să utilizeze această versiune de PHP. Site-ul exemplu va continua să afișeze versiunea implicită de PHP până când îl configurați să folosească noua versiune. În pasul următor, veți configura OpenLiteSpeed să utilizeze această versiune de PHP.


Pasul 5 — Configurarea OpenLiteSpeed
În acest pas, veți configura credentialele pentru Panoul de Administrare bazat pe interfață grafică (GUI) al serverului web OpenLiteSpeed și veți seta serverul să utilizeze versiunea de PHP aleasă de dvs.

Pentru a configura serverul web OpenLiteSpeed, accesați Panoul de Administrare GUI la portul 7080:

http://ip_server:7080

În terminalul dvs., configurați credentialele contului de administrator folosind următoarea comandă:

sudo /usr/local/lsws/admin/misc/admpass.sh

Aceste date de autentificare vor fi diferite de cele setate în pașii anteriori și vor funcționa doar pentru Panoul de Administrare GUI al serverului OpenLiteSpeed.

Veți vedea următoarea ieșire, care vă va solicita să introduceți un nume de utilizator și o parolă:

Output
Please 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!

După ce setați credentialele, puteți configura serverul să utilizeze versiunea specificată.

Accesați http://<ip_server>:7080, autentificați-vă în Panoul de Administrare (folosind credentialele tocmai setate) și navigați la secțiunea Configurare Server. Apoi, faceți clic pe fila Aplicații Externe.

Veți vedea următoarea captură de ecran:

  1. Modificarea configurației PHP:
    • În coloana Acțiuni, faceți clic pe butonul de editare (primul rând pentru Aplicația LiteSpeed SAPI). Aceasta va deschide o aplicație numită lsphp.
    • Derulați în jos la câmpul Comandă și modificați valoarea în lsphp81/bin/lsphp (respectând convenția de denumire din Pasul 4).
    • După actualizare, derulați în sus la antetul Aplicație LiteSpeed SAPI și faceți clic pe butonul Salvează (în dreapta).
  2. Repornirea serverului:
    • Utilizați butonul Graceful Restart (Repornire Grațioasă) din colțul dreapta-sus pentru a reporni serverul web. Acest buton este evidențiat în captura de ecran de mai jos:

Verificați că serverul dvs. utilizează acum versiunea specificată de PHP accesând pagina de informații la portul 8088:

http://your_server_ip:8088/phpinfo.php

Pagina va afișa acum numărul versiunii PHP specificate.

În acest pas, ați configurat credentialele pentru panoul de administrare și ați setat serverul să utilizeze versiunea dorită de PHP. În continuare, veți configura Gazde Virtuale (Virtual Hosts) pentru site-urile pe care intenționați să le găzduiți pe acest server.


Pasul 6 — Configurarea unei Gazde Virtuale
În acest pas, veți configura Gazdele Virtuale ale serverului web și veți activa criptarea TLS pentru tot traficul către site.

Gazdele Virtuale vă permit să serviți mai multe site-uri, identificate prin nume de gazdă unice, printr-un singur server web. OpenLiteSpeed poate gestiona multiple Gazde Virtuale, care sunt mapate către Ascultători (Listeners); aceștia sunt la rândul lor mapați pe porturi specifice. OpenLiteSpeed permite Gazdelor Virtuale să aibă reguli de redirecționare personalizate și, de asemenea, o versiune diferită de PHP poate fi configurată pentru fiecare Gazdă Virtuală. Gazdele Virtuale pot fi configurate să funcționeze ca conexiuni reverse proxy pentru alte servere web (ex: Node.JS).


Pași pentru configurare:

  1. Adăugarea unei Gazde Virtuale:
    • În Panoul de Administrare GUI, navigați la secțiunea Virtual Hosts.
    • În colțul dreapta-sus al tabelei, faceți clic pe butonul plus (+) pentru a adăuga o Gazdă Virtuală nouă.
  2. Configurarea Gazdei Virtuale:
    • Introduceți un nume pentru Gazda Virtuală (ex: MyWebsite).
    • Completați următoarele câmpuri cu valorile dorite (exemple): CâmpValoare Exemplu
    • Virtual Host Name: SiteMeu
    • Virtual Host Root: $SERVER_ROOT/SiteMeu/html/
    • Config File: conf/vhosts/MyWebsite/vhconf.conf
    • Enable Scripts/ExtApps: Yes (permite funcționarea PHP)
    • Restrained Yes (pentru securitate)
    • Note importante:
      • Înlocuiți SiteMeu cu numele domeniului dvs. (definit în Cerințe Preliminare).
      • Dacă apare o eroare legată de absența fișierului de configurare, faceți clic pe link-ul din mesaj pentru a-l crea automat.
  3. Explicații suplimentare:
    • „Yes” la „Enable Scripts/ExtApps”: Permite specificarea unei versiuni personalizate de PHP în secțiunea Aplicații Externe. Puteți dezactiva această opțiune dacă nu aveți nevoie de PHP.
    • „Yes” la „Restrained”: Previne accesul utilizatorilor la fișiere în afara directorului rădăcină al Gazdei Virtuale, chiar dacă există link-uri simbolice către alte directoare. Recomandat pentru securitate.
  4. Salvare și aplicare:
    • Faceți clic pe Save și reporniți serverul folosind Graceful Restart.

După finalizarea configurației, faceți clic pe butonul Save din partea dreaptă a rândului Virtual Hosts.

Panoul de Administrare poate afișa o solicitare de a efectua o Repornire Grațioasă (Graceful Restart) pentru a aplica modificările. Puteți efectua acum repornirea, deoarece aceasta nu va afecta pașii următori ai configurației. De asemenea, puteți aștepta și să efectuați repornirea după finalizarea modificărilor în configurația Ascultătorului (Listener).

După configurarea Gazdei Virtuale, veți configura Ascultătorul. Navigați la secțiunea Listeners din Panoul de Administrare. Faceți clic pe Default listener, apoi pe butonul plus (+) din colțul dreapta-sus al tabelului Virtual Host Mappings.

În câmpul text pentru numele de domeniu, introduceți numele de domeniu complet calificat și înregistrat pe care îl veți folosi pentru Gazda Virtuală configurată. În captura de ecran de mai jos, exemplul este domeniul-tau.ro, dar înlocuiți cu valoarea dvs. (<your_domain>).

Din meniul derulant ales pentru Virtual Host, selectați Numele Gazdei Virtuale atribuit anterior (în exemplu, gazda selectată este MyWebsite).

Notă: Ascultătorul implicit (default listener) este configurat să asculte pe portul 8088.

  • Portul standard pentru traficul HTTP este 80.
  • Dacă activați criptarea SSL/TLS, site-ul HTTPS va trebui să asculte pe portul 443.

Pentru a schimba portul ascultătorului:

  1. Accesați secțiunea Address Settings din Configurația Ascultătorului.
  2. Modificați valoarea portului în câmpul corespunzător.
  • Salvarea configurației:
    • Faceți clic pe Salvează în partea dreaptă-sus a rândului Mapări Gazde Virtuale.
  • Activarea securității TLS (recomandat):
    • Este foarte recomandat să activați securitatea TLS pentru site.
    • În Setările Generale ale Ascultătorului:
      • Setați opțiunea Secure la Da.
      • Schimbați portul de la 8088 la 443 pentru Ascultătorii care deservesc pagini HTTPS (443 este portul implicit pentru HTTPS).
      • Salvați setările actualizate.
  • Adăugarea certificatului SSL:
    • Deoarece ați generat un certificat și o cheie privată în etapa preliminară, le puteți adăuga în OpenLiteSpeed:
      • Accesați secțiunea SSL din configurația Ascultătorului.
      • Faceți clic pe pictograma de editare (✎) din rândul Cheie Privată SSL și Certificat.
    • Dacă ați urmat ghidurile din Cerințe Preliminare, fișierele generate de Let’s Encrypt se află în următoarele locații:
      • Cheie privată: /etc/letsencrypt/live/<domeniul_dvs.>/privkey.pem
      • Certificat: /etc/letsencrypt/live/<domeniul_dvs.>/fullchain.pem
    • Notă importantă: Pentru certificate Let’s Encrypt, setați opțiunea Certificat în Lanț (Chained Certificate) la Yes, conform documentației oficiale OpenLiteSpeed.

Dacă întâmpinați probleme, puteți consulta ghidul Configure OpenLiteSpeed for SSL din documentația oficială OpenLiteSpeed.

După configurarea și salvarea setărilor, faceți clic pe butonul Graceful Restart (Repornire Grațioasă) din colțul dreapta-sus al ecranului pentru a aplica modificările.

Acum ați configurat o Gazdă Virtuală cu un Ascultător (Listener) și ați activat criptarea TLS pentru tot traficul către site. După ce configurați DNS-ul să indice către adresa IP publică a serverului, site-ul dvs. va fi accesibil la domeniul specificat.

Activează HTTP/3 prin QUIC

Notă: OpenLiteSpeed este unul dintre primele servere open-source care integrează protocolul HTTP/3 prin intermediul Protocolului QUIC (Quick UDP Internet Connections).

Pentru a activa HTTP/3/QUIC:

  1. Configurați SSL/TLS pentru domeniul dvs. și adăugați certificatul și cheia prin Panoul de Administrare (vezi Pasul 6 pentru instrucțiuni).
  2. Permiteți traficul UDP pe portul 443 al serverului, rulând comanda:
sudo ufw allow 443/udp

Concluzie
În acest tutorial, ați configurat un server de baze de date MariaDB și un server web OpenLiteSpeed, capabil să deservească aplicații PHP cu versiunea specificată. Acum puteți găzdui diverse aplicații și framework-uri PHP, precum WordPressLaravel și Joomla, pe serverul dvs.

Etichete: , ,