🌈Ubuntu 20.04 da Linux, Nginx, MySQL, PHP (LEMP stek) qanday o'rnatiladi
// Qo'llanma //
Kirish
LEMP dasturiy ta'minot to'plami PHPda yozilgan dinamik veb-sahifalar va veb-ilovalarga xizmat ko'rsatish uchun ishlatilishi mumkin bo'lgan dasturiy ta'minot guruhidir. Bu Nginx (" E ngine-X" kabi talaffuz qilinadi) veb-serverli L inux operatsion tizimini tavsiflovchi qisqartma . Backend ma'lumotlari M ySQL ma'lumotlar bazasida saqlanadi va dinamik ishlov berish P HP tomonidan amalga oshiriladi.
Ushbu qo'llanma Ubuntu 20.04 serveriga LEMP stekini qanday o'rnatishni ko'rsatadi. Ubuntu operatsion tizimi birinchi talabni bajaradi. Qolgan komponentlarni qanday qilib ishga tushirishni tasvirlab beramiz.
1-qadam - Nginx veb-serverini o'rnatish
Saytimizga tashrif buyuruvchilarga veb-sahifalarni ko'rsatish uchun biz Nginx, yuqori samarali veb-serverdan foydalanmoqchimiz. apt
Ushbu dasturni olish uchun paket menejeridan foydalanamiz .
Bu seans uchun birinchi marta foydalanayotganimiz sababli apt
, serveringiz paketi indeksini yangilashdan boshlang. Shundan so'ng siz apt install
Nginx-ni o'rnatish uchun foydalanishingiz mumkin:
So'ralganda, Y
Nginx-ni o'rnatmoqchi ekanligingizni tasdiqlash uchun kiriting. O'rnatish tugallangach, Nginx veb-serveri faol bo'ladi va Ubuntu 20.04 serveringizda ishlaydi.
Agar sizda ufw
xavfsizlik devori yoqilgan bo'lsa, bizning serverni sozlash bo'yicha dastlabki qo'llanmamizda tavsiya etilganidek, Nginx-ga ulanishga ruxsat berishingiz kerak bo'ladi. Nginx o'rnatishdan so'ng bir nechta turli UFW ilova profillarini ro'yxatdan o'tkazadi. Qaysi UFW profillari mavjudligini tekshirish uchun quyidagilarni bajaring:
Sizga kerakli trafikka ruxsat beradigan eng cheklovchi profilni yoqish tavsiya etiladi. Ushbu qo'llanmada serveringiz uchun SSL-ni sozlamaganligingiz uchun portda oddiy HTTP trafigiga ruxsat berish kifoya 80
.
Buni yozish orqali yoqing:
O'zgarishlarni quyidagi amallarni bajarish orqali tekshirishingiz mumkin:
Ushbu buyruqning chiqishi HTTP trafigiga ruxsat berilganligini ko'rsatadi:
Yangi xavfsizlik devori qoidasi qoʻshilishi bilan siz serveringizning domen nomi yoki veb-brauzeringizdagi umumiy IP manziliga kirish orqali serverning ishlayotganligini tekshirishingiz mumkin.
Agar sizning serveringizda ko'rsatilgan domen nomingiz bo'lmasa va serveringizning umumiy IP manzilini bilmasangiz, uni quyidagi buyruqni ishga tushirish orqali topishingiz mumkin:
Bu bir nechta IP manzillarni chop etadi. Ularning har birini veb-brauzeringizda navbatma-navbat sinab ko'rishingiz mumkin.
Shu bilan bir qatorda, Internetdagi boshqa joylardan ko'rinib turganidek, qaysi IP-manzilga kirish mumkinligini tekshirishingiz mumkin:
Veb-brauzeringizda olgan manzilni kiriting va u sizni Nginx-ning standart ochilish sahifasiga olib boradi:
Agar siz ushbu sahifani ko'rsangiz, bu sizning Nginx-ni muvaffaqiyatli o'rnatganingizni va veb-serveringiz uchun HTTP-trafikni yoqqaningizni anglatadi.
2-qadam - MySQL-ni o'rnatish
Endi veb-serveringiz ishlayotgan bo'lsa, saytingiz uchun ma'lumotlarni saqlash va boshqarish imkoniyatiga ega bo'lish uchun ma'lumotlar bazasi tizimini o'rnatishingiz kerak. MySQL - bu PHP muhitida ishlatiladigan mashhur ma'lumotlar bazasini boshqarish tizimi.
Shunga qaramay, apt
ushbu dasturni sotib olish va o'rnatish uchun foydalaning:
So'ralganda, yozish orqali o'rnatishni tasdiqlang Y
va keyin ENTER
.
O'rnatish tugagach, MySQL bilan oldindan o'rnatilgan xavfsizlik skriptini ishga tushirish tavsiya etiladi. Ushbu skript ba'zi xavfli standart sozlamalarni olib tashlaydi va ma'lumotlar bazasi tizimiga kirishni bloklaydi. Interaktiv skriptni ishga tushirish orqali boshlang:
ni sozlashni xohlaysizmi, deb so'raydi VALIDATE PASSWORD PLUGIN
.
Eslatma: Ushbu xususiyatni yoqish - bu qaror qabul qilishdir. Agar yoqilgan bo'lsa, belgilangan mezonlarga mos kelmaydigan parollar MySQL tomonidan xatolik bilan rad etiladi. Tasdiqlashni o'chirib qo'yish xavfsiz, lekin ma'lumotlar bazasi hisob ma'lumotlari uchun har doim kuchli, noyob parollardan foydalanishingiz kerak.
Yoqmasdan Y
davom etish uchun “Ha” yoki boshqa biror narsa deb javob bering.
Agar “ha” deb javob bersangiz, sizdan parolni tekshirish darajasini tanlashingiz soʻraladi. Shuni yodda tutingki, agar siz 2
eng kuchli darajaga kirsangiz, raqamlar, katta va kichik harflar va maxsus belgilardan iborat bo'lmagan yoki umumiy lug'at so'zlariga asoslangan har qanday parolni o'rnatishga urinishda xatoliklarga duch kelasiz.
ni o'rnatishni tanlaganingizdan qat'i nazar, VALIDATE PASSWORD PLUGIN
serveringiz sizdan MySQL ildiz foydalanuvchisi uchun parolni tanlash va tasdiqlashingizni so'raydi. Buni tizim ildizi bilan aralashtirib yubormaslik kerak . Ma'lumotlar bazasining ildiz foydalanuvchisi ma'lumotlar bazasi tizimiga nisbatan to'liq imtiyozlarga ega bo'lgan ma'muriy foydalanuvchi. MySQL ildiz foydalanuvchisi uchun standart autentifikatsiya usuli paroldan foydalanishga ruxsat bersa ham, parol o'rnatilgan bo'lsa ham, bu yerda qo'shimcha xavfsizlik chorasi sifatida kuchli parolni belgilashingiz kerak. Bu haqda birozdan keyin gaplashamiz.
Agar siz parolni tekshirishni yoqsangiz, siz kiritgan asosiy parol uchun parol kuchi ko'rsatiladi va serveringiz ushbu parol bilan davom etishni xohlaysizmi, deb so'raydi. Agar joriy parolingizdan mamnun bo'lsangiz, so'rovda Y
"ha" deb kiriting:
Qolgan savollar uchun har bir taklifda tugmachani bosing Y
va ENTER
bosing. Bu ba'zi anonim foydalanuvchilar va test ma'lumotlar bazasini o'chirib tashlaydi, masofaviy ildizga kirishni o'chiradi va MySQL siz kiritgan o'zgarishlarni darhol hurmat qilishi uchun ushbu yangi qoidalarni yuklaydi.
Tugatganingizdan so'ng, MySQL konsoliga kirish imkoningiz bor-yo'qligini tekshirib ko'ring:
Bu MySQL serveriga ma'muriy ma'lumotlar bazasi foydalanuvchi ildizisudo
sifatida ulanadi, bu buyruqni ishga tushirishda foydalanish natijasida paydo bo'ladi. Siz shunday chiqishni ko'rishingiz kerak:
MySQL konsolidan chiqish uchun quyidagilarni kiriting:
E'tibor bering, skriptni ishga tushirishda parolni belgilagan bo'lsangiz ham , root foydalanuvchisi sifatida ulanish uchun parol kiritishingiz shart emas edi . mysql_secure_installation
Buning sababi, ma'muriy MySQL foydalanuvchisi uchun standart autentifikatsiya usuli unix_socket
o'rniga password
. Avvaliga bu xavfsizlik muammosidek tuyulishi mumkin bo'lsa-da, bu ma'lumotlar bazasi serverini yanada xavfsizroq qiladi, chunki MySQL-ning ildiz foydalanuvchisi sifatida tizimga kirishga ruxsat berilgan yagona foydalanuvchilar sudo imtiyozlariga ega bo'lgan tizim foydalanuvchilari konsoldan yoki dastur bilan ishlaydigan dastur orqali ulanadi. bir xil imtiyozlar. Amaliy ma'noda, bu sizning PHP ilovangizdan ulanish uchun ma'muriy ma'lumotlar bazasi ildiz foydalanuvchisidan foydalana olmaysiz. Ildiz uchun parol o'rnatishMySQL hisob qaydnomasi, agar standart autentifikatsiya usuli dan unix_socket
ga o'zgartirilgan bo'lsa, himoya vositasi sifatida ishlaydi password
.
Xavfsizlikni oshirish uchun har bir ma'lumotlar bazasi uchun kamroq keng imtiyozlarga ega maxsus foydalanuvchi hisoblariga ega bo'lish yaxshiroqdir, ayniqsa siz serveringizda bir nechta ma'lumotlar bazalariga ega bo'lishni rejalashtirmoqchi bo'lsangiz.
Eslatma: Ushbu yozish vaqtida mahalliy MySQL PHP kutubxonasi MySQL 8 uchun standart autentifikatsiya usulini mysqlnd
qo'llab-quvvatlamaydi caching_sha2_authentication
. Shu sababli, MySQL 8 da PHP ilovalari uchun ma'lumotlar bazasi foydalanuvchilarini yaratishda siz ularning mavjudligiga ishonch hosil qilishingiz kerak. mysql_native_password
o'rniga foydalanish uchun tuzilgan . Buni qanday qilishni 6-bosqichda ko'rsatamiz .
MySQL serveringiz endi o'rnatildi va himoyalandi. Keyinchalik, LEMP stekidagi yakuniy komponent bo'lgan PHP ni o'rnatamiz.
3-qadam - PHP o'rnatish
Sizda kontentingizga xizmat ko'rsatish uchun Nginx o'rnatilgan va ma'lumotlarni saqlash va boshqarish uchun MySQL o'rnatilgan. Endi siz veb-server uchun kodni qayta ishlash va dinamik tarkibni yaratish uchun PHP-ni o'rnatishingiz mumkin.
Apache har bir soʻrovda PHP tarjimonini joylashtirgan boʻlsa-da, Nginx PHP bilan ishlov berish va PHP tarjimonining oʻzi va veb-server oʻrtasida koʻprik vazifasini bajarish uchun tashqi dasturni talab qiladi. Bu ko'pchilik PHP-ga asoslangan veb-saytlarda umumiy ishlashni yaxshilash imkonini beradi, ammo bu qo'shimcha konfiguratsiyani talab qiladi. “PHP fastCGI jarayon menejeri” ni oʻrnatishingiz php-fpm
va Nginx’ga PHP soʻrovlarini qayta ishlash uchun ushbu dasturiy taʼminotga yuborishini aytishingiz kerak. Bundan tashqari, sizga php-mysql
PHP-ning MySQL-ga asoslangan ma'lumotlar bazalari bilan bog'lanishiga imkon beruvchi PHP moduli kerak bo'ladi. Asosiy PHP paketlari avtomatik ravishda bog'liqlik sifatida o'rnatiladi.
Paketlarni o'rnatish uchun quyidagilarni php-fpm
bajaring :php-mysql
So'ralganda, kiriting Y
va ENTER
o'rnatishni tasdiqlang.
Endi siz PHP komponentlarini o'rnatdingiz. Keyin Nginx-ni ulardan foydalanish uchun sozlaysiz.
4-qadam — PHP protsessoridan foydalanish uchun Nginx-ni sozlash
Nginx veb-serveridan foydalanganda biz konfiguratsiya tafsilotlarini qamrab olish va bitta serverda bir nechta domenlarni joylashtirish uchun server bloklarini (Apache'dagi virtual xostlarga o'xshash) yaratishimiz mumkin. Ushbu qo'llanmada biz domen nomi sifatida your_domain dan foydalanamiz. DigitalOcean bilan domen nomini o'rnatish haqida ko'proq ma'lumot olish uchun DigitalOcean DNS ga kirishimizga qarang .
Ubuntu 20.04 da Nginx sukut bo'yicha yoqilgan bitta server blokiga ega va katalogdan hujjatlarga xizmat ko'rsatish uchun sozlangan /var/www/html
. Bu bitta sayt uchun yaxshi ishlayotgan bo'lsa-da, agar siz bir nechta saytlarni joylashtirsangiz, uni boshqarish qiyin bo'lishi mumkin. ni oʻzgartirish oʻrniga, agar mijoz soʻrovi boshqa saytlarga toʻgʻri kelmasa, xizmat koʻrsatish uchun birlamchi katalog sifatida oʻrnida qoldirib , your_domain veb-sayti uchun /var/www/html
katalog tuzilmasini yaratamiz ./var/www/var/www/html
your_domain uchun ildiz veb-katalogini quyidagicha yarating:
Keyin, joriy tizim foydalanuvchisiga havola qiladigan $USER muhit oʻzgaruvchisi bilan katalog egaligini tayinlang:
sites-available
Keyin, afzal ko'rgan buyruq qatori muharriridan foydalanib, Nginx katalogida yangi konfiguratsiya faylini oching . Bu erda biz foydalanamiz nano
:
Bu yangi bo'sh faylni yaratadi. Quyidagi yalang suyak konfiguratsiyasiga joylashtiring:
Ushbu ko'rsatmalar va joylashuv bloklarining har biri nima qiladi:
listen
— Nginx qaysi portni tinglashini belgilaydi. Bunday holda, u80
HTTP uchun standart port bo'lgan portni tinglaydi.root
— Ushbu veb-sayt tomonidan taqdim etilgan fayllar saqlanadigan hujjat ildizini belgilaydi.index
— Nginx ushbu veb-sayt uchun indeks fayllariga qaysi tartibda ustunlik berishini belgilaydi. PHP ilovalarida texnik xizmat ko'rsatish sahifasini tezda o'rnatishga imkon berish uchun fayllardanindex.html
ko'ra ustunlikka ega bo'lgan fayllarni ro'yxatga olish odatiy holdir .index.php
Siz ushbu sozlamalarni ilova ehtiyojlaringizga yaxshiroq moslashtirish uchun sozlashingiz mumkin.server_name
— Ushbu server bloki qaysi domen nomlari va/yoki IP manzillari uchun javob berishi kerakligini belgilaydi. Ushbu ko'rsatmani serveringizning domen nomi yoki umumiy IP manziliga yo'naltiring.location /
— Birinchi joylashuv blokitry_files
direktivani o'z ichiga oladi, u URI so'roviga mos keladigan fayllar yoki kataloglar mavjudligini tekshiradi. Agar Nginx tegishli manbani topa olmasa, u 404 xatosini qaytaradi.location ~ \.php$
— Bu joylashuv bloki Nginx-nifastcgi-php.conf
konfiguratsiya fayliga vaphp7.4-fpm.sock
qaysi rozetka bilan bog'langanligini e'lon qiluvchi faylga yo'naltirish orqali haqiqiy PHP ishlovini boshqaradiphp-fpm
.location ~ /\.ht
— Oxirgi joylashuv bloki.htaccess
Nginx qayta ishlamaydigan fayllar bilan bog'liq.deny all
Direktivni qo'shish orqali , agar biron bir.htaccess
fayl hujjat ildiziga yo'l topsa, ular tashrif buyuruvchilarga taqdim etilmaydi.
Tahrirlash tugagach, faylni saqlang va yoping. dan foydalanayotgan bo'lsangiz nano
, buni tasdiqlash uchun terib CTRL+X
, keyin y
va keyin qilishingiz mumkin ENTER
.
sites-enabled
Nginx katalogidan konfiguratsiya fayliga ulanish orqali konfiguratsiyangizni faollashtiring :
Keyin, standart konfiguratsiya faylini /sites-enabled/
katalogdan ajratib oling:
Eslatma : Agar siz standart konfiguratsiyani tiklashingiz kerak bo'lsa, buni ramziy havolani qayta yaratish orqali qilishingiz mumkin, masalan:
Bu Nginx-ga keyingi safar qayta yuklanganda konfiguratsiyadan foydalanishni aytadi. Siz konfiguratsiyani sintaktik xatolar uchun tekshirishingiz mumkin:
Agar biron-bir xatolik haqida xabar berilsa, davom etishdan oldin uning mazmunini ko'rib chiqish uchun konfiguratsiya faylingizga qayting.
Tayyor bo'lgach, o'zgarishlarni qo'llash uchun Nginx-ni qayta yuklang:
Yangi veb-saytingiz hozir faol, lekin veb-ildiz hali ham bo'sh. Yangi server blokingiz kutilganidek ishlashini tekshirishimiz uchun oʻsha joyda fayl yarating :/var/www/
your_domain
index.html
Ushbu faylga quyidagi tarkibni qo'shing:
Endi brauzeringizga o'ting va server_name
server blokining konfiguratsiya faylidagi direktivada ko'rsatilganidek, serveringizning domen nomi yoki IP manziliga kiring:
Siz shunday sahifani ko'rasiz:
Agar siz ushbu sahifani ko'rsangiz, bu sizning Nginx server blokingiz kutilganidek ishlayotganini anglatadi.
Siz uni almashtirish uchun faylni sozlamaguningizcha ushbu faylni ilovangiz uchun vaqtinchalik ochilish sahifasi sifatida qoldirishingiz mumkin index.php
. Buni qilganingizdan so'ng, index.html
faylni hujjat ildizidan olib tashlashni yoki nomini o'zgartirishni unutmang, chunki u index.php
sukut bo'yicha fayldan ustun bo'ladi.
LEMP stekingiz endi toʻliq sozlangan. .php
Keyingi bosqichda biz Nginx yangi sozlangan veb-saytingizdagi fayllar bilan ishlashga qodirligini tekshirish uchun PHP skriptini yaratamiz .
5-qadam - Nginx bilan PHPni sinab ko'rish
Sizning LEMP stekingiz endi to'liq sozlangan bo'lishi kerak. .php
Nginx fayllarni PHP protsessoringizga to'g'ri topshirishi mumkinligini tekshirish uchun uni sinab ko'rishingiz mumkin .
Buni hujjat ildizida test PHP faylini yaratish orqali qilishingiz mumkin. info.php
Matn muharririda hujjat ildizida deb nomlangan yangi faylni oching :
Quyidagi qatorlarni yangi faylga kiriting yoki joylashtiring. Bu sizning serveringiz haqidagi ma'lumotlarni qaytaradigan haqiqiy PHP kodi:
Tugatganingizdan so'ng, faylni saqlang va yoping va tasdiqlash uchun CTRL
+ X
va keyin y
va ENTER
tasdiqlang.
Endi siz Nginx konfiguratsiya faylida oʻrnatgan domen nomi yoki umumiy IP manziliga tashrif buyurib, veb-brauzeringizdagi ushbu sahifaga kirishingiz mumkin, keyin /info.php
:
Siz serveringiz haqida batafsil ma'lumotni o'z ichiga olgan veb-sahifani ko'rasiz:
Ushbu sahifa orqali PHP serveringiz haqidagi tegishli ma'lumotlarni tekshirgandan so'ng, siz yaratgan faylni o'chirib tashlaganingiz ma'qul, chunki unda PHP muhiti va Ubuntu serveringiz haqida nozik ma'lumotlar mavjud. Siz rm
ushbu faylni o'chirish uchun foydalanishingiz mumkin:
Agar kerak bo'lsa, bu faylni har doim qayta tiklashingiz mumkin.
6-qadam - PHP dan ma'lumotlar bazasi ulanishini sinab ko'rish (ixtiyoriy)
Agar siz PHP MySQL-ga ulanishi va ma'lumotlar bazasi so'rovlarini bajara olishini sinab ko'rmoqchi bo'lsangiz, PHP skriptidan so'nggi ma'lumotlar va uning mazmuni uchun so'rovlar bilan test jadvalini yaratishingiz mumkin. Buni amalga oshirishdan oldin test ma'lumotlar bazasini va unga kirish uchun to'g'ri sozlangan yangi MySQL foydalanuvchisini yaratishimiz kerak.
Ushbu yozish vaqtida mahalliy MySQL PHP kutubxonasi MySQL 8 uchun standart autentifikatsiya usulini mysqlnd
qo'llab-quvvatlamaydi . MySQL ma'lumotlar bazasiga ulanish imkoniyatiga ega bo'lish uchun autentifikatsiya usuli bilan yangi foydalanuvchi yaratishimiz kerak. PHP.caching_sha2_authenticationmysql_native_password
Biz example_database nomli ma'lumotlar bazasini va example_user nomli foydalanuvchini yaratamiz , lekin siz bu nomlarni turli qiymatlar bilan almashtirishingiz mumkin.
Birinchidan, ildiz hisob qaydnomasi yordamida MySQL konsoliga ulaning :
Yangi ma'lumotlar bazasini yaratish uchun MySQL konsolingizdan quyidagi buyruqni bajaring:
Endi siz yangi foydalanuvchi yaratishingiz va ularga o'zingiz yaratgan maxsus ma'lumotlar bazasida to'liq imtiyozlar berishingiz mumkin.
Quyidagi buyruq standart autentifikatsiya usuli sifatida example_user
ismli yangi foydalanuvchi yaratadi . mysql_native_password
Biz ushbu foydalanuvchi parolini sifatida belgilayapmiz password
, lekin siz bu qiymatni oʻzingiz tanlagan xavfsiz parol bilan almashtirishingiz kerak.
example_database
Endi biz ushbu foydalanuvchiga ma'lumotlar bazasiga ruxsat berishimiz kerak :
Bu example_user foydalanuvchisiga example_ma'lumotlar bazasi ma'lumotlar bazasiga nisbatan to'liq imtiyozlar beradi , shu bilan birga bu foydalanuvchi serveringizda boshqa ma'lumotlar bazalarini yaratish yoki o'zgartirishga yo'l qo'ymaydi.
Endi MySQL qobig'idan chiqing:
Yangi foydalanuvchi tegishli ruxsatlarga ega yoki yoʻqligini MySQL konsoliga qayta kirish orqali tekshirishingiz mumkin, bu safar maxsus foydalanuvchi hisob maʼlumotlari yordamida:
Ushbu buyruqdagi bayroqqa e'tibor bering , u sizdan example_user-p
foydalanuvchisini yaratishda ishlatiladigan parolni so'raydi . MySQL konsoliga kirganingizdan so'ng, example_ma'lumotlar bazasi ma'lumotlar bazasiga kirish huquqiga ega ekanligingizni tasdiqlang:
Bu sizga quyidagi chiqishni beradi:
Keyinchalik, biz todo_list nomli test jadvalini yaratamiz . MySQL konsolidan quyidagi bayonotni ishga tushiring:
Sinov jadvaliga bir necha qator tarkibni kiriting. Turli qiymatlardan foydalangan holda keyingi buyruqni bir necha marta takrorlashni xohlashingiz mumkin:
Ma'lumotlar jadvalingizga muvaffaqiyatli saqlanganligini tasdiqlash uchun quyidagilarni bajaring:
Siz quyidagi chiqishni ko'rasiz:
Sinov jadvalida to'g'ri ma'lumotlar mavjudligini tasdiqlaganingizdan so'ng, MySQL konsolidan chiqishingiz mumkin:
Endi siz MySQL-ga ulanadigan PHP skriptini yaratishingiz va tarkibingizga so'rov yuborishingiz mumkin. O'zingiz yoqtirgan muharrir yordamida maxsus veb-ildiz katalogingizda yangi PHP fayl yarating. Buning uchun biz foydalanamiz nano
:
Quyidagi PHP skripti MySQL ma'lumotlar bazasiga ulanadi va natijalar ro'yxatda ko'rsatiladigan todo_list jadvalining mazmuni uchun so'rovlar. Agar ma'lumotlar bazasiga ulanishda muammo bo'lsa, u istisno qiladi. todo_list.php
Ushbu tarkibni skriptingizga nusxalang :
Tahrirlash tugagach, faylni saqlang va yoping.
Endi veb-brauzeringizdagi ushbu sahifaga veb-saytingiz uchun sozlangan domen nomi yoki umumiy IP-manzilga tashrif buyurib, undan keyin kirishingiz mumkin /todo_list.php
:
Siz test jadvalingizga kiritgan tarkibni ko'rsatadigan shunday sahifani ko'rishingiz kerak:
Bu sizning PHP muhitingiz MySQL serveringizga ulanish va o'zaro ishlashga tayyorligini bildiradi.
Xulosa
Ushbu qo'llanmada biz Nginx-ni veb-server sifatida va MySQL-ni ma'lumotlar bazasi tizimi sifatida ishlatib, tashrif buyuruvchilaringizga PHP veb-saytlari va ilovalariga xizmat ko'rsatish uchun moslashuvchan poydevor yaratdik.
Last updated