πUbuntu 20.04 da Linux, Apache, MySQL, PHP (LAMP) stekini qanday o'rnatish kerak
// Qo'llanma //
Kirish
"LAMP" stek - bu serverga PHP-da yozilgan dinamik veb-saytlar va veb-ilovalarni joylashtirish imkonini berish uchun odatda birgalikda o'rnatiladigan ochiq kodli dasturiy ta'minot guruhi. Bu atama A pache veb-serverli L inux operatsion tizimini ifodalovchi qisqartma hisoblanadi . Sayt ma'lumotlari M ySQL ma'lumotlar bazasida saqlanadi va dinamik tarkib P HP tomonidan qayta ishlanadi .
Ushbu qo'llanmada siz Ubuntu 20.04 serverida LAMP to'plamini o'rnatasiz.
1-qadam - Apache-ni o'rnatish va xavfsizlik devorini yangilash
Apache veb-serveri dunyodagi eng mashhur veb-serverlardan biridir. U yaxshi hujjatlashtirilgan, faol foydalanuvchilar hamjamiyatiga ega va Internet tarixining ko'p qismida keng qo'llanilgan, bu esa uni veb-saytni joylashtirish uchun ajoyib tanlov qiladi.
Paket menejeri keshini yangilash bilan boshlang. Agar siz sudoushbu seansda birinchi marta foydalanayotgan bo'lsangiz, tizim paketlarini boshqarish uchun to'g'ri imtiyozlarga ega ekanligingizni tasdiqlash uchun sizdan foydalanuvchi parolini kiritish so'raladi apt.
$ sudo apt updateKeyin Apache-ni quyidagi bilan o'rnating:
$ sudo apt install apache2Shuningdek, sizdan Apache-ning o'rnatilishini tasdiqlash so'raladi Y, so'ngra tugmasini bosing ENTER.
OΚ»rnatish tugallangandan soΚ»ng HTTP trafigiga ruxsat berish uchun xavfsizlik devori sozlamalarini oΚ»zgartirishingiz kerak boΚ»ladi. UFWda turli xil dastur profillari mavjud bo'lib, siz buni amalga oshirish uchun foydalanishingiz mumkin. Hozirda mavjud bo'lgan barcha UFW ilovasi profillarini ro'yxatga olish uchun siz quyidagilarni bajarishingiz mumkin:
$ sudo ufw app listSiz shunday chiqishni ko'rasiz:
OutputAvailable applications: Apache Apache Full Apache Secure OpenSSH
Bu profillarning har biri nimani anglatadi:
Apache : Bu profil faqat portni ochadi
80(oddiy, shifrlanmagan veb-trafik).Apache Full : Bu profil 80-portni (oddiy, shifrlanmagan veb-trafik) va 443-portni (TLS/SSL shifrlangan trafik) ochadi.
Apache Secure : Bu profil faqat portni ochadi
443(TLS/SSL shifrlangan trafik).
Hozircha faqat port orqali ulanishga ruxsat bergan ma'qul 80, chunki bu yangi Apache o'rnatilishi va sizda hali ham serveringizda HTTPS trafigiga ruxsat berish uchun sozlangan TLS/SSL sertifikati yo'q.
Faqat portdagi trafikka ruxsat berish 80uchun Apacheprofildan foydalaning:
O'zgartirishni quyidagi bilan tasdiqlashingiz mumkin:
Portdagi trafik 80endi xavfsizlik devori orqali ruxsat etiladi.
Veb-brauzeringizdagi serveringizning umumiy IP-manziliga tashrif buyurib, hamma narsa rejalashtirilganidek ketayotganini tekshirish uchun darhol joyni tekshirishingiz mumkin (agar sizda bu ma'lumot bo'lmasa, umumiy IP manzilingiz nima ekanligini bilish uchun keyingi sarlavha ostidagi eslatmaga qarang. allaqachon):
Siz standart Ubuntu 20.04 Apache veb-sahifasini ko'rasiz, u ma'lumot va sinov maqsadlarida mavjud. Bu shunday ko'rinishi kerak:

Agar siz ushbu sahifani ko'rsangiz, veb-serveringiz to'g'ri o'rnatilgan va xavfsizlik devori orqali kirish mumkin.
Serveringizning umumiy IP manzilini qanday topish mumkin
Agar serveringizning umumiy IP manzili nima ekanligini bilmasangiz, uni topishning bir qancha usullari mavjud. Odatda, bu SSH orqali serveringizga ulanish uchun foydalanadigan manzildir.
Buni buyruq satridan qilishning bir necha xil usullari mavjud. Birinchidan, siz iproute2IP manzilingizni olish uchun quyidagi vositalardan foydalanishingiz mumkin:
Bu sizga ikki yoki uch qatorni qaytarib beradi. Ularning barchasi to'g'ri manzillar, lekin sizning kompyuteringiz ulardan faqat bittasini ishlatishi mumkin, shuning uchun har birini sinab ko'ring.
Muqobil usul bu curlyordam dasturidan tashqi tomon bilan bog'lanish uchun serveringizni qanday ko'rishini aytib berishdir . Bu ma'lum bir serverdan sizning IP manzilingizni so'rash orqali amalga oshiriladi:
IP manzilingizni olish uchun qanday usuldan qat'i nazar, standart Apache sahifasini ko'rish uchun uni veb-brauzeringizning manzil satriga kiriting.
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, aptushbu dasturni sotib olish va o'rnatish uchun foydalaning:
So'ralganda, yozish orqali o'rnatishni tasdiqlang Yva 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.
Yoqmasdan Ydavom 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 2eng 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 PLUGINserveringiz sizdan MySQL root foydalanuvchisi uchun parolni tanlash va tasdiqlashingizni so'raydi. Buni tizim root bilan aralashtirib yubormaslik kerak . Ma'lumotlar bazasining root 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 , qo'shimcha xavfsizlik chorasi sifatida bu yerda 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 Yva ENTERbosing. Bu ba'zi anonim foydalanuvchilar va test ma'lumotlar bazasini o'chiradi, masofaviy root loginlarini 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 rootsudo 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_installationBuning sababi, ma'muriy MySQL foydalanuvchisi uchun standart autentifikatsiya usuli unix_socketo'rniga password. Avvaliga bu xavfsizlik muammosidek tuyulishi mumkin bo'lsa-da, bu ma'lumotlar bazasi serverini yanada xavfsizroq qiladi, chunki MySQL-ning root 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 root foydalanuvchisidan foydalana olmaysiz. root uchun parol o'rnatishMySQL hisob qaydnomasi, agar standart autentifikatsiya usuli dan unix_socketga 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.
Sizning MySQL serveringiz endi o'rnatilgan va himoyalangan. Keyinchalik, LAMP stekidagi yakuniy komponent bo'lgan PHP ni o'rnatamiz.
3-qadam - PHP o'rnatish
Sizda kontentingizga xizmat ko'rsatish uchun Apache o'rnatilgan va ma'lumotlarni saqlash va boshqarish uchun MySQL o'rnatilgan. PHP oxirgi foydalanuvchiga dinamik tarkibni ko'rsatish uchun kodni qayta ishlovchi o'rnatishimizning komponentidir. Paketga qo'shimcha ravishda phpsizga php-mysqlPHP ning MySQL-ga asoslangan ma'lumotlar bazalari bilan bog'lanishiga imkon beruvchi PHP moduli kerak bo'ladi. libapache2-mod-phpBundan tashqari , PHP fayllarini boshqarish uchun Apache-ni yoqishingiz kerak . Asosiy PHP paketlari avtomatik ravishda bog'liqlik sifatida o'rnatiladi.
Ushbu paketlarni o'rnatish uchun quyidagilarni bajaring:
O'rnatish tugallangach, PHP versiyasini tasdiqlash uchun quyidagi buyruqni ishga tushirishingiz mumkin:
Ayni paytda sizning LAMP stekingiz toβliq ishlayapti, lekin PHP skripti bilan sozlashni sinab koβrishdan oldin veb-saytingiz fayl va papkalarini saqlash uchun toβgβri Apache virtual xostini oβrnatgan maβqul. Buni keyingi bosqichda qilamiz.
4-qadam β Veb-saytingiz uchun virtual xost yaratish
Apache veb-serveridan foydalanganda, konfiguratsiya tafsilotlarini inkapsulyatsiya qilish va bitta serverdan bir nechta domenlarni joylashtirish uchun virtual xostlar (Nginx-dagi server bloklariga o'xshash) yaratishingiz mumkin. Ushbu qo'llanmada biz your_domain nomli domenni o'rnatamiz , lekin siz uni o'zingizning domen nomingiz bilan almashtirishingiz kerak
Ubuntu 20.04-dagi Apache-da sukut bo'yicha yoqilgan bitta server bloki mavjud bo'lib, u /var/www/htmlkatalogdagi hujjatlarga xizmat ko'rsatish uchun sozlangan. Bu bitta sayt uchun yaxshi ishlayotgan bo'lsa-da, agar siz bir nechta saytlarni joylashtirsangiz, u noqulay 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 sayti uchun /var/www/htmlkatalog tuzilmasini yaratamiz ./var/www/var/www/html
Domeningiz uchun quyidagi tarzda katalog yarating :
$USERKeyinchalik, joriy tizim foydalanuvchisiga havola qiladigan muhit o'zgaruvchisi bilan katalog egaligini tayinlang :
sites-availableKeyin, afzal ko'rgan buyruq qatori muharriridan foydalanib, Apache katalogida yangi konfiguratsiya faylini oching . Bu erda biz foydalanamiz nano:
Bu yangi bo'sh faylni yaratadi. Quyidagi yalang suyak konfiguratsiyasida joylashtiring:
Ishingiz tugagach, faylni saqlang va yoping. Agar siz dan foydalanayotgan bo'lsangiz , buni , keyin va nanotugmalarini bosib qilishingiz mumkin .CTRL+XYENTER
Ushbu VirtualHostkonfiguratsiya bilan biz Apache-ga veb-ildiz katalogi sifatida your_domainfoydalanishni aytamiz. Agar siz Apache-ni domen nomisiz sinab ko'rmoqchi bo'lsangiz, variantlarni o'chirishingiz yoki sharhlashingiz va har bir parametr satrining boshiga belgi qo'shishingiz mumkin./var/www/your_domainServerNameServerAlias#
Endi siz a2ensiteyangi virtual xostni yoqish uchun foydalanishingiz mumkin:
Siz Apache bilan o'rnatilgan standart veb-saytni o'chirib qo'yishingiz mumkin. Agar siz maxsus domen nomidan foydalanmasangiz, bu talab qilinadi, chunki bu holda Apache-ning standart konfiguratsiyasi virtual xostingizni qayta yozadi. Apache standart veb-saytini o'chirish uchun quyidagilarni kiriting:
Konfiguratsiya faylida sintaksis xatosi yo'qligiga ishonch hosil qilish uchun quyidagilarni bajaring:
Nihoyat, ushbu o'zgarishlar kuchga kirishi uchun Apache-ni qayta yuklang:
Yangi veb-saytingiz hozir faol, lekin veb-ildiz hali ham bo'sh. Virtual xost kutilganidek ishlashini tekshirishimiz uchun ushbu joyda fayl yarating :/var/www/your_domainindex.html
Ushbu faylga quyidagi tarkibni qo'shing:
Endi brauzeringizga o'ting va serveringizning domen nomi yoki IP manziliga yana bir bor kiring:
Siz shunday sahifani ko'rasiz:

Agar siz ushbu sahifani ko'rsangiz, bu sizning Apache virtual xostingiz 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.htmlfaylni hujjat ildizidan olib tashlashni yoki nomini o'zgartirishni unutmang, chunki u index.phpsukut bo'yicha fayldan ustun bo'ladi.
DirectoryIndexApache haqida eslatma
DirectoryIndexApache haqida eslatmaApache'dagi standart DirectoryIndexsozlamalar bilan nomlangan fayl index.htmlhar doim fayldan ustun turadi index.php. index.htmlBu tashrif buyuruvchilar uchun ma'lumot beruvchi xabarni o'z ichiga olgan vaqtinchalik fayl yaratish orqali PHP ilovalarida texnik xizmat ko'rsatish sahifalarini o'rnatish uchun foydalidir . Ushbu sahifa sahifadan ustun bo'lganligi sababli index.php, u ilovaning ochilish sahifasiga aylanadi. Texnik xizmat ko'rsatish tugagach, index.htmlfayl nomi o'zgartiriladi yoki hujjat ildizidan o'chiriladi va odatiy dastur sahifasini qaytaradi.
Agar siz ushbu xatti-harakatni o'zgartirmoqchi bo'lsangiz, faylni tahrirlashingiz va faylning direktivada /etc/apache2/mods-enabled/dir.confko'rsatilgan tartibini o'zgartirishingiz kerak bo'ladi:index.phpDirectoryIndex
Faylni saqlash va yopgandan so'ng, o'zgarishlar kuchga kirishi uchun Apache-ni qayta yuklashingiz kerak bo'ladi:
Keyingi bosqichda PHP serveringizda toΚ»gΚ»ri oΚ»rnatilgan va sozlanganligini tekshirish uchun PHP skriptini yaratamiz.
5-qadam β Veb-serveringizda PHP ishlov berishni sinab ko'rish
Endi veb-saytingiz fayl va papkalarini joylashtirish uchun maxsus joylashuvingiz bor, biz Apache PHP fayllari uchun soβrovlarni boshqarish va qayta ishlashga qodirligini tasdiqlash uchun PHP test skriptini yaratamiz.
info.phpShaxsiy veb-ildiz papkangiz ichida yangi fayl yarating :
Bu bo'sh faylni ochadi. Fayl ichiga to'g'ri keladigan PHP kodi bo'lgan quyidagi matnni qo'shing:
Ishingiz tugagach, faylni saqlang va yoping.
Ushbu skriptni sinab ko'rish uchun veb-brauzeringizga o'ting va serveringizning domen nomi yoki IP manziliga kiring, keyin skript nomi, bu holda info.php:
Siz shunga o'xshash sahifani ko'rasiz:

Ushbu sahifa PHP nuqtai nazaridan serveringiz haqida ma'lumot beradi. Bu nosozliklarni tuzatish va sozlamalaringiz to'g'ri qo'llanilishini ta'minlash uchun foydalidir.
Agar siz ushbu sahifani brauzeringizda ko'rsangiz, PHP o'rnatishingiz kutilganidek ishlayapti.
Ushbu sahifa orqali PHP serveringiz haqidagi tegishli ma'lumotlarni tekshirgandan so'ng, siz yaratgan faylni o'chirib tashlaganingiz ma'qul, chunki unda PHP muhitingiz va Ubuntu serveringiz haqida nozik ma'lumotlar mavjud. Buning uchun foydalanishingiz mumkin rm:
Agar maΚΌlumotlarga keyinroq yana kirish kerak boΚ»lsa, har doim bu sahifani qayta yaratishingiz 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, root 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_userismli yangi foydalanuvchi yaratadi . mysql_native_passwordBiz ushbu foydalanuvchi parolini sifatida belgilayapmiz password, lekin siz bu qiymatni oΚ»zingiz tanlagan xavfsiz parol bilan almashtirishingiz kerak.
example_databaseEndi 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.phpUshbu 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 PHP veb-saytlari va ilovalarini tashrif buyuruvchilaringizga xizmat ko'rsatish uchun moslashuvchan asos yaratdik, Apache-dan veb-server sifatida va MySQL-dan ma'lumotlar bazasi tizimi sifatida foydalanish.
Keyingi qadam sifatida siz HTTPS orqali veb-serveringizga ulanishlar xavfsizligini ta'minlashingiz kerak. Buni amalga oshirish uchun saytingizni bepul TLS/SSL sertifikati bilan himoyalash uchun Let's Encrypt -dan foydalanishingiz mumkin.
Last updated
Was this helpful?
