Ինչպես տեղադրել LEMP Stack (Nginx, PHP և MariaDB) Debian 12-ում


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

  • Debian 12 (Գիրքորդ)
  • Debian 11 (Bullseye)
  • Debian 9 (Stretch)
  • Debian 8 (Jessie)
  • Debian 6 (սեղմում)
  • Debian 5 (Լեննի)

Այս էջում

  1. Նախադրյալներ
  2. Քայլ 1 - Կարգավորել Firewall-ը
  3. Քայլ 2 - Տեղադրեք PHP
  4. Քայլ 3 - Տեղադրեք MariaDB
  5. Քայլ 4 - Կարգավորեք MariaDB
  6. Քայլ 5 - Տեղադրեք Nginx
  7. Քայլ 6 - Կարգավորեք PHP-FPM
  8. Քայլ 7 - Տեղադրեք phpMyAdmin
  9. Քայլ 8 - Կարգավորեք phpMyAdmin
  10. Քայլ 9 - Կարգավորեք Opcache-ը
  11. Քայլ 10 - Տեղադրեք Certbot-ը SSL-ի համար
  12. Քայլ 11 - Փորձարկեք ցուցադրական կայքը

    1. Ստեղծեք կայքը
    2. Ստեղծեք SSL վկայագիր
    3. Կարգավորեք Nginx-ը
  13. Եզրակացություն

Linux LEMP stack-ը վեբ հավելվածների մշակման և հոսթինգի համար հայտնի ծրագրային փաթեթ է: Այն բաղկացած է չորս հիմնական բաղադրիչներից՝ Linux, Nginx (արտասանվում է «Engine-X»), MySQL կամ MariaDB (հարաբերական տվյալների բազա) և PHP (հայտնի վեբ ծրագրավորման լեզու): Այս կարգավորումներում Linux-ը օպերացիոն համակարգն է, իսկ Nginx-ը վեբ սերվերն է, որը կարգավորում է HTTP հարցումները և սպասարկում է ստատիկ բովանդակություն, օրինակ՝ պատկերներ և .css ֆայլեր: MySQL-ը կամ մեր դեպքում MariaDB-ն օգտագործվում է որպես տվյալների բազայի համակարգ։ PHP-ն սկրիպտային լեզու է, որն օգտագործվում է վեբ բովանդակություն ստեղծելու և տվյալների բազայի հետ դինամիկ փոխազդելու համար: Այս բաղադրիչները ձևավորում են ամուր և մասշտաբային միջավայր կայքերի և վեբ հավելվածների կառուցման և տեղակայման համար:

Այս ուղեցույցը կսովորեցնի ձեզ տեղադրել LEMP Stack մի քանի օր առաջ թողարկված Debian 12 (bookworm) սերվերի վրա: Դուք նաև կսովորեք տեղադրել phpMyAdmin-ի նման հավելվածներ:

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

    Debian 12-ով աշխատող սերվեր:

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

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

    Uncomplicated Firewall-ը (UFW) միացված է և աշխատում է:

    Ամեն ինչ թարմացվում է։

    $ 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 debian-archive-keyring unzip -y
    

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

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

Փաթեթներ տեղադրելուց առաջ առաջին քայլը firewall-ի կազմաձևումն է, որպեսզի թույլ տա HTTP և HTTPS կապեր:

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

$ sudo ufw status

Դուք պետք է տեսնեք հետևյալի նման մի բան.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Թույլատրել HTTP և HTTPs նավահանգիստները:

$ sudo ufw allow http
$ sudo ufw allow https

Ստուգեք կարգավիճակը կրկին հաստատելու համար:

$ sudo ufw status
Status: active

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

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

Debian 12-ը լռելյայն մատակարարվում է PHP 8.2-ով: Դուք կարող եք տեղադրել այն՝ գործարկելով հետևյալ հրամանը.

$ sudo apt install php-fpm php-cli php-mysql php-mbstring php-xml php-gd

Մենք տեղադրել ենք PHP-ի MySQL, CLI, GD, Mbstring և XML ընդլայնումները: Դուք կարող եք տեղադրել ցանկացած լրացուցիչ ընդլայնում ձեր պահանջներին համապատասխան:

Որպեսզի միշտ մնաք PHP-ի վերջին տարբերակում կամ եթե ցանկանում եք տեղադրել PHP-ի մի քանի տարբերակներ, ավելացրեք Ondrej-ի PHP պահոցը:

Նախ, ներմուծեք Sury-ի ռեպո PHP GPG բանալին:

$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg

Ավելացնել Ondrej Sury-ի PHP պահեստը:

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Թարմացրեք համակարգի պահեստների ցանկը:

$ sudo apt update	

Այժմ դուք կարող եք տեղադրել PHP-ի ցանկացած տարբերակ:

$ sudo apt install php8.1-fpm php8.1-cli

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

$ php --version
PHP 8.2.7 (cli) (built: Jun  9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies

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

Debian 12-ը լռելյայնորեն չի առաքվում MySQL-ով, և նրանք դեռ պաշտոնական փաթեթ չեն թողարկել դրա համար: Հետևաբար, մենք դրա համար կօգտագործենք MariaDB-ն: MariaDB-ն պաշտոնական փաթեթ չունի նաև Debian 12-ի համար, բայց Debian-ը առաքվում է դրա հետ: Հետևաբար, տեղադրեք այն՝ օգտագործելով հետևյալ հրամանը.

$ sudo apt install mariadb-server

Ստուգեք MySQL-ի տարբերակը:

$ mysql --version
mysql  Ver 15.1 Distrib 10.11.3-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

Գործարկեք MariaDB անվտանգ տեղադրման սցենարը:

$ sudo mysql_secure_installation

Ձեզանից կպահանջվի root գաղտնաբառը: Սեղմեք Enter, քանի որ մենք դրա համար գաղտնաբառ չենք սահմանել:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none):

Հաջորդը, ձեզ կհարցնեն, թե արդյոք ցանկանում եք անցնել Unix վարդակից նույնականացման մեթոդին: unix_socket հավելվածը թույլ է տալիս օգտագործել ձեր օպերացիոն համակարգի հավատարմագրերը MariaDB սերվերին միանալու համար: Քանի որ դուք արդեն ունեք պաշտպանված արմատային հաշիվ, շարունակելու համար մուտքագրեք n:

OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] n

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

 ... skipping.

You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] n

Հաջորդը ձեզ որոշակի հարցեր կուղղվեն MariaDB-ի անվտանգությունը բարելավելու համար: Մուտքագրեք Y՝ անանուն օգտատերերին հեռացնելու, հեռավոր արմատային մուտքերն արգելելու, փորձնական տվյալների բազան հեռացնելու և արտոնությունների աղյուսակները վերաբեռնելու համար:

 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

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

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

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

Քայլ 4 - Կարգավորեք MariaDB

Մուտք գործեք MariaDB կեղև:

$ sudo mysql

Ստեղծեք տվյալների բազայի նմուշ:

MariaDB> CREATE DATABASE exampledb;

Ստեղծեք SQL օգտվողի հաշիվ:

MariaDB> CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'YourPassword2!';

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

MariaDB> GRANT ALL PRIVILEGES ON exampledb.* TO 'exampleuser'@'localhost';

Քանի որ մենք չենք փոփոխում արմատային օգտատերը, դուք պետք է ստեղծեք մեկ այլ SQL օգտվող՝ գաղտնաբառի նույնականացում կիրառող վարչական առաջադրանքներ կատարելու համար: Ընտրեք ուժեղ գաղտնաբառ այս մեկի համար:

MariaDB> GRANT ALL ON *.* TO 'navjot'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;

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

MariaDB> FLUSH PRIVILEGES;

Դուրս եկեք պատյանից:

MariaDB> exit

Եկեք նորից մուտք գործենք MySQL shell՝ օգտագործելով նորաստեղծ օգտվողը:

$ sudo mysql -u exampleuser -p

Ստեղծեք թեստային աղյուսակ:

MariaDB> CREATE TABLE exampledb.name_list ( sno INT AUTO_INCREMENT, content VARCHAR(255), PRIMARY KEY(sno) );

Տեղադրեք թեստի տվյալները:

MariaDB> INSERT INTO exampledb.name_list (content) VALUES ("Navjot");

Կրկնեք վերը նշված հրամանը մի քանի անգամ՝ ավելի շատ գրառումներ ավելացնելու համար: Գործարկեք հետևյալ հրամանը՝ աղյուսակի բովանդակությունը ստուգելու համար.

MariaDB> SELECT * FROM exampledb.name_list;

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

+-----+---------+
| sno | content |
+-----+---------+
|   1 | Navjot  |
|   2 | Adam    |
|   3 | Josh    |
|   4 | Peter   |
+-----+---------+
4 rows in set (0.00 sec)

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

MariaDB> exit

Քայլ 5 - Տեղադրեք Nginx

Debian 12-ը առաքվում է Nginx-ի ավելի հին տարբերակով: Վերջին տարբերակը տեղադրելու համար անհրաժեշտ է ներբեռնել պաշտոնական Nginx պահոցը:

Ներմուծեք Nginx-ի ստորագրման բանալին:

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

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

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Թարմացրեք համակարգի պահեստները:

$ sudo apt update

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

$ sudo apt install nginx

Ստուգեք տեղադրումը: Debian համակարգերում հետևյալ հրամանը կաշխատի միայն sudo-ի հետ։

$ sudo nginx -v
nginx version: nginx/1.24.0

Սկսեք Nginx-ը:

$ sudo systemctl start nginx

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

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Thu 2023-06-15 16:33:46 UTC; 1s ago
       Docs: https://nginx.org/en/docs/
    Process: 2257 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 2258 (nginx)
      Tasks: 2 (limit: 1108)
     Memory: 1.8M
        CPU: 6ms
     CGroup: /system.slice/nginx.service
             ??2258 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??2259 "nginx: worker process"

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

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

$ sudo nano /etc/php/8.2/fpm/php.ini

Ֆայլերի վերբեռնման չափերը սահմանելու համար փոխեք upload_max_filesize և post_max_size փոփոխականների արժեքները:

upload_max_filesize = 50M
...
post_max_size = 50M

Կարգավորեք PHP-ի հիշողության սահմանաչափը՝ կախված ձեր սերվերի ռեսուրսներից և պահանջներից:

memory_limit = 256M

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

Կարող եք նաև օգտագործել հետևյալ հրամանները՝ առանց ֆայլը բացելու անհրաժեշտության, խմբագրումներ կատարելու համար:

$ sudo sed -i 's/post_max_size = 8M/post_max_size = 50M/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini

Բացեք ֆայլը /etc/php/8.0/fpm/pool.d/www.conf:

$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Մենք պետք է PHP պրոցեսների Unix օգտվողին/խմբին դնենք nginx: Գտեք user=www-data և group=www-data տողերը ֆայլում և փոխեք դրանք nginx:

...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
user = nginx
group = nginx
...

Գտեք նաև ֆայլում listen.owner=www-data և listen.group=www-data տողերը և փոխեք դրանք nginx:

listen.owner = nginx
listen.group = nginx

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

Վերագործարկեք PHP-fpm գործընթացը:

$ sudo systemctl restart php8.2-fpm

Քայլ 7 - Տեղադրեք phpMyAdmin

Ներբեռնեք phpMyAdmin-ի արխիվային ֆայլը անգլերեն լեզվով: Ձեռք բերեք վերջին տարբերակի հղումը phpMyAdmin Ներբեռնման էջից:

$ wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-english.tar.gz

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

$ sudo mkdir /var/www/html/example.com -p

Արխիվը հանեք հանրային գրացուցակում:

$ sudo tar -xzf phpMyAdmin-5.2.1-english.tar.gz -C /var/www/html/example.com

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

$ cd /var/www/html/example.com

Վերանվանեք արդյունահանված գրացուցակը անհասկանալի՝ անվտանգությունը բարելավելու համար:

$ sudo mv phpMyAdmin-5.2.1-english sm175

Քայլ 8 - Կարգավորեք phpMyAdmin

Պատճենեք նմուշի կազմաձևման ֆայլը:

$ sudo cp sm175/config.sample.inc.php sm175/config.inc.php

Բացեք կազմաձևման ֆայլը խմբագրման համար:

$ sudo nano sm175/config.inc.php

Գտեք $cfg['blowfish_secret']=''; տողը և մուտքագրեք 32 նիշանոց պատահական տող՝ թխուկների վրա հիմնված նույնականացման համար:

Դուք կարող եք օգտագործել phpSolved-ի առցանց blowfish գեներատորը կամ դա անել հրամանի տողի միջոցով:

Պատճենեք արժեքը և տեղադրեք այն, ինչպես ցույց է տրված:

$cfg['blowfish_secret'] = 'Tc/HfLPBOAPxJ-rhQP}HJoZEK69c3j:m';

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

Փոխեք կայքի և phpMyAdmin-ի սեփականությունը Nginx սերվերին:

$ sudo chown -R nginx:nginx /var/www/html/example.com

Ջնջել phpMyAdmin տեղադրման գրացուցակը:

$ sudo rm -rf /var/www/html/example.com/sm175/setup

Քայլ 9 - Կարգավորեք Opcache-ը

Opcache-ը PHP-ի քեշավորման համակարգն է: Այն աշխատում է հիշողության մեջ պահպանելով նախապես կազմված սցենարի բայթկոդը, այնպես որ ամեն անգամ, երբ օգտվողը այցելում է էջ, այն ավելի արագ է բեռնվում: Opcache-ը տեղադրված է լռելյայն: Ստուգելու համար ստուգեք PHP տարբերակը:

$ php --version
PHP 8.2.7 (cli) (built: Jun  9 2023 19:37:27) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.7, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.7, Copyright (c), by Zend Technologies

Սա մեզ ասում է, որ Opcache-ը տեղադրված է և հասանելի: Այն դեպքում, երբ այն այստեղ չհայտնվի, կարող եք ձեռքով տեղադրել այն՝ գործարկելով հետևյալ հրամանը։

$ sudo apt install php-opcache

Opcache-ի կարգավորումները փոխելու համար բացեք ֆայլը /etc/php/8.2/fpm/conf.d/10-opcache.ini խմբագրման համար:

$ sudo nano /etc/php/8.2/fpm/conf.d/10-opcache.ini

Հետևյալ կարգավորումները պետք է սկսեն օգտագործել Opcache-ը և սովորաբար խորհուրդ են տրվում լավ կատարման համար: Կարող եք միացնել այն՝ ներքևում ավելացնելով հետևյալ տողերը.

opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60

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

Վերագործարկեք PHP-FPM-ը:

$ sudo systemctl restart php8.2-fpm

Քայլ 10 - Տեղադրեք Certbot-ը SSL-ի համար

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

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

Debian 12-ը չի գալիս Snapd-ի տեղադրմամբ: Տեղադրեք Snapd փաթեթը:

$ sudo apt install 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-ը ճիշտ է աշխատում:

$ certbot --version
certbot 2.6.0

Քայլ 11 - Փորձարկել ցուցադրական կայքը

Ստեղծեք կայքը

Ստեղծեք և բացեք թեստային էջ խմբագրման համար:

$ sudo nano /var/www/html/example.com/index.php

Դրա մեջ տեղադրեք հետևյալ կոդը.

<?php
$user = "exampleuser";
$password = "YourPassword2!";
$database = "exampledb";
$table = "name_list";

try {
    $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
    echo "<h2>Members List</h2><ol>"; 
    foreach($db->query("SELECT content FROM $table") as $row) {
        echo "<li>" . $row['content'] . "</li>";
    }
    echo "</ol>";
}   catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

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

Ստեղծեք SSL վկայագիր

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

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email  -d example.com

Վերոնշյալ հրամանը վկայական կներբեռնի ձեր սերվերի /etc/letsencrypt/live/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
.....
Sun 2023-02-26 06:32:00 UTC 9h left       Sat 2023-02-25 18:04:05 UTC 2h 59min ago  snap.certbot.renew.timer  snap.certbot.renew.service
Sun 2023-02-26 06:43:20 UTC 9h left       Sat 2023-02-25 10:49:23 UTC 10h ago       apt-daily-upgrade.timer   apt-daily-upgrade.service
Sun 2023-02-26 09:00:06 UTC 11h left      Sat 2023-02-25 20:58:06 UTC 5min ago      apt-daily.timer           apt-daily.service

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

$ sudo certbot renew --dry-run

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

Կարգավորեք Nginx-ը

Ստեղծեք և բացեք ֆայլը /etc/nginx/conf.d/example.conf խմբագրման համար:

$ sudo nano /etc/nginx/conf.d/example.conf

Դրա մեջ տեղադրեք հետևյալ կոդը.

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  example.com;

    access_log  /var/log/nginx/example.com.access.log;
    error_log   /var/log/nginx/example.com.error.log;

    ssl_certificate      /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_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;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    root /var/www/html/example.com;

    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # Pass PHP Scripts To FastCGI Server
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock; #depends on PHP versions
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

# enforce HTTPS
server {
    listen       80;
    listen       [::]:80;
    server_name  example.com;
    return 301   https://$host$request_uri;
}

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

Բացեք ֆայլը /etc/nginx/nginx.conf խմբագրման համար:

$ sudo nano /etc/nginx/nginx.conf

Ավելացրեք հետևյալ տողը include /etc/nginx/conf.d/*.conf; տողից առաջ:

server_names_hash_bucket_size  64;

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

Ստուգեք ձեր Nginx կոնֆիգուրացիան:

$ sudo nginx -t

Եթե սխալներ չեք տեսնում, նշանակում է, որ պատրաստ եք գնալ: Գործարկեք Nginx սերվերը:

$ sudo systemctl start nginx

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

Դուք կարող եք մուտք գործել ձեր phpMyAdmin տեղադրում՝ այցելելով ձեր բրաուզերի https://example.com/sm175 URL-ը: Մուտք գործելու համար կարող եք կամ մուտքագրել ձեր ադմինիստրատիվ օգտատիրոջը կամ նախկինում ստեղծված օգտվողին:

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

Սա ավարտում է մեր ձեռնարկը, որտեղ դուք սովորեցիք, թե ինչպես տեղադրել LEMP ստեկը Debian 12 սերվերի վրա և ստեղծել ցուցադրական կայք: Եթե ունեք հարցեր, տեղադրեք դրանք ստորև ներկայացված մեկնաբանություններում: