Ինչպես տեղադրել LOMP Stack-ը (OpenLiteSpeed, MySQL և PHP) Ubuntu 24.04-ում


Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար

  • Ubuntu 24.04 (Noble Numbat)
  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Կիզակետային Fossa)
  • Ubuntu 18.04 (Bionic Beaver)

Այս էջում

  1. Նախադրյալներ
  2. Քայլ 1 - Կարգավորել Firewall-ը
  3. Քայլ 2 - Տեղադրեք OpenLiteSpeed-ը

    1. Ստեղծեք ադմինիստրատորի գաղտնաբառը
  4. Քայլ 3 - Տեղադրեք MySQL
  5. Քայլ 4 - Տեղադրեք PHP
  6. Քայլ 5 - Կարգավորեք MySQL-ը
  7. Քայլ 6 - Կարգավորեք OpenLiteSpeed-ը

    1. Վերադարձեք HTTP պորտը 80-ի
  8. Քայլ 7 - Կարգավորեք PHP-ն

    1. Վերագործարկեք PHP-ն
  9. Քայլ 8 - Ստեղծեք VirtualHost
  10. Քայլ 9 - Տեղադրեք SSL-ը
  11. Քայլ 10 - Փորձարկման կայք
  12. Եզրակացություն

OpenLiteSpeed-ը LiteSpeed սերվերի թեթև և բաց կոդով տարբերակն է, որը մշակվել է LiteSpeed Technologies-ի կողմից: Այն աջակցում է Apache Rewrite կանոնները, HTTP/2 և HTTP/3 և TLS v1.3 և QUIC արձանագրությունները: Այն գալիս է WebGUI-ի վրա հիմնված ադմինիստրատիվ վահանակով, որը տարբերվում է այլ սերվերներից և ավելի հեշտ է կառավարվում:

LOMP Stack-ը Linux-ի, OpenLiteSpeed-ի, MySQL/MariaDB-ի և PHP-ի հապավումն է: Litespeed սերվերները հայտնի են իրենց արագությամբ, հատկապես PHP-ի հետ, որը ինտեգրվում է LiteSpeed Server Application Programming Interface-ի (LSAPI) միջոցով: LiteSpeed PHP (LSPHP) թարգմանիչը սպասարկում է դինամիկ PHP էջեր LSAPI-ի միջոցով:

Այս ձեռնարկը ցույց կտա ձեզ, թե ինչպես տեղադրել OpenLiteSpeed սերվեր Ubuntu 24.04-ում:

Նախադրյալներ

    Ubuntu 24.04-ով աշխատող սերվեր:

    Ոչ արմատային օգտատեր՝ sudo արտոնություններով:

    Լիովին որակավորված տիրույթի անուն (FQDN), ինչպիսին է example.com-ը, որը մատնանշում է սերվերը:

    Համոզվեք, որ ամեն ինչ թարմացվում է:

    $ sudo apt update
    $ sudo apt upgrade
    

    Մի քանի փաթեթներ, որոնք անհրաժեշտ են ձեր համակարգին:

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

    Այս փաթեթներից որոշները կարող են արդեն տեղադրված լինել ձեր համակարգում:

Քայլ 1 - Կարգավորել Firewall-ը

Առաջին քայլը firewall-ի կազմաձևումն է: Debian-ը լռելյայն գալիս է ufw-ով (Uncomplicated Firewall):

Ստուգեք, արդյոք firewall-ը աշխատում է:

$ sudo ufw status

Դուք կստանաք հետևյալ արդյունքը.

Status: inactive

Թույլատրել SSH միացքը, որպեսզի այն միացնելուց հետո firewall-ը չխախտի ընթացիկ կապը:

$ sudo ufw allow OpenSSH

Թույլատրել նաև HTTP և HTTPS պորտերը:

$ sudo ufw allow http
$ sudo ufw allow https

Բացեք Openlitespeed-ի հետ կապված նավահանգիստները:

$ sudo ufw allow 7080/tcp

Միացնել Firewall-ը

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

Կրկին ստուգեք firewall-ի կարգավիճակը:

$ sudo ufw status

Դուք պետք է տեսնեք նմանատիպ արդյունք:

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)

Քայլ 2 - Տեղադրեք OpenLiteSpeed-ը

Մենք կտեղադրենք OpenLiteSpeed-ը՝ կազմելով սկզբնական կոդը: Ներբեռնեք OpenLiteSpeed կոդով ֆայլը: Դուք կարող եք ստանալ վերջին կոդով ֆայլի հղումը OpenLiteSpeed-ի ներբեռնումների պաշտոնական էջից: 1.7.19 տարբերակն առկա կայուն տարբերակն է:

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

Արտահանեք ֆայլը:

$ tar -zxf openlitespeed-*.tgz

Անցեք արդյունահանված գրացուցակին:

$ cd openlitespeed-1.7.19

Կառուցեք սերվերի փաթեթը:

$ sudo ./build.sh

Գործընթացի ավարտին կարող է անհրաժեշտ լինել 5-10 րոպե սպասել: Անտեսեք բոլոր նախազգուշացումները, որոնք ստանում եք գործընթացի ընթացքում: Դուք կստանաք հետևյալ արդյունքը, երբ այն ավարտվի:

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

Գործընթացն ավարտվելուց հետո բացեք ols.conf ֆայլը խմբագրման համար:

$ sudo nano ols.conf

Խմբագրել ֆայլը, ինչպես ցույց է տրված ստորև:

#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=

Մի ավելացրեք ձեր գաղտնաբառը այստեղ: Մենք ավելի ուշ կսահմանենք գաղտնաբառը՝ օգտագործելով հրամանի տողը: Ավարտելուց հետո պահեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ հուշում է:

Այժմ, երբ OpenLiteSpeed-ը ստեղծվել է, եկեք տեղադրենք այն:

$ sudo ./install.sh

Տեղադրիչի սկրիպտը տեղադրում և միացնում է lsws ծառայությունը սերվերի համար: Ավարտելուց հետո դուք կստանաք հետևյալ արդյունքը.

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.

Գործարկեք OpenLiteSpeed սերվերը:

$ sudo systemctl start lsws

Ստուգեք ծառայության կարգավիճակը:

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

Ստուգեք տեղադրված սերվերի տարբերակը:

$ /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)

Ստեղծեք ադմինիստրատորի գաղտնաբառը

Դուք կարող եք օգտագործել տեղադրման ընթացքում տրված ադմինիստրատորի գաղտնաբառը: Այնուամենայնիվ, դուք պետք է ստեղծեք ձեր սեփականը` վերականգնելով այն: Գործարկեք գաղտնաբառի վերակայման սցենարը:

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

Դուք կստանաք հետևյալ արդյունքը. Ընտրեք ձեր օգտվողի անունը և սահմանեք ուժեղ գաղտնաբառ:

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!

Այժմ կարող եք օգտագործել նոր ադմինիստրատորի գաղտնաբառը:

OpenLiteSpeed-ի կառավարման վահանակ մուտք գործելու համար բացեք http://:7080: Ձեր առաջին մուտքի ժամանակ ձեր զննարկիչը կզգուշացնի, որ ձեր կապը մասնավոր չէ: Սեղմեք Ընդլայնված և սեղմեք «Ընդունել ռիսկը և շարունակել» (Firefox-ի դեպքում) կամ «Անցնել (անապահով)» (Chromium-ի վրա հիմնված բրաուզերի դեպքում): Դուք այլևս չեք տեսնի նախազգուշացումը:

Դուք պետք է տեսնեք մուտքի էջը:

Մուտքագրեք ավելի վաղ սահմանած հավատարմագրերը և սեղմեք Մուտք կոճակը՝ շարունակելու համար:

Դուք կստանաք հետևյալ էկրանը.

Քայլ 3 - Տեղադրեք MySQL

Նախքան MySQL-ի տեղադրումը շարունակելը, մենք պետք է թարմացնենք LiteSpeed պահոցը: Տեղադրողի միջոցով ավելացված Litespeed պահոցը ճիշտ չի աշխատում:

Բացեք ֆայլը /etc/apt/sources.list.d/lst_debian_repo.list խմբագրման համար:

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

Փոխեք ֆայլի բովանդակությունը՝ ավելացնելով Ubuntu 24.04 թողարկման անունը (noble) պահեստի URL-ում:

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

Ավարտելուց հետո պահեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ հուշում է:

Տեղադրեք MySQL սերվերը:

$ sudo apt install mysql-server

MySQL ծառայությունն ավտոմատ կերպով մեկնարկվում է և աշխատում է հետտեղադրումից հետո:

Ստուգեք ծառայության կարգավիճակը:

$ sudo systemctl status mysql

Դուք կստանաք հետևյալ արդյունքը.

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

Գործարկեք MySQL անվտանգության սկրիպտը:

$ sudo mysql_secure_installation

Ձեզանից կպահանջվի տեղադրել Վավերացնել գաղտնաբառի բաղադրիչը: Շարունակելու համար սեղմեք 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

Հաջորդը, ձեզ կառաջարկվի ընտրել գաղտնաբառի ուժը: Ընտրեք 2 Ուժեղ և շարունակեք:

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

MySQL-ի տեղադրումը ձեզ չի պահանջում արմատային գաղտնաբառ սահմանել, քանի որ նույնականացման լռելյայն տեսակն է auth_socket, որը կախված է ձեր Linux համակարգի նույնականացումից: Այնուամենայնիվ, դուք կարող եք փոխել այն ավելի ուշ:

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.

Հաջորդը ձեզ որոշակի հարցեր կուղղվեն MySQL անվտանգությունը բարելավելու համար: Մուտքագրեք 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!

Դուք կարող եք մուտք գործել MySQL վահանակ՝ հրամանի տողում մուտքագրելով sudo mysql:

Քայլ 4 - Տեղադրեք PHP

Քանի որ մենք ստեղծել ենք մեր փաթեթը աղբյուրից, այն կազմում և կառուցում է PHP-ի հին տարբերակը, որը խորհուրդ չի տրվում օգտագործել: Դուք կարող եք ստուգել այն հետևյալ հրամանի միջոցով.

$ /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

Հետևաբար, մենք պետք է կառուցենք և տեղադրենք PHP-ի վերջին տարբերակը: Բայց, նախքան շարունակելը, մենք պետք է տեղադրենք կառուցման գործիքները:

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

Հաջորդ քայլը 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

Հաջորդը, ներբեռնեք PHP-ի աղբյուրի կոդը: Մենք կներբեռնենք PHP 8.3.7 տարբերակը, որը գրելու պահին հասանելի վերջին տարբերակն է:

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

Արտահանեք ֆայլերը:

$ tar -xzf php-8.3.7.tar.gz

Անցեք ներբեռնված գրացուցակին:

$ cd php-8.3.7

Հաջորդը, գործարկեք կազմաձևման սցենարը հետևյալ ընտրանքներով. --enable-litespeed տարբերակը կարևոր է:

$ 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

Սցենարն ավարտվելուց հետո դուք պետք է ստանաք հետևյալ արդյունքը:

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

Կազմեք աղբյուրը։

$ sudo make -j $(nproc)

Ավարտելուց հետո դուք կստանաք նմանատիպ արդյունք:

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

Ավարտելուց հետո գործարկեք հետևյալ հրամանը՝ տարբերակը ստուգելու համար:

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

Տեղադրեք PHP.

$ sudo make install

Դուք կստանաք հետևյալ արդյունքը.

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/

Ստուգեք PHP-ի տեղադրումը: /usr/local/lsws/lsphp83/bin գրացուցակում առկա են երկու PHP երկուականներ։ Մեկը սովորական php-ն է, որը հրամանի տողի տարբերակն է, իսկ մյուսը Litespeed տարբերակն է lsphp: Երկրորդն այն մեկն է, որը մենք կօգտագործենք:

$ /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

Դուք կարող եք ստուգել միացված 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]

Պատճենեք php.ini-production տեղադրման թղթապանակից /usr/local/lsws/lsphp83/lib պանակ:

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

Մենք կկարգավորենք OpenLiteSpeed-ը, որպեսզի հետագայում աշխատի PHP-ի հետ:

Բացեք php.ini խմբագրման համար:

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

Գտեք include_path փոփոխականը և փոխեք դրա արժեքը, ինչպես ցույց է տրված ստորև:

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

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

Ավարտելուց հետո պահեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ հուշում է:

Քայլ 5 - Կարգավորեք MySQL-ը

Մուտք գործեք MySQL վահանակ:

$ sudo mysql

Ստեղծեք թեստային տվյալների բազա: Փոխարինեք testdb-ը ձեր ընտրած տվյալների բազայի համապատասխան անունով:

mysql> CREATE DATABASE testdb;

Ստեղծեք թեստային օգտվող: Փոխարինեք testuser-ը համապատասխան օգտվողի անունով: Փոխարինեք Your_Password123-ը ուժեղ գաղտնաբառով:

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

Տվյալների բազայի բոլոր արտոնությունները տրամադրեք օգտագործողին:

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

Լվացեք օգտվողի արտոնությունները:

mysql> FLUSH PRIVILEGES;

Դուրս եկեք MySQL վահանակից:

mysql> exit

Քայլ 6 - Կարգավորեք OpenLiteSpeed-ը

Վերադարձեք HTTP պորտը 80-ի

Եկեք փոխենք լռելյայն HTTP պորտը 80-ի: Մուտք գործեք ձեր կառավարման վահանակ http://:7080 հասցեով՝ հենց նոր ստեղծված հավատարմագրերով:

Այցելեք Լսողների բաժինը ձախից: Դուք կտեսնեք լռելյայն լսողներին 8080 պորտով:

Սեղմեք Դիտել կոճակը՝ մանրամասն կոնֆիգուրացիան տեսնելու համար: Հաջորդ էջում՝ Լսողի լռելյայն > Ընդհանուր էջի տակ, սեղմեք Խմբագրել պատկերակը և փոխեք նավահանգիստը 8080-ից 80: կոդը>.

Սեղմեք Պահպանել և վերագործարկել սերվերը՝ սեղմելով Graceful restart կոճակը:

Ձեր բրաուզերում բացեք http:// URL-ը և պետք է ստանաք հետևյալ էջը:

Քայլ 7 - Կարգավորեք PHP-ն

Այս քայլում մենք պետք է կապենք PHP 8.3-ի մեր պատճենը սերվերի հետ:

Սեղմեք Սերվերի կազմաձևում բաժինը ձախ կողմում, այնուհետև ներդիրում Արտաքին հավելված: Դուք կտեսնեք գոյություն ունեցող LiteSpeed հավելված PHP-ի համար: Մենք որոշ խմբագրումներ կանենք դրանում։

Սեղմեք Խմբագրել կոճակը՝ PHP հավելվածը խմբագրելու համար:

Հաջորդը, համապատասխանեք կազմաձևին, ինչպես ցույց է տրված ստորև: Մնացած բոլոր դաշտերը դատարկ թողեք։

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

Ավարտելուց հետո սեղմեք Պահպանել:

Այժմ, երբ մենք ստեղծել ենք մեր սեփական PHP 8.3 հավելվածը, մենք պետք է ասենք սերվերին, որ սկսի օգտագործել այն: Քանի որ մենք խմբագրել ենք լռելյայն ցանկը, այն արդեն կազմաձևված է: Վերագործարկեք սերվերը` սեղմելով Գեղեցիկ վերագործարկում կոճակը:

Ստուգելու համար, թե արդյոք ձեր PHP-ն ճիշտ է փոխարկվել, այցելեք http:///phpinfo.php ձեր բրաուզերում:

Վերագործարկեք PHP-ն

OpenLiteSpeed-ում, եթե խմբագրեք php.ini-ն կամ տեղադրեք նոր PHP մոդուլ, սերվերի վերագործարկումը փոփոխությունները չի ցուցադրի: Դրա համար անհրաժեշտ կլինի վերագործարկել PHP գործընթացը: Նախ, դուք պետք է գտնեք գործընթացի ID-ները 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

Ձեռքով սպանել lsphp գործընթացները:

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

Վերագործարկեք սերվերը:

$ sudo systemctl restart lsws

Քայլ 8 - Ստեղծեք VirtualHost

Նախ, մենք պետք է դիրեկտորիաներ ստեղծենք մեր վիրտուալ հոսթի համար:

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

html գրացուցակը կպահի հանրային ֆայլերը, իսկ logs գրացուցակը կպարունակի սերվերի տեղեկամատյաններ:

Այնուհետև բացեք Ադմինիստրատորի վահանակը, ձախից մուտք գործեք Վիրտուալ հյուրընկալողներ բաժին և սեղմեք Ավելացնել կոճակը:

Լրացրեք արժեքները, ինչպես նշված է

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

Ավարտելուց հետո սեղմեք Պահպանել կոճակը: Դուք կստանաք հետևյալ սխալը, քանի որ կազմաձևման ֆայլն այս պահին գոյություն չունի: Կտտացրեք հղմանը, կազմաձևման ֆայլը ստեղծելու համար:

Կրկին սեղմեք Պահպանել կոճակը՝ Վիրտուալ հոսթի ստեղծումն ավարտելու համար:

Վիրտուալ հոսթինգը ստեղծելուց հետո գնացեք Վիրտուալ հոսթ -> Ընտրեք Վիրտուալ հոսթ(example.com) -> Ընդհանուր և փոխեք կազմաձևը, ինչպես տրված է:

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

Ավարտելուց հետո սեղմեք Պահել կոճակը: Հաջորդը, մենք պետք է կարգավորենք ինդեքսային ֆայլերը: Սեղմեք խմբագրել կոճակը Ինդեքսի ֆայլերի դեմ Ընդհանուր բաժնի տակ: Սահմանեք հետևյալ ընտրանքները.

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

Ավարտելուց հետո սեղմեք Պահպանել: Հաջորդը, մենք պետք է ընտրենք Մատյան ֆայլեր: Գնացեք Մատյան բաժին, սեղմեք Խմբագրել՝ ընդդեմ Վիրտուալ հյուրընկալողի մատյան և լրացրեք հետևյալ արժեքները: Մնացած կարգավորումները թողեք անփոփոխ:

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

Դուք կարող եք ընտրել Գրանցման մակարդակը որպես DEBUG, եթե դուք մշակման մեքենայի վրա եք:

Սեղմեք Պահպանել, ապա սեղմեք գումարած նշանը Մուտքի մատյան բաժնում՝ նոր մուտք ավելացնելու համար: Լրացրե՛ք հետևյալ արժեքները.

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

Ավարտելուց հետո սեղմեք Պահել: Հաջորդը, մենք պետք է կարգավորենք Մուտքի վերահսկում Անվտանգություն բաժնում: Սահմանեք հետևյալ արժեքները.

Allowed List: *
Denied List: Not set

Ավարտելուց հետո սեղմեք Պահել: Հաջորդը, մենք պետք է սահմանենք Սցենարների մշակման սահմանումը: Սեղմեք գումարած (+) նշանը՝ նոր սահմանում ավելացնելու համար: Սահմանեք հետևյալ արժեքները.

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

Ավարտելուց հետո սեղմեք Պահել: Հաջորդը, մենք պետք է սահմանենք Վերագրել կառավարում Վերագրել բաժնում: Սահմանեք հետևյալ արժեքները.

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

Ավարտելուց հետո սեղմեք Պահել: Եվ վերջապես, մենք պետք է սահմանենք Լսողները: Գնացեք Լսողներ բաժին և սեղմեք Դիտել կոճակը` ընդդեմ Լռակյաց ունկնդիր: Այնուհետև կտտացրեք «Ավելացնել» կոճակը` ընդդեմ Վիրտուալ հյուրընկալող քարտեզագրումների՝ նոր քարտեզագրում ավելացնելու և հետևյալ արժեքները սահմանելու համար:

Virtual Host: example.com
Domains: example.com

Ավարտելուց հետո սեղմեք Պահել: Այժմ սեղմեք Գեղեցիկ վերագործարկում կոճակը՝ վերը նշված բոլոր փոփոխությունները կիրառելու և սերվերը վերագործարկելու համար:

Քայլ 9 - Տեղադրեք SSL-ը

OpenLiteSpeed-ում SSL-ի կարգավորումը պահանջում է մեզանից երկու վկայական ստեղծել: Ինքնստորագրված վկայագիր ընդհանուր սերվերի և Let's Encrypt կայքի հատուկ սերվերի համար:

Կառավարման վահանակն արդեն ունի նախապես տեղադրված ինքնաստորագրված վկայական, որը հասանելի է /usr/local/lsws/admin/conf գրացուցակում:

Եկեք նախ ստեղծենք ինքնաստորագրված վկայական ընդհանուր սերվերի համար:

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

Դուք կստանաք նմանատիպ արդյունք:

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

Դուք կարող եք սեղմել enter բոլոր դաշտերի միջով և դրանք դատարկ թողնել: Լրացրեք ձեր տիրույթը ընդհանուր անվան համար և ձեր էլփոստի հասցեն:

Ստեղծեք տեղեկատու ինքնաստորագրված վկայականների համար:

$ sudo mkdir /usr/local/lsws/certs

Պատճենեք վկայագիրը /usr/local/lsws/certs գրացուցակում:

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

Մենք պետք է տեղադրենք Certbot՝ Let's Encrypt-ի կողմից առաջարկվող անվճար SSL վկայագրեր ստեղծելու համար:

Կարող եք կա՛մ տեղադրել Certbot-ը՝ օգտագործելով Debian-ի պահոցը, կա՛մ ձեռք բերել վերջին տարբերակը՝ օգտագործելով Snapd գործիքը: Մենք կօգտագործենք Snapd տարբերակը: Ubuntu 24.04-ը գալիս է նախապես տեղադրված Snapd-ով:

Գործարկեք հետևյալ հրամանները՝ համոզվելու համար, որ Snapd-ի ձեր տարբերակը արդիական է:

$ sudo snap install core
$ sudo snap refresh core

Certbot-ը տեղադրելու համար թողարկեք հետևյալ հրամանը.

$ sudo snap install --classic certbot

Օգտագործեք հետևյալ հրամանը՝ համոզվելու համար, որ Certbot հրամանը կարող է գործարկվել՝ ստեղծելով խորհրդանշական հղում դեպի /usr/bin գրացուցակը:

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

Ստուգեք տեղադրումը:

$ certbot --version
certbot 2.10.0

Գործարկեք հետևյալ հրամանը՝ SSL վկայական ստեղծելու համար:

Ստացեք SSL վկայագիր: Webroot գրացուցակը դրված է ավելի վաղ կազմաձևված հանրային HTML գրացուցակում:

$ 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

Ստեղծեք Diffie-Hellman խումբ վկայագիր:

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

Ստուգեք Certbot-ի նորացման ժամանակացույցի ծառայությունը:

$ sudo systemctl list-timers

Դուք կգտնեք 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

Ստուգելու համար, թե արդյոք SSL-ի նորացումը լավ է աշխատում, կատարեք գործընթացը չոր:

$ sudo certbot renew --dry-run

Եթե սխալներ չեք տեսնում, ամեն ինչ պատրաստ է: Ձեր վկայականը ինքնաբերաբար կերկարաձգվի:

Այժմ բացեք ադմինիստրատորի վահանակը, անցեք Listeners >> Ավելացնել նոր լսող և ավելացրեք հետևյալ արժեքները:

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

Ավարտելուց հետո սեղմեք Պահել: Հաջորդը, անցեք Վիրտուալ հյուրընկալող քարտեզագրումներ բաժինը SSL Լսողի տակ՝ սեղմելով SSL-ի վրա, սեղմելով Ավելացնել կոճակը և լրացնելով հետևյալ արժեքները:

Virtual Host: example.com
Domains: example.com

Ավարտելուց հետո սեղմեք Պահել: Այնուհետև անցեք Լսողներ >> SSL Լսող >> SSL ներդիր >>SSL Անձնական բանալի և Վկայական (Խմբագրել կոճակը) և լրացրեք հետևյալ արժեքները նախկինում ստեղծած ինքնաստորագրված վկայագրի համար:

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

Ավարտելուց հետո սեղմեք Պահել: Հաջորդը, գնացեք Listeners >> SSL Lister >> SSL Tab >> SSL Protocol (Խմբագրել կոճակը) և լրացրեք հետևյալ արժեքները SSL արձանագրության և ծածկագրի մանրամասների համար:

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

Ավարտելուց հետո սեղմեք Պահել: Հաջորդը, գնացեք Վիրտուալ հյուրընկալողներ >> example.com >> SSL ներդիր >> SSL մասնավոր բանալի և վկայական (Խմբագրել կոճակը) և լրացրեք հետևյալ արժեքները Let's Encrypt Certificate-ով:

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

Ավարտելուց հետո սեղմեք Պահել: Հաջորդը, գնացեք Վիրտուալ հոսթեր >> example.com >> SSL ներդիր >> OCSP Stapling (Խմբագրել կոճակը) և լրացրեք հետևյալ արժեքները՝ OCSP Stapling-ը միացնելու համար:

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

Ավարտելուց հետո սեղմեք Պահել: Հաջորդը, գնացեք Վիրտուալ հոսթեր >> example.com >> SSL ներդիր >> Անվտանգություն (Խմբագրել կոճակը) և լրացրեք հետևյալ արժեքները՝ HTTP3/QUIC արձանագրությունը միացնելու համար:

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

Մեզ պետք չէ միացնել այլ տարբերակներ, քանի որ դրանք լռելյայն միացված են:

Ավարտելուց հետո սեղմեք Պահել:

Վերագործարկեք սերվերը՝ սեղմելով Graceful restart կոճակը:

Քայլ 10 - Փորձարկման կայք

Ստեղծեք թեստային ֆայլ ձեր html գրացուցակում:

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

Տեղադրեք հետևյալ կոդը 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>

Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ պահանջվում է: Բացեք https://example.com URL-ը բրաուզերում և կտեսնեք հետևյալ էջը:

Փորձարկման վայրը լիովին գործում է: Դուք կարող եք սկսել օգտագործել սերվերը դինամիկ PHP կայքերի և հավելվածների սպասարկման համար:

Եզրակացություն

Սա ավարտում է Ubuntu 24.04 սերվերի վրա LOMP Stack-ը (OpenLiteSpeed, MySQL և PHP) տեղադրելու մեր ձեռնարկը: Եթե ունեք հարցեր, տեղադրեք դրանք ստորև ներկայացված մեկնաբանություններում: