Ինչպես տեղադրել LEMP Stack-ը (Linux, Nginx, PHP և MariaDB) Ubuntu 24.04-ում
Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար
- Ubuntu 24.04 (Noble Numbat)
- Ubuntu 22.04 (Jammy Jellyfish)
- Ubuntu 20.04 (Կիզակետային Fossa)
- Ubuntu 20.04 (Կիզակետային Fossa)
- Ubuntu 18.04 (Bionic Beaver)
- Ubuntu 16.04 (Xenial Xerus)
Այս էջում
- Նախադրյալներ
- Nginx վեբ սերվերի տեղադրում
- MariaDB սերվերի տեղադրում
- PHP-FPM-ի տեղադրում
- Nginx-ի ինտեգրում PHP-FPM-ի հետ
- Nginx սերվերի բլոկի ստեղծում (վիրտուալ հոսթ)
- Ձեր սերվերի բլոկի կոնֆիգուրացիայի փորձարկում
- Եզրակացություն
LEMP Stack-ը (Linux, Nginx, MySQL/MariaDB և PHP) անվճար և բաց կոդով ծրագրային հավելվածների խումբ է PHP վեբ հավելվածների հոսթինգի և մշակման համար: LEMP Stack-ը կարող է օգտագործվել ինչպես ստատիկ, այնպես էլ դինամիկ վեբ հավելվածներ տեղակայելու համար:
Այս ուղեցույցը ցույց կտա ձեզ, թե ինչպես տեղադրել LEMP Stack-ը (Linux, Nginx, MySQL/MariaDB և PHP) Ubuntu 24.04 «Noble Numbat»-ում: Մենք նաև ցույց կտանք, թե ինչպես ապահովել MariaDB սերվերը և ստեղծել Nginx սերվերի բլոկի կոնֆիգուրացիա՝ վեբ կայքերի կամ տիրույթի անունների համար:
Նախադրյալներ
Նախքան սկսելը, համոզվեք, որ ունեք Ubuntu 24.04 «Noble Numbat»՝ արմատային օգտագործողով կամ ոչ արմատային՝ որպես sudo/ադմինիստրատորի արտոնություններ: Նաև համոզվեք, որ UFW (Uncomplicated Firewall) գործարկված և միացված է:
Nginx վեբ սերվերի տեղադրում
Nginx-ը կամ engine-x-ը համացանցում ամենահայտնի վեբ սերվերն է: այն հայտնի դարձավ, քանի որ Nginx-ը կարող է միաժամանակ կառավարել բարձր երթևեկությունը նվազագույն համակարգի ռեսուրսներով: Այս առաջին քայլում դուք կտեղադրեք Nginx վեբ սերվերը Ubuntu սերվերի վրա:
Փաթեթներ տեղադրելուց առաջ թարմացրեք և թարմացրեք ձեր Ubuntu փաթեթների ցանկը հետևյալ հրամանով.
sudo apt update
Տեղադրեք Nginx վեբ սերվերը ձեր Ubuntu մեքենայի վրա՝ ստորև նշված հրամանով: Մուտքագրեք Y՝ տեղադրումը հաստատելու համար, երբ հուշում է:
sudo apt install nginx
Տեղադրումն ավարտվելուց հետո Nginx ծառայությունը պետք է գործարկվի և միացված լինի ձեր համակարգում: Ստուգեք Nginx ծառայությունը ստորև նշված հրամանով:
sudo systemctl is-enabled nginx
sudo systemctl status nginx
Դուք պետք է տեսնեք, որ Nginx ծառայությունը «միացված է», իսկ ներկայիս կարգավիճակը՝ «ակտիվ (աշխատող)»:
Նախքան Nginx մուտք գործելը, դուք պետք է բացեք ինչպես HTTP, այնպես էլ HTTPS պորտերը ձեր Ubuntu սերվերի վրա UFW-ի (Uncomplicated Firewall) միջոցով:
Կատարեք հետևյալ «ufw» հրամանը՝ «Nginx Full» պրոֆիլը միացնելու համար, որը թույլ կտա HTTP-ին և HTTPS-ին մուտք գործել ձեր Ubuntu սերվեր:
sudo ufw allow 'Nginx Full'
Այժմ ստուգեք UFW կանոնները հետևյալ հրամանով. Համոզվեք, որ «Nginx Full» պրոֆիլը միացված է «ԹՈՒՅԼԱՏՐԵԼ» կարգավիճակով:
sudo ufw status
Վերջապես, այցելեք http://192.168.5.30/ ձեր նախընտրած վեբ բրաուզերից` ձեր Nginx տեղադրումը մուտք գործելու համար: Եթե հաջողվի, դուք պետք է ստանաք լռելյայն «index.html» էջը, ինչպիսին է հետևյալը.
MariaDB սերվերի տեղադրում
Nginx-ը տեղադրելուց հետո դուք կտեղադրեք MariaDB սերվերը Ubuntu-ում։ Այս օրինակում դուք կտեղադրեք MariaDB-ն Ubuntu պահեստի միջոցով, այնուհետև կապահովեք MariaDB-ի տեղադրումը «mariadb-secure-installation» ծրագրի միջոցով:
MariaDB սերվերը Ubuntu-ում տեղադրելու համար կատարեք հետևյալ «apt install» հրամանը։ Մուտքագրեք Y և սեղմեք ENTER՝ գործընթացը շարունակելու համար:
sudo apt install mariadb-server
Տեղադրումն ավարտվելուց հետո ստուգեք MariaDB ծառայությունը ստորև նշված հրամանով: Սա ձեզ ցույց կտա MariaDB ծառայության կարգավիճակը:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
MariaDB ծառայությունը «միացված է» ներկայիս կարգավիճակով «ակտիվ (աշխատող)»:
MariaDB սերվերը տեղադրելուց հետո դուք պետք է ապահովեք այն «mariadb-secure-installation»-ի միջոցով: Սա թույլ է տալիս կարգավորել MariaDB արմատային գաղտնաբառը, անջատել հեռավոր նույնականացումը արմատային օգտվողի համար, ինչպես նաև հեռացնել ավելորդ տվյալների բազաները և արտոնությունները ձեր MariaDB սերվերի տեղադրումից:
Ստորև գործարկեք «mariadb-secure-installation» հրամանը՝ MariaDB սերվերը պաշտպանելու համար:
sudo mariadb-secure-installation
Այժմ ձեզ կհարցնեն MariaDB սերվերի հետևյալ կոնֆիգուրացիաների մասին.
Սեղմեք ENTER, երբ պահանջվում է MariaDB արմատային գաղտնաբառը:
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Մուտքագրեք «n», երբ խնդրեք անցնել unix_socket նույնականացմանը:
Switch to unix_socket authentication [Y/n] n
... skipping.
Մուտքագրեք Y MariaDB արմատային գաղտնաբառը կարգավորելու համար: Այնուհետև մուտքագրեք ձեր նոր գաղտնաբառը և կրկնեք:
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
Մուտքագրեք Y՝ կանխադրված անանուն օգտվողին ձեր MariaDB սերվերի տեղադրումից հեռացնելու համար:
Remove anonymous users? [Y/n] Y
... Success!
Մուտքագրեք Y՝ MariaDB արմատային օգտվողի համար հեռակա մուտքն անջատելու համար: Արմատ օգտագործողը միշտ պետք է միանա localhost-ից:
Disallow root login remotely? [Y/n] Y
... Success!
Այժմ նորից մուտքագրեք Y՝ ձեր MariaDB սերվերից տվյալների բազայի լռելյայն թեստը և դրա արտոնությունները հեռացնելու համար:
Remove test database and access to it? [Y/n] Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Մուտքագրեք Y՝ արտոնությունների աղյուսակները վերաբեռնելու և մինչ այժմ կատարած բոլոր փոփոխությունները կիրառելու համար:
Reload privilege tables now? [Y/n] Y
... Success!
Ավարտելուց հետո կտեսնեք հետևյալ հաղորդագրությունը.
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
PHP-FPM-ի տեղադրում
PHP-FPM (FastCGI Process Manager) PHP-ի համար FastCGI ներդրման այլընտրանքն է: Այն հիմնականում օգտագործվում է բարձր տրաֆիկ կայքերի համար՝ Nginx-ով որպես վեբ սերվեր: Այս բաժնում դուք կտեղադրեք PHP-FPM որոշ լրացուցիչ ընդլայնումներ, ինչպիսիք են mysqli-ն MySQL/MariaDB վարորդի համար, opcache-ը և APCu-ն քեշավորման համար:
Տեղադրեք PHP-FPM ձեր Ubuntu սերվերում հետևյալ հրամանով. Երբ ձեզ հուշում են, մուտքագրեք Y և սեղմեք ENTER՝ շարունակելու համար:
sudo apt install php-fpm php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip
Տեղադրումն ավարտելուց հետո PHP-FPM ծառայությունը պետք է գործարկվի և աշխատի: Ստուգեք PHP-FPM ծառայության կարգավիճակը հետևյալ հրամանով.
sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm
Ինչպես տեսնում եք ստորև, PHP-FPM-ը «ակտիվ (աշխատող)» և «միացված է» համակարգի բեռնման ժամանակ.
Ubuntu-ում լռելյայն PHP-FPM-ն աշխատում է գուլպաների ֆայլի տակ: Կարևոր է իմանալ PHP-FPM sock ֆայլի ուղին, որը կօգտագործվի Nginx վեբ սերվերի հետ ինտեգրվելու համար։
Ստուգեք PHP-FPM sock ֆայլի գտնվելու վայրը հետևյալ հրամանով.
ss -pl | grep php
Հետևյալ ելքում դուք կարող եք տեսնել, որ PHP-FPM sock ֆայլը գտնվում է «/run/php/php8.3-fpm.sock» հասցեում:
Nginx-ի ինտեգրում PHP-FPM-ի հետ
Այսպիսով, դուք տեղադրել եք PHP-FPM, ժամանակն է այն ինտեգրելու Nginx վեբ սերվերի հետ: Դա անելու համար դուք պետք է հստակ իմանաք PHP-FPM գուլպաների ֆայլի ուղին, այնուհետև փոփոխեք լռելյայն Nginx սերվերի բլոկի ֆայլը:
Բացեք «/etc/nginx/sites-available/default» սերվերի բլոկի կազմաձևը՝ օգտագործելով հետևյալ նանո խմբագրիչի հրամանը:
sudo nano /etc/nginx/sites-available/default
Ապամեկնաբանեք հետևյալ տողերը և համոզվեք, որ փոխեք PHP-FPM գուլպաների ֆայլի ուղին նոր վայրով:
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# # With php-fpm (or other unix sockets):
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
# # With php-cgi (or other tcp sockets):
# fastcgi_pass 127.0.0.1:9000;
}
Պահպանեք ֆայլը և դուրս եկեք խմբագրիչից:
Այժմ գործարկեք «nginx» հրամանը՝ ձեր Nginx շարահյուսությունը ստուգելու համար: Դուք պետք է գործարկեք այս հրամանը Nginx-ի կազմաձևում փոփոխություններ կատարելուց հետո:
sudo nginx -t
Եթե դուք ունեք պատշաճ Nginx շարահյուսություն, դուք պետք է ստանաք հաստատում, ինչպիսին է հետևյալը.
Հաջորդը, գործարկեք ստորև նշված հրամանը՝ Nginx ծառայությունը վերագործարկելու և ձեր ինտեգրումը Nginx-ի և PHP-FPM-ի միջև կիրառելու համար:
sudo systemctl restart nginx
Nginx-ի վերագործարկման դեպքում կարող եք ստուգել ձեր ինտեգրումը PHPINFO ֆայլի միջոցով: Գործարկեք ստորև նշված հրամանը՝ «info.php» PHPINFO ֆայլը «/var/www/html/» կանխադրված վեբ արմատային գրացուցակում ստեղծելու համար:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
Վերջապես, վերադարձեք ձեր վեբ դիտարկիչին և այցելեք http://192.168.5.30/info.php: Եթե ձեր Nginx-ի և PHP-FPM-ի ինտեգրումը հաջող է, դուք պետք է ստանաք հետևյալը.
Ստորև կարող եք տեսնել, որ PHP 8.3-ն աշխատում է API PHP-FPM սերվերով Nginx վեբ սերվերի տակ:
Ոլորեք ներքև դեպի էջ և կտեսնեք, որ տեղադրված է նաև PHP mysqli/mysqlnd ընդլայնումը:
Վերջապես, դուք կտեսնեք նաև քեշավորումը APC-ի միջոցով միացված ձեր PHP տեղադրման ժամանակ:
Nginx սերվերի բլոկի ստեղծում (վիրտուալ հոսթ)
Սերվերի բլոկը պարզապես Nginx վեբ սերվերի «վիրտուալ հյուրընկալողի» մեկ այլ անուն է: Այն օգտագործվում է մեկ սերվերի վրա բազմաթիվ կայքեր կամ տիրույթների անուններ տեղադրելու համար: Այս բաժնում դուք կսովորեք, թե ինչպես ստեղծել Nginx սերվերի բլոկ:
Նախքան սերվերի բլոկի կազմաձևումը ստեղծելը, գործարկեք ստորև նշված հրամանը՝ ստեղծելու նոր վեբ-արմատ գրացուցակ '/var/www/newsite/public_html' և հատուկ 'index.html' > էջ:
mkdir -p /var/www/newsite/public_html
echo "Welcome to newsite.com" > /var/www/newsite/public_html/index.html
Այժմ գործարկեք ստորև նշված հրամանը՝ «/var/www/newsite» գրացուցակի սեփականության իրավունքը փոխելու «www-data» օգտվողի: Ubuntu համակարգում Nginx վեբ սերվերը աշխատում է որպես «www-data» օգտվող:
sudo chown -R www-data:www-data /var/www/newsite
Այնուհետև գործարկեք հետևյալ նանո խմբագրիչ հրամանը՝ նոր սերվերի բլոկի կազմաձևում ստեղծելու համար '/etc/nginx/sites-available/newssite':
sudo nano /etc/nginx/sites-available/newsite
Տեղադրեք ստորև նշված կոնֆիգուրացիան, համոզվեք, որ փոխեք server_name տարբերակը ձեր տիրույթի անունով և վեբ-արմատային գրացուցակը նոր ճանապարհով, ինչպիսին է «/var/www/newsite/public_htmlուժեղ>'։
server {
listen 80;
server_name newsite.com;
root /var/www/newsite/public_html;
index index.html;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location / {
try_files $uri $uri/ =404;
}
}
Ավարտելուց հետո պահեք և դուրս եկեք ֆայլից:
Այժմ գործարկեք ստորև նշված հրամանը՝ «newssite» սերվերի բլոկի կազմաձևումն ակտիվացնելու համար: Այս հրամանով դուք կստեղծեք «/etc/nginx/sites-available/newssite» ֆայլի նոր խորհրդանշական հղում դեպի «/etc/nginx/sites-enabled/<:' գրացուցակը:
sudo ln -s /etc/nginx/sites-available/newsite /etc/nginx/sites-enabled/
Սերվերի բլոկը ակտիվացնելուց հետո գործարկեք «nginx» հրամանը ստորև՝ ձեր Nginx շարահյուսությունը ստուգելու համար:
sudo nginx -t
Եթե սխալ չկա, դուք պետք է ստանաք «... շարահյուսությունը լավ է/... թեստը հաջողված է»:
Ի վերջո, գործարկեք ստորև նշված հրամանը՝ Nginx վեբ սերվերը վերագործարկելու և ձեր նոր սերվերի բլոկի կազմաձևումը կիրառելու համար: Դրանով, ձեր սերվերի բլոկի կազմաձևումը պետք է հասանելի լինի ձեր տեղական մեքենայից:
sudo systemctl restart nginx
Ձեր սերվերի բլոկի կոնֆիգուրացիայի փորձարկում
Որպեսզի համոզվեք, որ ձեր Nginx սերվերի բլոկի կազմաձևումը հաջող է, դուք մուտք կունենաք ձեր սերվերի բլոկի կազմաձևման տիրույթի անունը ձեր տեղական համակարգչից: Եթե դուք օգտագործում եք հանրային տիրույթի անունը, անմիջապես այցելեք տիրույթի անունը: Բայց տեղական տիրույթի օգտագործողների համար խմբագրեք «հյուրընկալող» ֆայլը ձեր տեղական համակարգչում:
- Linux-ի և MacOS-ի օգտատերերի համար խմբագրեք «/etc/hosts» ֆայլը որպես root/ադմինիստրատիվ արտոնություններ:
- Windows-ի օգտատերերի համար «C:\Windows\System32\drivers\etc\hosts» ֆայլը խմբագրեք որպես ադմինիստրատոր:
Ավելացրեք ձեր սերվերի IP հասցեն և տիրույթի անունը հետևյալ կերպ.
192.168.5.30 newsite.com
Պահպանեք ֆայլը և դուրս եկեք:
Այժմ բացեք ձեր վեբ զննարկիչը և այցելեք http://newsite.com/: Եթե ձեր Nginx սերվերի բլոկի կազմաձևումը հաջող է, դուք պետք է ստանաք ձեր ստեղծած «index.html» մաքսային էջը հետևյալ կերպ.
Եզրակացություն
Շնորհավորում եմ: Դուք այժմ տեղադրել եք LEMP Stack-ը (Linux, Nginx, MySQL/MariaDB և PHP) Ubuntu 24.04 «Noble Numbat»-ում: Դուք նաև ապահովեցիք MariaDB սերվերի տեղադրումը և ստեղծեցիք Nginx սերվերի բլոկ՝ բազմաթիվ վեբկայքեր հյուրընկալելու համար: