Ինչպես տեղադրել LEMP Stack (Nginx, PHP և MariaDB) Debian 12-ում
Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար
- Debian 12 (Գիրքորդ)
- Debian 11 (Bullseye)
- Debian 9 (Stretch)
- Debian 8 (Jessie)
- Debian 6 (սեղմում)
- Debian 5 (Լեննի)
Այս էջում
- Նախադրյալներ
- Քայլ 1 - Կարգավորել Firewall-ը
- Քայլ 2 - Տեղադրեք PHP
- Քայլ 3 - Տեղադրեք MariaDB
- Քայլ 4 - Կարգավորեք MariaDB
- Քայլ 5 - Տեղադրեք Nginx
- Քայլ 6 - Կարգավորեք PHP-FPM
- Քայլ 7 - Տեղադրեք phpMyAdmin
- Քայլ 8 - Կարգավորեք phpMyAdmin
- Քայլ 9 - Կարգավորեք Opcache-ը
- Քայլ 10 - Տեղադրեք Certbot-ը SSL-ի համար
Քայլ 11 - Փորձարկեք ցուցադրական կայքը
- Ստեղծեք կայքը
- Ստեղծեք SSL վկայագիր
- Կարգավորեք Nginx-ը
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 սերվերի վրա և ստեղծել ցուցադրական կայք: Եթե ունեք հարցեր, տեղադրեք դրանք ստորև ներկայացված մեկնաբանություններում: