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


Այս էջում

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

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

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

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-ի միջոցով:

Այս ձեռնարկը ձեզ քայլ առ քայլ ցույց կտա, թե ինչպես տեղադրել LOMP սերվեր Rocky Linux 9 մեքենայի վրա:

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

    Rocky Linux 9-ով աշխատող սերվեր:

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

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

    SELinux-ը պետք չէ անջատել կամ կարգավորել OpenLiteSpeed-ի հետ աշխատելու համար:

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

    $ sudo dnf update
    

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

    $ sudo dnf install wget curl nano unzip yum-utils -y
    

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

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

Առաջին քայլը firewall-ի կազմաձևումն է: Rocky Linux-ն օգտագործում է Firewalld Firewall-ը: Ստուգեք firewall-ի կարգավիճակը:

$ sudo firewall-cmd --state
running

Firewall-ը աշխատում է տարբեր գոտիների հետ, և հանրային գոտին լռելյայն է, որը մենք կօգտագործենք: Թվարկեք բոլոր ծառայություններն ու նավահանգիստները, որոնք ակտիվ են firewall-ում:

$ sudo firewall-cmd --permanent --list-services

Այն պետք է ցույց տա հետևյալ արդյունքը.

cockpit dhcpv6-client ssh

OpenLiteSpeed-ին անհրաժեշտ է 7080 պորտ իր կառավարման վահանակի համար:

$ sudo firewall-cmd --permanent --add-port=7080/tcp

Գործելու համար մեզ նաև անհրաժեշտ են HTTP և HTTPS պորտեր: Բացեք դրանք:

$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https

Փոփոխությունները կիրառելու համար վերաբեռնեք firewall-ը:

$ sudo firewall-cmd --reload

Նորից նշեք բոլոր ծառայությունները:

$ sudo firewall-cmd --permanent --list-services

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

cockpit dhcpv6-client http https ssh

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

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

$ wget https://openlitespeed.org/packages/openlitespeed-1.7.16.tgz

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

$ tar -zxf openlitespeed-*.tgz

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

$ cd openlitespeed

Գործարկեք տեղադրիչը:

$ sudo ./install.sh

Սպասեք որոշ ժամանակ, մինչև տեղադրողը ավարտի:

Rocky Linux 9 ապարատում OpenLiteSpeed-ի հետ կապված որոշ խնդիրներ կան, որոնց պատճառով դուք կարող եք տեսնել որոշ սխալներ՝ բացակայելու PHP փաթեթները: Դուք կարող եք դրանք անտեսել առայժմ, քանի որ սերվերը դեռ կարող է աշխատել տարբեր լուծումներով:

Տեղադրիչի սկրիպտը տեղադրում և միացնում է lshttpd systemd ծառայությունը:

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

$ sudo systemctl start lshttpd

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

$ /usr/local/lsws/bin/lshttpd -v
LiteSpeed/1.7.16 Open (BUILD built: Thu Nov 17 16:18:46 UTC 2022) 
        module versions:
        lsquic 3.1.1
        modgzip 1.1
        cache 1.64
        mod_security 1.4

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

Գործարկեք գաղտնաբառի վերակայման սցենարը:

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

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

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

User name [admin]: admin

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-ի վրա հիմնված բրաուզերի դեպքում): Դուք այլևս չեք տեսնի նախազգուշացումը:

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

Մուտքագրեք admin որպես օգտվողի անուն և գաղտնաբառ, որն ավելի վաղ դրել եք, և սեղմեք Մուտք կոճակը՝ շարունակելու համար:

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

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

OpenLiteSpeed տեղադրիչը սովորաբար լռելյայն տեղադրում է PHP 7.4: Rocky Linux 9-ի դեպքում այն ինքնաբերաբար չի տեղադրվում: Ավելին, մենք կտեղադրենք PHP-ի վերջին տարբերակը։ Նախքան դա անելը, մենք պետք է տեղադրենք LiteSpeed պահեստը:

Տեղադրեք OpenLiteSpeed պահոցը՝ գործարկելով հետևյալ հրամանը.

$ sudo rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.3-1.el8.noarch.rpm

Դուք կարող եք վերցնել RPM ֆայլի վերջին տարբերակը OpenLiteSpeed ռեպո էջից:

Տեղադրեք PHP 8.2.

$ sudo dnf install lsphp82 lsphp82-mysqlnd lsphp82-process lsphp82-bcmath lsphp82-pdo lsphp82-common lsphp82-xml lsphp82-opcache lsphp82-soap

lsphp-gd և lsphp-mbstring փաթեթները դեռևս բացակայում են պահոցից: Այսպիսով, եթե դուք ցանկանում եք դրանք, ապա ձեզ հարկավոր կլինի մի քիչ սպասել, մինչև դրանք պաշտոնապես թողարկվեն:

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

$ /usr/local/lsws/lsphp82/bin/php -v
PHP 8.2.1 (cli) (built: Jan  3 2023 18:40:55) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.1, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.1, Copyright (c), by Zend Technologies

Դուք կարող եք ստուգել միացված PHP մոդուլների ցանկը:

$ /usr/local/lsws/lsphp82/bin/php --modules
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
random
readline
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

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

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

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

$ sudo dnf install mysql-server

Միացնել և գործարկել MySQL սերվերը:

$ sudo systemctl enable mysqld --now

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

$ sudo systemctl status mysqld

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

? mysqld.service - MySQL 8.0 database server
     Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
     Active: active (running) since Fri 2023-02-17 07:31:00 UTC; 2s ago
    Process: 14933 ExecStartPre=/usr/libexec/mysql-check-socket (code=exited, status=0/SUCCESS)
    Process: 14955 ExecStartPre=/usr/libexec/mysql-prepare-db-dir mysqld.service (code=exited, status=0/SUCCESS)
   Main PID: 15054 (mysqld)
     Status: "Server is operational"
      Tasks: 39 (limit: 5873)
     Memory: 427.1M
        CPU: 4.079s
     CGroup: /system.slice/mysqld.service
             ??15054 /usr/libexec/mysqld --basedir=/usr

Feb 17 07:30:51 nspeaks.xyz systemd[1]: Starting MySQL 8.0 database server...
Feb 17 07:30:51 nspeaks.xyz mysql-prepare-db-dir[14955]: Initializing MySQL database
Feb 17 07:31:00 nspeaks.xyz systemd[1]: Started MySQL 8.0 database server.

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

$ sudo mysql_secure_installation

Դուք կստանաք մի քանի հուշումներ: Առաջին հուշումը կհարցնի, թե արդյոք ցանկանում եք տեղադրել վավերացման գաղտնաբառի հավելվածը: Սեղմեք Y՝ plugin-ը տեղադրելու համար: Որպես անվտանգության մակարդակ ընտրեք 2-ը, որը կպահանջի, որ ձեր գաղտնաբառը լինի առնվազն 8 նիշ և ներառի մեծատառ, փոքրատառ, թվային և հատուկ նիշերի խառնուրդ:

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

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

Հաջորդը, ձեզանից կպահանջվի ստեղծել հզոր արմատային գաղտնաբառ: Համոզվեք, որ ձեր գաղտնաբառը համապատասխանում է Validate plugin-ի պահանջներին:

Please set the password for root here.

New password: 

Re-enter new password:

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y

Հաջորդը, ձեզանից կպահանջվեն մի քանի հուշումներ՝ կապված տվյալների բազայի անվտանգության բարձրացման հետ: Յուրաքանչյուր հուշում սեղմեք 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 վահանակ:

$ mysql -u root -p

Մուտքագրեք ձեր արմատային գաղտնաբառը, երբ պահանջվում է:

Ստեղծեք թեստային տվյալների բազա և օգտատեր՝ մուտքի թույլտվությամբ: Փոխարինեք testdb և testuser-ը ձեր կարգավորումների համապատասխան անուններով: Փոխարինեք գաղտնաբառ-ը ուժեղ գաղտնաբառով:

mysql> CREATE DATABASE testdb;
mysql> CREATE USER 'testuser' IDENTIFIED BY 'Your_Password123';
mysql> GRANT ALL PRIVILEGES ON testdb.* TO 'testuser';
mysql> FLUSH PRIVILEGES;

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

mysql> exit

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

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

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

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

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

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

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

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

Սեղմեք Սերվերի կազմաձևում բաժինը ձախ կողմում, այնուհետև ներդիրում Արտաքին հավելված: Դուք կտեսնեք գոյություն ունեցող 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: lsphp82/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.2 հավելվածը, մենք պետք է ասենք սերվերին, որ սկսի օգտագործել այն: Քանի որ մենք խմբագրել ենք լռելյայն ցանկը, այն արդեն կազմաձևված է: Վերագործարկեք սերվերը` սեղմելով Գեղեցիկ վերագործարկում կոճակը:

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

Քայլ 7 - Ստեղծեք 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
Bytes log: Not Set
Compress Archive: 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

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

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

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

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

$ 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) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:example.com
Email Address []:[email 

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

Վկայականներն այժմ պահվում են /home/user գրացուցակում: Այս տեղեկատվությունը մեզ ավելի ուշ պետք կգա:

Let's Encrypt-ն օգտագործելու համար մենք պետք է տեղադրենք Certbot գործիքը: Դրա համար մենք կօգտագործենք Snapd փաթեթի տեղադրիչը։ Քանի որ Rocky Linux-ը դրա հետ չի առաքվում, տեղադրեք Snapd տեղադրիչը: Այն պահանջում է, որ EPEL պահեստը աշխատի:

$ sudo dnf install -y epel-release

Տեղադրեք Snapd-ը:

$ sudo dnf install -y snapd

Միացնել և գործարկել Snap ծառայությունը:

$ sudo systemctl enable snapd --now

Տեղադրեք Snap հիմնական փաթեթը և համոզվեք, որ Snapd-ի ձեր տարբերակը արդիական է:

$ sudo snap install core && sudo snap refresh core

Ստեղծեք անհրաժեշտ հղումներ Snapd-ի աշխատանքի համար:

$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh

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

$ sudo snap install --classic certbot

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

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

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

$ certbot --version
certbot 2.3.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

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

$ sudo certbot renew --dry-run

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

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

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

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

Virtual Host: example.com
Domains: example.com

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

Private Key File: /home/user/key.pem
Certificate File: /home/user/cert.pem
Chained Certificate: Yes

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

Protocol Version: TLS v1.2 TLS v1.3
Ciphers: ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384
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 արձանագրությունը միացնելու համար:

Enable HTTP3/QUIC: Yes

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

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

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

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

Ստեղծեք թեստային ֆայլ ձեր 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 = "password";

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

Բացեք URL https://example.com բրաուզերում և կտեսնեք հետևյալ էջը:

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

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

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