Ako nainštalovať LOMP Stack (OpenLiteSpeed, MySQL a PHP) na Ubuntu 24.04


Tento návod existuje pre tieto verzie OS

  • Ubuntu 24.04 (Noble Numbat)
  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)
  • Ubuntu 18.04 (Bionic Beaver)

Na tejto stránke

  1. Predpoklady
  2. Krok 1 - Nakonfigurujte bránu firewall
  3. Krok 2 - Nainštalujte OpenLiteSpeed

    1. Vytvorte heslo správcu
  4. Krok 3 - Nainštalujte MySQL
  5. Krok 4 - Nainštalujte PHP
  6. Krok 5 – Nakonfigurujte MySQL
  7. Krok 6 – Nakonfigurujte OpenLiteSpeed

    1. Prepnite port HTTP späť na 80
  8. Krok 7 – Nakonfigurujte PHP

    1. Reštartujte PHP
  9. Krok 8 - Vytvorte VirtualHost
  10. Krok 9 - Nainštalujte SSL
  11. Krok 10 - Testovacie miesto
  12. Záver

OpenLiteSpeed je odľahčená a open source verzia servera LiteSpeed vyvinutá spoločnosťou LiteSpeed Technologies. Podporuje pravidlá Apache Rewrite, HTTP/2 a HTTP/3 a protokoly TLS v1.3 a QUIC. Dodáva sa s administračným panelom založeným na WebGUI, čím sa líši od ostatných serverov a ľahšie sa spravuje.

LOMP Stack je skratka pre Linux, OpenLiteSpeed, MySQL/MariaDB a PHP. Servery Litespeed sú známe svojou rýchlosťou, najmä s PHP, ktoré sa integruje pomocou LiteSpeed Server Application Programming Interface (LSAPI). Interpret LiteSpeed PHP (LSPHP) obsluhuje dynamické stránky PHP cez LSAPI.

Tento tutoriál vám ukáže, ako nainštalovať server OpenLiteSpeed na Ubuntu 24.04.

Predpoklady

    Server so systémom Ubuntu 24.04.

    Používateľ bez oprávnenia root s oprávneniami sudo.

    Plne kvalifikovaný názov domény (FQDN) ako example.com smerujúci na server.

    Uistite sa, že je všetko aktualizované.

    $ sudo apt update
    $ sudo apt upgrade
    

    Niekoľko balíkov, ktoré váš systém potrebuje.

    $ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -y
    

    Niektoré z týchto balíkov už môžu byť vo vašom systéme nainštalované.

Krok 1 - Nakonfigurujte bránu firewall

Prvým krokom je konfigurácia brány firewall. Debian sa štandardne dodáva s ufw (Uncomplicated Firewall).

Skontrolujte, či je spustený firewall.

$ sudo ufw status

Dostanete nasledujúci výstup.

Status: inactive

Povoľte port SSH, aby firewall pri jeho povolení neprerušil aktuálne pripojenie.

$ sudo ufw allow OpenSSH

Povoliť aj porty HTTP a HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

Otvorené porty súvisiace s Openlitespeed.

$ sudo ufw allow 7080/tcp

Povoľte bránu firewall

$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Znova skontrolujte stav brány firewall.

$ sudo ufw status

Mali by ste vidieť podobný výstup.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
7080/tcp                   ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
7080/tcp (v6)              ALLOW       Anywhere (v6)

Krok 2 - Nainštalujte OpenLiteSpeed

OpenLiteSpeed nainštalujeme kompiláciou zo zdrojového kódu. Stiahnite si súbor zdrojového kódu OpenLiteSpeed. Odkaz na najnovší súbor zdrojového kódu môžete získať z oficiálnej stránky na stiahnutie OpenLiteSpeed. Verzia 1.7.19 je aktuálna dostupná stabilná verzia.

$ wget https://openlitespeed.org/packages/openlitespeed-1.7.19.src.tgz

Extrahujte súbor.

$ tar -zxf openlitespeed-*.tgz

Prepnite sa do extrahovaného adresára.

$ cd openlitespeed-1.7.19

Zostavte serverový balík.

$ sudo ./build.sh

Možno budete musieť počkať dobrých 5-10 minút, kým sa proces dokončí. Ignorujte všetky upozornenia, ktoré dostanete počas procesu. Po dokončení dostanete nasledujúci výstup.

...............
[100%] Linking CXX shared library modpagespeed.so
/usr/bin/ld: warning: 140.x25519-asm-x86_64.o.o: missing .note.GNU-stack section implies executable stack
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
[100%] Built target modpagespeed
Start to pack files.
-e Building finished, please run ./install.sh for installation.
-e You may want to update the ols.conf to change the settings before installation.
-e Enjoy.

Po dokončení procesu otvorte súbor ols.conf na úpravu.

$ sudo nano ols.conf

Upravte súbor, ako je uvedené nižšie.

#If you want to change the default values, please update this file.
#

SERVERROOT=/usr/local/lsws
OPENLSWS_USER=nobody
OPENLSWS_GROUP=nobody
OPENLSWS_ADMIN=navjot
[email 
OPENLSWS_ADMINSSL=yes
OPENLSWS_ADMINPORT=7080
USE_LSPHP7=yes
DEFAULT_TMP_DIR=/tmp/lshttpd
PID_FILE=/tmp/lshttpd/lshttpd.pid
OPENLSWS_EXAMPLEPORT=8088

#You can set password here
#OPENLSWS_PASSWORD=

Nepridávajte sem svoje heslo. Heslo nastavíme neskôr pomocou príkazového riadku. Po dokončení uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y.

Teraz, keď je OpenLiteSpeed vytvorený, dovoľte nám ho nainštalovať.

$ sudo ./install.sh

Inštalačný skript nainštaluje a aktivuje službu lsws pre server. Po dokončení dostanete nasledujúci výstup.

Updating webcache manager, please waiting ...
Downloading latest shared code tar file...
Checking tar file md5...
Removing existing shared code directory...
Extracting downloaded shared code...
Removing local shared code tar file...
Updating lscmctl script...
Done!

-e Installation finished, Enjoy!

-e Your webAdmin password is kXjWTl5j, written to file /usr/local/lsws/adminpasswd.

Spustite server OpenLiteSpeed.

$ sudo systemctl start lsws

Skontrolujte stav služby.

$ sudo systemctl status lsws
? lshttpd.service - OpenLiteSpeed HTTP Server
     Loaded: loaded (/usr/lib/systemd/system/lshttpd.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-06-02 12:58:44 UTC; 3s ago
    Process: 52583 ExecStart=/usr/local/lsws/bin/lswsctrl start (code=exited, status=0/SUCCESS)
   Main PID: 52604 (litespeed)
     CGroup: /system.slice/lshttpd.service
             ??52604 "openlitespeed (lshttpd - main)"
             ??52610 "openlitespeed (lscgid)"
             ??52623 "openlitespeed (lshttpd - #01)"
             ??52624 lsphp

Jun 02 12:58:42 lompserver systemd[1]: Starting lshttpd.service - OpenLiteSpeed HTTP Server...
Jun 02 12:58:42 lompserver lswsctrl[52583]: [OK] litespeed: pid=52604.
Jun 02 12:58:44 lompserver systemd[1]: Started lshttpd.service - OpenLiteSpeed HTTP Server.

Skontrolujte verziu nainštalovaného servera.

$ /usr/local/lsws/bin/lshttpd -v
LiteSpeed/1.7.19 Open (BUILD built: Tue Apr 16 15:14:26 UTC 2024) 
        module versions:
        lsquic 3.3.2
        modgzip 1.1
        cache 1.66
        mod_security 1.4 (with libmodsecurity v3.0.12)

Vytvorte heslo správcu

Môžete použiť heslo správcu zadané počas procesu inštalácie. Mali by ste si však vytvoriť svoj vlastný resetovaním. Spustite skript na obnovenie hesla.

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

Dostanete nasledujúci výstup. Vyberte si používateľské meno a nastavte silné heslo.

Please specify the user name of administrator.
This is the user name required to login the administration Web interface.

User name [admin]: navjot

Please specify the administrator's password.
This is the password required to login the administration Web interface.

Password: 
Retype password: 
Administrator's username/password is updated successfully!

Teraz môžete použiť nové heslo správcu.

Otvorte http://:7080 pre prístup k administračnému panelu OpenLiteSpeed. Pri prvom prihlásení vás prehliadač upozorní, že vaše pripojenie nie je súkromné. Kliknite na Rozšírené a kliknite na „Prijať riziko a pokračovať“ (v prípade Firefoxu) alebo „Pokračovať na (nebezpečné)“ (v prípade prehliadača Chromium). Varovanie sa vám už nezobrazí.

Mali by ste vidieť prihlasovaciu stránku.

Zadajte prihlasovacie údaje, ktoré ste nastavili predtým, a pokračujte stlačením tlačidla Prihlásiť sa.

Dostanete nasledujúcu obrazovku.

Krok 3 - Nainštalujte MySQL

Pred pokračovaním v inštalácii MySQL musíme aktualizovať úložisko LiteSpeed. Úložisko Litespeed pridané cez inštalačný program nefunguje správne.

Otvorte súbor /etc/apt/sources.list.d/lst_debian_repo.list na úpravu.

$ sudo nano /etc/apt/sources.list.d/lst_debian_repo.list

Zmeňte obsah súboru pridaním názvu vydania Ubuntu 24.04 (noble) do adresy URL úložiska.

deb http://rpms.litespeedtech.com/debian/ noble main

Po dokončení uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y.

Nainštalujte server MySQL.

$ sudo apt install mysql-server

Služba MySQL sa automaticky spustí a spustí po inštalácii.

Skontrolujte stav služby.

$ sudo systemctl status mysql

Dostanete nasledujúci výstup.

? mysql.service - MySQL Community Server
     Loaded: loaded (/usr/lib/systemd/system/mysql.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-06-02 13:42:12 UTC; 8min ago
    Process: 57889 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
   Main PID: 57898 (mysqld)
     Status: "Server is operational"
      Tasks: 37 (limit: 2263)
     Memory: 370.6M (peak: 386.9M)
        CPU: 6.762s
     CGroup: /system.slice/mysql.service
             ??57898 /usr/sbin/mysqld

Jun 02 13:42:11 lompserver systemd[1]: Starting mysql.service - MySQL Community Server...

Spustite bezpečnostný skript MySQL.

$ sudo mysql_secure_installation

Zobrazí sa výzva na inštaláciu Súčasť overenia hesla. Pokračujte stlačením Y.

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

Ďalej sa zobrazí výzva na výber sily hesla. Vyberte 2 pre Silný a pokračujte.

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2

Inštalácia MySQL od vás nebude žiadať nastavenie rootovského hesla, pretože predvolený typ autentifikácie je auth_socket, ktorý závisí od autentifikácie vášho systému Linux. Neskôr to však môžete zmeniť.

Skipping password set for root as authentication with auth_socket is used by default.
If you would like to use password authentication instead, this can be done with the "ALTER_USER" command.
See https://dev.mysql.com/doc/refman/8.0/en/alter-user.html#alter-user-password-management for more information.

Ďalej sa vás spýtajú určité otázky na zlepšenie zabezpečenia MySQL. Ak chcete odstrániť anonymných používateľov, zakázať vzdialené prihlásenia root, odstrániť testovaciu databázu a znova načítať tabuľky privilégií, zadajte Y.

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) : y   
Success.


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? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL 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? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done!

Do shellu MySQL môžete vstúpiť zadaním sudo mysql na príkazovom riadku.

Krok 4 - Nainštalujte PHP

Keďže sme náš balík zostavili zo zdroja, kompiluje a zostavuje starú verziu PHP, ktorá sa neodporúča používať. Môžete to skontrolovať pomocou nasledujúceho príkazu.

$ /usr/local/lsws/fcgi-bin/lsphp -v
PHP 5.6.40 (litespeed) (built: May 10 2023 23:03:31)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

Preto musíme zostaviť a nainštalovať najnovšiu verziu PHP. Ale predtým, ako budeme pokračovať, musíme nainštalovať nástroje na zostavovanie.

$ sudo apt install build-essential autoconf libtool bison re2c pkg-config

Ďalším krokom je inštalácia balíkov vyžadovaných procesom zostavovania PHP.

$ sudo apt install libssl-dev libsqlite3-dev zlib1g-dev libcurl4-openssl-dev libonig-dev libzip-dev libmemcached-dev libreadline-dev libgmp-dev libpng-dev libjpeg-dev libwebp-dev libxpm-dev libicu-dev libfreetype6-dev libxslt-dev libldb-dev libtidy-dev libvips-dev libsodium-dev libavif-dev libldap2-dev libxml2-dev libkrb5-dev libc-client2007e-dev libpq-dev libargon2-1 libargon2-dev libbz2-dev libffi-dev libc-client-dev libpspell-dev flex libgmp3-dev libmcrypt-dev libmhash-dev freetds-dev libmysqlclient-dev libncurses5-dev libpcre3-dev libaspell-dev librecode-dev libsnmp-dev

Ďalej si stiahnite zdrojový kód PHP. Stiahneme si verziu PHP 8.3.7, čo je najnovšia verzia dostupná v čase písania.

$ cd ~
$ wget https://www.php.net/distributions/php-8.3.7.tar.gz

Extrahujte súbory.

$ tar -xzf php-8.3.7.tar.gz

Prejdite do prevzatého adresára.

$ cd php-8.3.7

Potom spustite konfiguračný skript s nasledujúcimi možnosťami. Možnosť --enable-litespeed je nevyhnutná.

$ sudo ./configure --prefix=/usr/local/lsws/lsphp83 --enable-bcmath --enable-calendar --enable-exif --enable-ftp --enable-gd --enable-intl --enable-mbregex --enable-mbstring --enable-mysqlnd --enable-opcache --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --with-avif --with-curl --with-ffi --with-freetype --with-gettext --with-gmp --with-imap --with-imap-ssl --with-jpeg --with-kerberos --with-libxml --with-ldap  --with-mysqli --with-mysql-sock=/run/mysqld/mysqld.sock --with-openssl --with-password-argon2 --with-pdo-mysql=mysqlnd --with-pdo-pgsql=/usr/bin/pg_config --with-pear --with-pspell --with-readline --with-sodium --with-tidy --with-webp --with-xpm --with-xsl --with-zip --with-zlib --enable-litespeed

Po dokončení skriptu by ste mali dostať nasledujúci výstup.

+--------------------------------------------------------------------+
| License:                                                           |
| This software is subject to the PHP License, available in this     |
| distribution in the file LICENSE. By continuing this installation  |
| process, you are bound by the terms of this license agreement.     |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point.                            |
+--------------------------------------------------------------------+

Thank you for using PHP.

Zostavte zdroj.

$ sudo make -j $(nproc)

Po dokončení dostanete podobný výstup.

Generating phar.php
Generating phar.phar
PEAR package PHP_Archive not installed: generated phar will require PHP's phar extension be enabled.
directorytreeiterator.inc
phar.inc
invertedregexiterator.inc
directorygraphiterator.inc
pharcommand.inc
clicommand.inc

Build complete.
Don't forget to run 'make test'.

Po dokončení spustite nasledujúci príkaz a skúste skontrolovať verziu.

$ ./sapi/litespeed/php -v
PHP 8.3.7 (litespeed) (built: Jun  3 2024 05:28:43)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies

Nainštalujte PHP.

$ sudo make install

Dostanete nasledujúci výstup.

Installing shared extensions:     /usr/local/lsws/lsphp83/lib/php/extensions/no-debug-non-zts-20230831/
Installing PHP CLI binary:        /usr/local/lsws/lsphp83/bin/
Installing PHP CLI man page:      /usr/local/lsws/lsphp83/php/man/man1/
Installing PHP LiteSpeed binary:  /usr/local/lsws/lsphp83/bin/
Installing phpdbg binary:         /usr/local/lsws/lsphp83/bin/
Installing phpdbg man page:       /usr/local/lsws/lsphp83/php/man/man1/
Installing PHP CGI binary:        /usr/local/lsws/lsphp83/bin/
Installing PHP CGI man page:      /usr/local/lsws/lsphp83/php/man/man1/
Installing build environment:     /usr/local/lsws/lsphp83/lib/php/build/
Installing header files:          /usr/local/lsws/lsphp83/include/php/
Installing helper programs:       /usr/local/lsws/lsphp83/bin/
  program: phpize
  program: php-config
Installing man pages:             /usr/local/lsws/lsphp83/php/man/man1/
  page: phpize.1
  page: php-config.1
Installing PEAR environment:      /usr/local/lsws/lsphp83/lib/php/
[PEAR] Archive_Tar    - installed: 1.4.14
[PEAR] Console_Getopt - installed: 1.4.3
[PEAR] Structures_Graph- installed: 1.1.1
[PEAR] XML_Util       - installed: 1.4.5
warning: pear/PEAR dependency package "pear/Archive_Tar" installed version 1.4.14 is not the recommended version 1.4.4
[PEAR] PEAR           - installed: 1.10.15
Wrote PEAR system config file at: /usr/local/lsws/lsphp83/etc/pear.conf
You may want to add: /usr/local/lsws/lsphp83/lib/php to your php.ini include_path
Installing PDO headers:           /usr/local/lsws/lsphp83/include/php/ext/pdo/

Skontrolujte inštaláciu PHP. V adresári /usr/local/lsws/lsphp83/bin sú k dispozícii dva binárne súbory PHP. Jeden je normálny php, čo je verzia pre príkazový riadok, a druhý je verzia Litespeed lsphp. Druhý je ten, ktorý budeme používať.

$ /usr/local/lsws/lsphp83/bin/lsphp -v
PHP 8.3.7 (litespeed) (built: Jun  3 2024 05:28:43)
Copyright (c) The PHP Group
Zend Engine v4.3.7, Copyright (c) Zend Technologies

Môžete skontrolovať zoznam povolených modulov PHP.

$ /usr/local/lsws/lsphp83/bin/php --modules
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
imap
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_pgsql
pdo_sqlite
Phar
posix
pspell
random
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlwriter
xsl
zip
zlib

[Zend Modules]

Skopírujte súbor php.ini-production z inštalačného priečinka do priečinka /usr/local/lsws/lsphp83/lib.

$ sudo cp php.ini-production /usr/local/lsws/lsphp83/lib/php.ini

Neskôr nakonfigurujeme OpenLiteSpeed na prácu s PHP.

Na úpravu otvorte súbor php.ini.

$ sudo nano /usr/local/lsws/lsphp83/lib/php.ini

Nájdite premennú include_path a zmeňte jej hodnotu, ako je uvedené nižšie.

$ ;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
include_path = "/usr/local/lsws/lsphp83/lib/php"

Po dokončení uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y.

Krok 5 – Nakonfigurujte MySQL

Prihláste sa do shellu MySQL.

$ sudo mysql

Vytvorte testovaciu databázu. Nahraďte testdb príslušným názvom databázy podľa vášho výberu.

mysql> CREATE DATABASE testdb;

Vytvorte testovacieho používateľa. Nahraďte testuser príslušným užívateľským menom. Nahraďte Your_Password123 silným heslom.

mysql> CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'Your_Password123';

Udeľte používateľovi všetky privilégiá k databáze.

mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';

Vyprázdniť používateľské práva.

mysql> FLUSH PRIVILEGES;

Ukončite shell MySQL.

mysql> exit

Krok 6 – Nakonfigurujte OpenLiteSpeed

Prepnite port HTTP späť na 80

Dovoľte nám zmeniť predvolený HTTP port na 80. Prihláste sa do svojho administračného panela na http://:7080 s prihlasovacími údajmi, ktoré ste práve vytvorili.

Navštívte sekciu Poslucháči zľava. Uvidíte predvolené prijímače s portom 8080.

Kliknutím na tlačidlo Zobraziť zobrazíte podrobnú konfiguráciu. Na ďalšej stránke v časti Predvolené nastavenie poslucháča > Všeobecné kliknite na ikonu Upraviť a zmeňte port z 8080 na 80.

Kliknite na Save a reštartujte server kliknutím na tlačidlo Graceful restart.

Otvorte URL http:// vo svojom prehliadači a mali by ste dostať nasledujúcu stránku.

Krok 7 – Nakonfigurujte PHP

V tomto kroku musíme priradiť našu kópiu PHP 8.3 k serveru.

Kliknite na sekciu Konfigurácia servera vľavo a potom na kartu Externá aplikácia. Uvidíte existujúcu aplikáciu LiteSpeed pre PHP. Urobíme v ňom nejaké úpravy.

Kliknutím na tlačidlo Upraviť upravíte aplikáciu PHP.

Ďalej prispôsobte konfiguráciu, ako je uvedené nižšie. Všetky ostatné polia nechajte prázdne.

Name: lsphp
Address: uds://tmp/lshttpd/lsphp.sock
Max Connections: 35
Environment: PHP_LSAPI_MAX_REQUESTS=500
             PHP_LSAPI_CHILDREN=35
             LSAPI_AVOID_FORK=200M
Initial Request Timeout (secs): 60
Retry Timeout : 0
Persistent Connection: Yes
Response Buffering: no
Start By Server: Yes(Through CGI Daemon)
Command: lsphp83/bin/lsphp
Back Log: 100
Instances: 1
Priority: 0
Memory Soft Limit (bytes): 2047M
Memory Hard Limit (bytes): 2047M
Process Soft Limit: 1400
Process Hard Limit: 1500

Po dokončení kliknite na tlačidlo Uložiť.

Teraz, keď sme vytvorili našu vlastnú aplikáciu PHP 8.3, musíme povedať serveru, aby ju začal používať. Keďže sme upravili predvolený zoznam, je už nakonfigurovaný. Reštartujte server kliknutím na tlačidlo Graceful restart.

Ak chcete otestovať, či bolo vaše PHP prepnuté správne, navštívte vo svojom prehliadači http:///phpinfo.php.

Reštartujte PHP

Ak na OpenLiteSpeed upravíte php.ini alebo nainštalujete nový modul PHP, reštartovanie servera neukáže zmeny. Na to budete musieť reštartovať proces PHP. Najprv budete musieť nájsť ID procesov pre proces lsphp.

$ ps aux | grep lsphp
nobody    120093  0.0  0.8 123772 32920 ?        S    06:35   0:00 lsphp
nobody    120111  0.0  0.4 123772 18980 ?        Ss   06:38   0:00 lsphp
navjot    120139  0.0  0.0   6544  2304 pts/0    S+   06:44   0:00 grep --color=auto lsphp

Manuálne zabite procesy lsphp.

$ sudo kill -9 120093
$ sudo kill -9 120111

Reštartujte server.

$ sudo systemctl restart lsws

Krok 8 - Vytvorte VirtualHost

Najprv musíme vytvoriť adresáre pre nášho virtuálneho hostiteľa.

$ sudo mkdir /usr/local/lsws/example.com/{html,logs} -p

Adresár html bude obsahovať verejné súbory a adresár logs bude obsahovať protokoly servera.

Potom otvorte správcovskú konzolu, prejdite vľavo do sekcie Virtuálni hostitelia a kliknite na tlačidlo Pridať.

Doplňte hodnoty podľa špecifikácie

Virtual Host Name: example.com
Virtual Host Root: $SERVER_ROOT/example.com/
Config File: $SERVER_ROOT/conf/vhosts/$VH_NAME/vhconf.conf
Follow Symbolic Link: Yes
Enable Scripts/ExtApps: Yes
Restrained: Yes
External App Set UID Mode: Server UID

Po dokončení kliknite na tlačidlo Uložiť. Zobrazí sa nasledujúca chyba, pretože konfiguračný súbor zatiaľ neexistuje. Kliknutím na odkaz vytvoríte konfiguračný súbor.

Opätovným kliknutím na tlačidlo Uložiť dokončíte vytváranie virtuálneho hostiteľa.

Po vytvorení virtuálneho hostiteľa prejdite na Virtual Hosts -> Choose Virtual Host(example.com) -> General a upravte konfiguráciu podľa pokynov.

Document Root: $VH_ROOT/html/
Domain Name: example.com
Enable GZIP Compression: Yes
Enable Brotli Compression: Yes

Po dokončení kliknite na tlačidlo Uložiť. Ďalej musíme nastaviť indexové súbory. Kliknite na tlačidlo Upraviť pri Indexových súboroch pod sekciou Všeobecné. Nastavte nasledujúce možnosti.

Use Server Index Files: No
Index files: index.php, index.html, index.htm
Auto Index: No

Po dokončení kliknite na tlačidlo Uložiť. Ďalej musíme vybrať Protokoly. Prejdite do sekcie Denník, kliknite na položku Upraviť proti Denníku virtuálneho hostiteľa a vyplňte nasledujúce hodnoty. Ostatné nastavenia ponechajte nezmenené.

Use Server’s Log: Yes
File Name: $VH_ROOT/logs/error.log
Log Level: ERROR
Rolling Size (bytes): 10M
Keep Days: 30
Compress Archive: Not Set

Ak používate vývojový počítač, môžete si vybrať Úroveň denníka ako LADENIE.

Kliknite na tlačidlo Uložiť a potom kliknite na znamienko plus v sekcii Denník prístupov a pridajte novú položku. Vyplňte nasledujúce hodnoty.

Log Control: Own Log File
File Name: $VH_ROOT/logs/access.log
Piped Logger: Not Set
Log Format: Not Set
Log Headers: Not Set
Rolling Size (bytes): 10M
Keep Days: 30
Compress Archive: Not Set
Bytes log: Not Set

Po dokončení kliknite na tlačidlo Uložiť. Ďalej musíme nakonfigurovať Ovládanie prístupu v sekcii Zabezpečenie. Nastavte nasledujúce hodnoty.

Allowed List: *
Denied List: Not set

Po dokončení kliknite na tlačidlo Uložiť. Ďalej musíme nastaviť Definíciu obslužného programu skriptu. Kliknutím na znamienko plus (+) pridáte novú definíciu. Nastavte nasledujúce hodnoty.

Suffixes: php
Handler Type: LiteSpeed SAPI
Handler Name: [Server Level]: lsphp

Po dokončení kliknite na tlačidlo Uložiť. Ďalej musíme nastaviť Rewrite Control v sekcii Rewrite. Nastavte nasledujúce hodnoty.

Enable Rewrite: Yes
Auto Load from .htaccess: Yes
Log Level: Not Set

Po dokončení kliknite na tlačidlo Uložiť. A nakoniec musíme nastaviť poslucháčov. Prejdite do sekcie Poslucháči a kliknite na tlačidlo Zobraziť v ponuke Predvolený poslucháč. Potom kliknite na tlačidlo Pridať proti mapovaniu virtuálneho hostiteľa, čím pridáte nové mapovanie a nastavíte nasledujúce hodnoty.

Virtual Host: example.com
Domains: example.com

Po dokončení kliknite na tlačidlo Uložiť. Teraz kliknite na tlačidlo Graceful restart, aby ste použili všetky vyššie uvedené zmeny a reštartovali server.

Krok 9 - Nainštalujte SSL

Nastavenie SSL v OpenLiteSpeed vyžaduje, aby sme nastavili dva certifikáty. Certifikát s vlastným podpisom pre celý server a server Let's Encrypt špecifický pre lokalitu.

Administračný panel sa už dodáva s predinštalovaným certifikátom s vlastným podpisom, ktorý je dostupný v adresári /usr/local/lsws/admin/conf.

Najprv vytvorte certifikát s vlastným podpisom pre celý server.

$ cd ~
$ openssl req -x509 -days 365 -newkey rsa:4096 -keyout key.pem -out cert.pem -nodes

Získate podobný výstup.

-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:example.com
Email Address []:[email 

Môžete stlačiť enter cez všetky polia a nechať ich prázdne. Do poľa Common name a svojej e-mailovej adresy zadajte svoju doménu.

Vytvorte adresár pre certifikáty s vlastným podpisom.

$ sudo mkdir /usr/local/lsws/certs

Skopírujte certifikát do adresára /usr/local/lsws/certs.

$ sudo mv *.pem /usr/local/lsws/certs

Na generovanie bezplatných certifikátov SSL, ktoré ponúka Let's Encrypt, musíme nainštalovať Certbot.

Certbot môžete nainštalovať pomocou úložiska Debianu alebo získať najnovšiu verziu pomocou nástroja Snapd. Budeme používať verziu Snapd. Ubuntu 24.04 sa dodáva s predinštalovaným Snapd.

Spustite nasledujúce príkazy, aby ste sa uistili, že vaša verzia Snapd je aktuálna.

$ sudo snap install core
$ sudo snap refresh core

Ak chcete nainštalovať Certbot, zadajte nasledujúci príkaz.

$ sudo snap install --classic certbot

Pomocou nasledujúceho príkazu zaistite spustenie príkazu Certbot vytvorením symbolického odkazu na adresár /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Overte inštaláciu.

$ certbot --version
certbot 2.10.0

Spustite nasledujúci príkaz na vygenerovanie certifikátu SSL.

Získajte certifikát SSL. Adresár webroot je nastavený na verejný adresár HTML nakonfigurovaný skôr.

$ sudo certbot certonly --webroot -w /usr/local/lsws/example.com/html/ --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email  -d example.com

Vygenerujte certifikát Diffie-Hellman group.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Skontrolujte službu plánovača obnovy Certbot.

$ sudo systemctl list-timers

Ako jednu zo služieb naplánovaných na spustenie nájdete snap.certbot.renew.service.

NEXT                           LEFT LAST                              PASSED UNIT                      ACTIVATES                       
Mon 2024-06-03 07:20:00 UTC    5min Mon 2024-06-03 07:10:02 UTC 4min 11s ago sysstat-collect.timer     sysstat-collect.service
Mon 2024-06-03 08:29:00 UTC    1h 14min -                                  - snap.certbot.renew.timer  snap.certbot.renew.service
Mon 2024-06-03 08:50:32 UTC    1h 36min Mon 2024-06-03 07:04:04 UTC    10min ago fwupd-refresh.timer   fwupd-refresh.service

Ak chcete skontrolovať, či obnovenie SSL funguje správne, vykonajte proces nasucho.

$ sudo certbot renew --dry-run

Ak nevidíte žiadne chyby, všetko je nastavené. Váš certifikát sa automaticky obnoví.

Teraz otvorte správcovskú konzolu, prejdite na Poslucháči >> Pridať nového poslucháča a pridajte nasledujúce hodnoty.

Listener Name: SSL
IP Address: ANY IPv4
Port: 443
Secure: Yes

Po dokončení kliknite na tlačidlo Uložiť. Ďalej prejdite do sekcie Mapovanie virtuálnych hostiteľov v časti SSL Listener kliknutím na SSL, kliknutím na tlačidlo Pridať a vyplnením nasledujúcich hodnôt.

Virtual Host: example.com
Domains: example.com

Po dokončení kliknite na tlačidlo Uložiť. Ďalej prejdite na Poslucháči >> Prijímač SSL >> Karta SSL >>Súkromný kľúč a certifikát SSL (tlačidlo Upraviť) a vyplňte nasledujúce hodnoty pre certifikát s vlastným podpisom, ktorý sme predtým vytvorili.

Private Key File: $SERVER_ROOT/certs/key.pem
Certificate File: $SERVER_ROOT/certs/cert.pem
Chained Certificate: Yes

Po dokončení kliknite na tlačidlo Uložiť. Ďalej prejdite na Poslucháči >> Prijímač SSL >> Karta SSL >> Protokol SSL (tlačidlo Upraviť) a vyplňte nasledujúce hodnoty pre protokol SSL a podrobnosti o šifre.

Protocol Version: TLS v1.2 TLS v1.3
Ciphers: ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305
Enable ECDH Key Exchange: Yes
Enable DH Key Exchange: Yes
DH Parameter: /etc/ssl/certs/dhparam.pem

Po dokončení kliknite na tlačidlo Uložiť. Ďalej prejdite na Virtual Hosts >> example.com >> Karta SSL >> Súkromný kľúč a certifikát SSL (tlačidlo Upraviť) a vyplňte nasledujúce hodnoty pomocou certifikátu Let's Encrypt.

Private Key File: /etc/letsencrypt/live/example.com/privkey.pem
Certificate File: /etc/letsencrypt/live/example.com/fullchain.pem
Chained Certificate: Yes

Po dokončení kliknite na tlačidlo Uložiť. Ďalej prejdite na Virtual Hosts >> example.com >> Karta SSL >> Zošívanie OCSP (tlačidlo Upraviť) a vyplňte nasledujúce hodnoty, aby ste povolili zošívanie OCSP.

Enable OCSP Stapling: Yes
OCSP Response Max Age(Secs): 300
OCSP Responder: http://r3.o.lencr.org

Po dokončení kliknite na tlačidlo Uložiť. Ďalej prejdite na Virtual Hosts >> example.com >> Karta SSL >> Zabezpečenie (tlačidlo Upraviť) a vyplňte nasledujúce hodnoty, aby ste povolili protokol HTTP3/QUIC.

ALPN: Enable HTTP/2 and HTTP/3
Enable HTTP3/QUIC: Yes

Nepotrebujeme povoliť ďalšie možnosti, pretože sú predvolene zapnuté.

Po dokončení kliknite na tlačidlo Uložiť.

Reštartujte server kliknutím na tlačidlo Graceful restart.

Krok 10 - Testovacie miesto

Vytvorte testovací súbor v adresári html.

$ sudo nano /usr/local/lsws/example.com/html/index.php

Vložte nasledujúci kód do editora Nano.

<html>
<head>
    <h2>OpenLiteSpeed Server Install Test</h2>
</head>
    <body>
    <?php echo '<p>Hello,</p>';

    // Define PHP variables for the MySQL connection.
    $servername = "localhost";
    $username = "testuser";
    $password = "Your_Password123";

    // Create a MySQL connection.
    $conn = mysqli_connect($servername, $username, $password);

    // Report if the connection fails or is successful.
    if (!$conn) {
        exit('<p>Your connection has failed.<p>' .  mysqli_connect_error());
    }
    echo '<p>You have connected successfully.</p>';
    ?>
</body>
</html>

Uložte súbor stlačením Ctrl + X a po zobrazení výzvy zadajte Y. Otvorte v prehliadači adresu URL https://example.com a mala by sa zobraziť nasledujúca stránka.

Testovacia stránka je plne funkčná. Server môžete začať používať na poskytovanie dynamických webových stránok a aplikácií PHP.

Záver

Toto uzatvára náš návod na inštaláciu LOMP Stack (OpenLiteSpeed, MySQL a PHP) na server Ubuntu 24.04. Ak máte nejaké otázky, napíšte ich do komentárov nižšie.