Ինչպես տեղադրել 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 - Կարգավորել Firewall-ը
Քայլ 2 - Տեղադրեք OpenLiteSpeed-ը
- Ստեղծեք ադմինիստրատորի գաղտնաբառը
Քայլ 6 - Կարգավորեք OpenLiteSpeed-ը
Քայլ 7 - Կարգավորեք PHP-ն
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://
: Ձեր առաջին մուտքի ժամանակ ձեր զննարկիչը կզգուշացնի, որ ձեր կապը մասնավոր չէ: Սեղմեք Ընդլայնված և սեղմեք «Ընդունել ռիսկը և շարունակել» (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://
հասցեով՝ հենց նոր ստեղծված հավատարմագրերով:
Այցելեք Լսողների բաժինը ձախից: Դուք կտեսնեք լռելյայն լսողներին 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://
ձեր բրաուզերում:
Վերագործարկեք 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) տեղադրելու մեր ձեռնարկը: Եթե ունեք հարցեր, տեղադրեք դրանք ստորև ներկայացված մեկնաբանություններում: