LAMP nima?

Kontaktlar / LAMP serverlarining uzluksiz rivojlanishi uchun Dark VDS ning maxsus tasvirlari MVC elementlarining o'zaro ishlashi

topshirish

Golovna Veb-qo'shimchalar to'plami ostida biz yopiq manba kodi bo'lgan dasturiy mahsulotlarning maxfiyligini hurmat qilamiz: operatsion tizim, veb-server, ma'lumotlar bazasi serveri va kodning o'rtasi.

    Eng mashhur va muhim stek - LAMP. Bu yopiq manba kodi bilan xususiy yechimlarga asoslangan veb-kengaytmalar to'plamining qisqartmasi.

    CHORAK -World Wide Web tarmog'ida keng qo'llaniladigan server dasturlari to'plamini (kompleksini) bildiruvchi qisqartma. Omborga kiritilgan komponentlarning birinchi harflari uchun LAMP nomlari:

    L inux operatsion tizimi Linux; L A

    pache- veb-server;

M

    ariaDB/

    ySQL-DBMS;

    P

Veb-qo'shimchalarni yaratish uchun ishlatiladigan HP dasturi (PHP-dan tashqari, Perl va Python kabi boshqa tillarni tushunish mumkin). LAMP qisqartmasi quyidagi ma'noda ishlatilishi mumkin: Veb-server infratuzilmasi

Dasturlash paradigmasi

Dasturiy ta'minot to'plami

Men sizdan boshlamoqchiman

dasturiy mahsulotlar

birma-bir ishlash uchun maxsus ishlab chiqilmagan, bunday ulanish moslashuvchanligi, unumdorligi va past mavjudligi tufayli yanada mashhur bo'ldi (barcha omborlar ochiq havoda va Internetdan osongina kirish mumkin).

LAMP to'plami ko'pgina Linux distributivlari zaxirasiga kiritilgan va ko'plab hosting kompaniyalarida mavjud. Linux so'rovlarni qabul qilish/uzatishni ta'minlaydi (uzatishni boshqaradi) va hamma narsaning yadrosi - server, DBMS, tilni qo'llab-quvvatlash. Ubuntu-da o'rnatish

Quyidagi paketlarni o'rnatish kerak:

Mahalliy paketlar ro'yxatini yangilash uchun apt-get update buyrug'ini ishga tushirgandan so'ng, barcha paketlarni bir xil apt-get install buyrug'i yordamida o'rnatishingiz mumkin:

Yuqoridagi buyruqni bosgandan so'ng, sizdan ushbu paketlarni va boshqa elementlarni o'rnatish so'raladi. MySQL uchun maʼmuriy parolni oʻrnatishdan oldin davom etish va boshqa soʻrovlar bilan davom etish uchun “y” tugmasini bosing va keyin ENTER tugmasini bosing.

Bu sizga minimal terishni o'rnatish imkonini beradi PHP kengaytmasi

, kerakli PHP va MySQL ulanishi..

Bu sizga kodni o'zingizning xohishingiz bilan o'zgartirish va o'zgartirish imkoniyatini beradi. Apache-ning asosiy afzalliklari ishonchlilik va konfiguratsiyaning moslashuvchanligi. Bu sizga ma'lumotlarni uzatish va ma'lumotlarni yig'ish uchun tashqi modullarni ulash imkonini beradi. DBMS uchun

autentifikatsiya koristuvachiv, keyin o'zgartirishlar to'g'risidagi bildirishnomani o'zgartiring. Hushyorlik MySQL DBMS ko'p sonli jadval turlari tomonidan qo'llab-quvvatlanadi: foydalanuvchilar jadval turlarini tanlashlari mumkin MyISAM, bu to'liq matnli qidiruvni rag'batlantiradi, jadvallar ham shunday

InnoDB - , bu boshqa yozuvlarga qaraganda tranzaktsiyalarni yaqinroq qo'llab-quvvatlaydi. Bundan tashqari, MySQL DBMS yangi jadval turlarini yaratish tamoyillarini ko'rsatadigan maxsus EXAMPLE jadval turi bilan birga keladi. Ochiq arxitektura va GPL litsenziyasi tufayli MySQL ma'lumotlar bazasida yangi jadval turlari doimiy ravishda paydo bo'ladi. PHP skript tili .

topshirish

Golovna fundamental ahamiyatga ega bo'lib, bu veb-qo'shimchalarni ishlab chiqishda intensiv ravishda to'xtab qolmoqda.

· Eng mashhur va muhim stek - LAMP. Bu vaqtda juda katta ahamiyatga ega hosting provayderlari

;

· CHORAK -World Wide Web tarmog'ida keng qo'llaniladigan server dasturlari to'plamini (kompleksini) bildiruvchi qisqartma. Va u yaratilishni shakllantiradigan o'rta dunyoning etakchilaridan biridir

· L dinamik veb-saytlar L- World Wide Web tarmog'ida keng qo'llaniladigan server dasturlari to'plamini (kompleksini) bildiruvchi qisqartma.

· pache Omborga kiritilgan komponentlarning birinchi harflari uchun LAMP nomlari:

M

inux - operatsion tizim

Linux tizimi

- veb-server;

ariaDB/

Dasturlash paradigmasi

Dasturiy ta'minot to'plami

Men sizdan boshlamoqchiman

dasturiy mahsulotlar

birma-bir ishlash uchun maxsus ishlab chiqilmagan, bunday ulanish moslashuvchanligi, unumdorligi va past mavjudligi tufayli yanada mashhur bo'ldi (barcha omborlar ochiq havoda va Internetdan osongina kirish mumkin).

ySQL – DBMS;



HP veb-qo'shimchalarini yaratish uchun ishlatiladigan til dasturidir (jumladan, PHP va Perl va Python kabi boshqa tillarga o'xshash bo'lishi mumkin).

Mahalliy paketlar ro'yxatini yangilash uchun apt-get update buyrug'ini ishga tushirgandan so'ng, barcha paketlarni bir xil apt-get install buyrug'i yordamida o'rnatishingiz mumkin:

1. Web-server infratuzilmasi 2. Dasturlash paradigmasi 3. Dasturiy ta'minot to'plami

Garchi dastlab ushbu dasturiy mahsulotlar birma-bir ishlash uchun maxsus ishlab chiqilmagan bo'lsa-da, bu kombinatsiya o'zining moslashuvchanligi, unumdorligi va past hajmi (barcha omborlari yopiq va Internetga osongina aralashishi mumkin) tufayli yanada mashhur bo'ldi.

LAMP ko'pgina Linux distributivlari zaxirasiga kiritilgan va ko'plab hosting kompaniyalarida mavjud.

Bu sizga kodni o'zingizning xohishingiz bilan o'zgartirish va o'zgartirish imkoniyatini beradi. Apache-ning asosiy afzalliklari ishonchlilik va konfiguratsiyaning moslashuvchanligi. Bu sizga ma'lumotlarni uzatish va ma'lumotlarni yig'ish uchun tashqi modullarni ulash imkonini beradi. DBMS uchun

MySQL DBMSning moslashuvchanligi jadval turlarining ko'pligi bilan ta'minlanadi: foydalanuvchilar qaysi jadval turini tanlashlari mumkin. MySQL DBMS ko'p sonli jadval turlari tomonidan qo'llab-quvvatlanadi: foydalanuvchilar jadval turlarini tanlashlari mumkin MyISAM, bu to'liq matnli qidiruvni rag'batlantiradi, jadvallar ham shunday

PHP- , bu boshqa yozuvlarga qaraganda tranzaktsiyalarni yaqinroq qo'llab-quvvatlaydi. Bundan tashqari, MySQL DBMS yangi jadval turlarini yaratish tamoyillarini ko'rsatadigan maxsus EXAMPLE jadval turi bilan birga keladi. Ochiq arxitektura va GPL litsenziyasi tufayli MySQL ma'lumotlar bazasida yangi jadval turlari doimiy ravishda paydo bo'ladi. PHP skript tili .

3. Web qo'shimchasi.

“Model-mavzu-nazoratchi” dizayn shabloni.

Dizayn namunasi - bu ko'pincha yuzaga keladigan ma'lum kontekstda asosiy dizayn muammosini taqdim etadigan me'moriy dizayn.

Qaysi oxirgi sinflar yoki dastur ob'ektlari tahlil qilinishini belgilamasdan, sinflar va ob'ektlar o'rtasidagi eslatmalar va o'zaro ta'sirlarni ko'rsatish OOPda an'anaviy hisoblanadi.

Model-View-Controller.

MVC dizayn namunasi dasturlardan, backend interfeysidan va asosiy mantiqdan ma'lumotlarni uchta qo'shni komponentga o'tkazadi: Model, Submission va Controller - teri komponentiga o'zgartirishlar mustaqil ravishda amalga oshirilishi mumkin bo'lgan tarzda.

Birinchidan, bu shablon 1970-yillarda Smalltalk tili uchun ishlab chiqilayotgan ramka asosida qurilgan.

Bundan buyon u mijoz interfeysi bilan ko'pgina ramkalarda asosiy rol o'ynaydi. U aksessuarlar dizayni bo'yicha o'z nuqtai nazarini butunlay o'zgartirdi. Model samaradorlikka to'la va berilgan vazifa uchun zarur echimlarni taqdim etadi.
Model asosiy vazifaning yuqori darajadagi mantig'ini o'z ichiga oladi (biznes mantig'i):

●dasturlar (CRUD yoki tashqi veb-xizmatlar) bilan ma'lumotlarni saqlash, o'chirish, yangilash;

●dasturning barcha mantiqiy inkapsulyatsiyasi ("bir xil" kontrollerlarni istisno qilish kerak, ya'ni biznes mantiqining bir qismini kontroller va ko'rinishlarga olib bo'lmaydi).

  1. CRUD - yaratish, o'qish, yangilash, o'chirish.
  2. Model ma'lumotlar va ularni boshqarishni tavsiflaydi va ko'pincha amaliy dasturlarning biznes mantig'i deb ataladi.
  3. yurak.
  4. Ushbu hujjatda siz nimadan foydalanishingiz va nima bilan o'zaro aloqada bo'lishingiz mumkinligi tasvirlangan
  5. amaliy dasturlar

4. Web qo'shimchasi.

Shakl dvigateli. Shablon dvigateli (vebda) - tse xavfsizlik dasturi yakuniy HTML sahifalarini yaratish uchun HTML shablonlaridan foydalanish imkonini beradi. Shablon dvigatellarining asosiy meta - bu formatlangan kodda ma'lumotlar taqdimotini kuchaytirish.

Bu ko'pincha dasturchi va maket dizaynerining parallel ishlash imkoniyatlarini ta'minlash uchun zarurdir.

Shablon dvigatellari ko'pincha kodning o'qilishini pasaytiradi va oldin o'zgartirishlar kiritadi

tashqi ko'rinish

, agar loyiha bir kishi tomonidan to'liq yakunlangan bo'lsa.

Shablon dvigatellari ko'pincha MVC paradigmasidan ilhomlangan.

Ushbu tushunchalar o'zaro bog'liq, ammo bir xil emas.

Shablonlashtirishning mohiyati dastur kodidan sahifa ramkasini mustahkamlashdan iborat.

Sahifaning ramkasi qo'shni matn fayliga (shablonga) joylashtiriladi va ma'lumotlarni kiritish zarur bo'lgan joylarda maxsus psevdo-o'zgarishlar joylashtiriladi.

Skript kerakli shablonni tanlaydi, yangi soxta o'zgarishlarni mos keladigan ma'lumotlar bilan almashtiradi va uni ko'rsatadi.

HTML sahifalar uchun shablonlarni yaratishda foydalanishning afzalliklari:

· Birinchidan, toza kod.

Dastur kodi HTML kodiga o'xshamaydi, uni o'qish oson.

Shu bilan birga, shablon faqat HTML kodini o'z ichiga oladi, unda qayerda va qanday ma'lumotlar kiritilganligi aniq bo'ladi (buning uchun ismlarni taxallus deb ataymiz).

· Boshqacha qilib aytganda, dasturiy ta'minot va HTML kod bo'limi dvigatel va dizaynni mustaqil ravishda ishlab chiqish imkoniyatini beradi. Tayyor saytning hozirgi ko'rinishini o'zgartirish uchun hech qanday dasturlash qobiliyatini talab qilmaydigan mos shablonga o'zgartirish kiritish kifoya.· Saytda bir qancha dizaynlar bo'lishi mumkin. Sayt dizaynini to'liq o'zgartirish uchun siz shablonli papkaga yo'lni o'zgartirishingiz kerak. Afzalliklari: · Tashqi tomondan, qo'shimchaning mantig'i ko'rsatiladi;.

· Sandbox rejimi; · mantiqiy bloklar yoki displey operatorlarining toza tashqi ko'rinishi;, · Platformalar (tillar) o'rtasida uzatish - ya'ni., shablon tahlilchisi har qanday usulda yozilishi mumkin;), biz ushbu shablonlarni saralashimiz va ularni ma'lumotlar bilan saqlashimiz bilan biz mos keladiganlarini olamiz.

Bundan tashqari, u ishlab chiquvchilar shablondagi dastur mantig'i yoki SQL bayonotlariga xalaqit bermasligini kafolatlaydi.

Sintaksis imkoniyatini cheklab, shablon muharririga xabar berish kerak bo'lsa, "qum qutisi" rejimi yanada rivojlangan bo'lishi mumkin.

Masalan, bu foydalanuvchilar materiallarni, html-layoutni va vikory xizmatining o'ziga xos dizaynlarini mustaqil ravishda tarqatadigan bloglar xizmatlariga tegishli. 5. Web qo'shimchasi. Relyatsion ma'lumotlar bazalari

Relyatsion ma'lumotlar bazasi - bir xil turdagi ob'ektlar haqidagi ma'lumotlarni saqlaydigan o'zaro bog'liq jadvallar to'plami.

Jadvalning qatorida bitta ob'ekt (masalan, mahsulot, mijoz) haqidagi ma'lumotlar mavjud va jadval ustunlari tavsiflaydi.

Har xil xususiyatlar

bu ob'ektlar - atributlar (masalan, nomi, mahsulot kodi, mijoz haqidagi ma'lumotlar).

Yozuvlar, keyin jadval satrlari bir xil tuzilishga ega - ular ob'ektning atributlarini saqlaydigan maydonlardan iborat.

Demak, teri maydoni ob'ektning faqat bitta xususiyatini tavsiflaydi va bitta turdagi ma'lumotlarni o'z ichiga oladi. Barcha yozuvlar bir xil maydonlarni o'z ichiga oladi, bundan tashqari ob'ektning turli ma'lumotlar organlari ko'rsatiladi..

Persha - bu oddiy shakl.

Relyatsion jadval birinchi normal shaklga keltiriladi, agar uning har bir satri birorta maydonida birdan ortiq qiymatga ega bo'lmasa va kalit maydonlarining har biri bo'sh bo'lmasa. Shunday qilib, agar Talabalar jadvalidan talabaning ismi uchun yozuvlarni tanlash kerak bo'lsa, PIB treki taxallus, Ism, Ota tomonidan qismlarga bo'linadi. Boshqa oddiy shakl.

Relyatsion jadval boshqa normal shaklda aniqlanadi, chunki u birinchi normal shaklning afzalliklarini qondiradi va uning asosiy kalitdan oldin kiritilmagan barcha maydonlari birlamchi kalit bilan bir xil funktsional joylashuv bilan bog'lanadi.

Jadvalni boshqa normal shaklga keltirish uchun maydonlarning funktsional chuqurligini aniqlash kerak.

Funktsional chuqurlik maydonlar - bu axborot ob'ektining misolida kalit atributining yagona qiymati tavsif atributining faqat bitta qiymatiga mos keladigan joy. Uchinchisi - oddiy shakl.

Jadval uchinchi normal shaklda, chunki u boshqa normal shaklning afzalliklarini qondiradi, chunki uning kalit bo'lmagan maydonlari boshqa kalit bo'lmagan maydonlar bilan funktsional ravishda yotmaydi.

Misol uchun, stol Talaba (Guruh No., PIB, Hall kitobi No, Tug'ilgan sanasi, boshlig'i) uchta maydonga ega - Hall kitobi No, Guruh raqami, Bosh direktor o'tish holatida.

Guruh raqami xona kitobi raqami ostida, boshliq esa guruh raqami ostida ko'rsatilgan.

O'tish joyini olib tashlash uchun Talabalar jadvalidagi ba'zi maydonlarni boshqa Guruh jadvaliga ko'chirish kerak.

Jadvallar quyidagicha ko'rinadi: Talaba (guruh raqami, PIB, kitob raqami, tug'ilgan kun), guruh (guruh raqami, boshliq).

Relyatsion jadvallarni bir-biri bilan bog'lash mumkin, keyin esa ma'lumotlarni bir vaqtning o'zida bir nechta jadvallardan bog'lash mumkin.

Ma'lumotlar bazasi ma'lumotlarini o'zgartirish uchun jadvallar bir-biriga bog'langan. Teri juftlari jadvalining havolalari ularda yangi printsiplarning mavjudligi uchun ta'minlanadi.:

Bunday turlari bor

ma'lumot havolalari

· birdan birga;

· Birdan ko'pga;

· Boy va boy.

Veb qo'shimcha.

NoSQL.

"NoSQL" atamasining ma'nolaridan biri shundaki, u maxsus (yoki umumiy) ma'lumotlar modellarini emas, balki aloqador modelni taqdim etadi. Misol uchun, an'anaviy muvaffaqiyatli NoSQL tizimlari Redis yoki Memcache kabi kalit-qiymat juftligini saqlash tizimlarini o'z ichiga oladi. Ma'lumotlarning ushbu modeli juda oddiy - bu assotsiativ massiv bo'lib, bu erda kalitlar qator tipidagi va qiymatlar har qanday ma'lumotlarni o'z ichiga olishi mumkin.

Har qanday assotsiativ massiv singari, bunday tizimlar ma'lumotlar bilan operatsiyalar to'plamining o'zaro ta'sirini rag'batlantiradi - kalit qiymatini o'qish, kalit qiymatini o'rnatish, kalitni va unga bog'liq qiymatni o'chirish.

Bunday tizimlarda "kalitlar ro'yxatini olish" operatsiyasi qo'llab-quvvatlanmasligi mumkin.

Muvaffaqiyatli NoSQL tizimlarining yana bir misoli hujjatlar to'plamidir.

Bunday klasterlardagi ob'ektlar kuchli strukturaning assotsiativ massivlari bilan tavsiflanadi, shuning uchun turli xil ob'ektlar bitta va bir xil "jadvalda" saqlanishi mumkin. MongoDB va Cassandra bu sinf tizimlariga misol bo'la oladi. Keyin veb-sahifalar uchun JavaScript-ni amalga oshirishni ko'rib chiqamiz.

Bugungi JavaScript maxfiy ahamiyatga ega bo'lgan "xavfsiz" dasturdir.

Bu xotira, protsessor va birinchi navbatda brauzerlarga yo'naltirish bilan past darajadagi ishlov berish imkoniyatlarini ta'minlamaydi, ular talab qilinmaydi.

Boshqa imkoniyatlarga kelsak, hid har bir JavaScript ishga tushirilishining tubida yotadi.

JavaScript brauzeri sahifani manipulyatsiya qilish, frontend va server bilan ishlashni o'z ichiga olgan hamma narsani boshqarishi mumkin:

· Har xil animatsiya effektlarini qo'shing

· Yerda reaksiya - sichqoncha tugmasi harakatini, klaviaturadagi tugmachalarni bosishni boshqarish · Shakl maydoniga kiritilgan ma'lumotlarni serverga yuborishdan oldin tekshiring, bu esa o'z navbatida serverdan qo'shimcha ma'lumotlarni olib tashlaydi.· Cookie fayllarini yarating va o'qing, kompyuteringiz haqidagi ma'lumotlarni oling

· Brauzer brauzer uchun muhim degan ma'noni anglatadi - sehr

zarur tomon

qaysi brauzer uchun maxsus ishlab chiqilgan

· HTML elementlari o‘rniga o‘zgartirish, yangi teglar qo‘shish, uslublarni o‘zgartirish

Obmezhennya · Yordam olish uchun ularni ochmaguningizcha JavaScript oyna va yorliqlarni yopa olmaydi· Biz sahifaning chiqish kodini o'g'irlay olmaymiz va sahifadan matn yoki rasmlarni nusxalashning oldini olmaymiz

· Biz domenlararo so'rovlarni bajara olmaymiz yoki boshqa domenda joylashgan veb-sahifalarga kirishni rad eta olmaymiz. Agar turli domenlardagi sahifalar bir vaqtning o'zida turli xil brauzer yorliqlarida ko'rsatilsa, u holda JavaScript kodi Bir domenga tegishli bo'lgan narsa boshqa domendan veb-sayt haqidagi ma'lumotlarga kirishga ruxsat bermaydi. Bu domen egasiga ko'rinadigan shaxsiy ma'lumotlarning xavfsizligini kafolatlaydi, uning sahifasi hisob depoziti uchun ochiq

· Bir ogohlantirish bilan foydalanuvchi kompyuterida joylashgan fayllarga yoki veb-sahifalardan tashqariga kirishga ruxsat bermaydi:

kukilar

, lekin ular kichik matnli fayllar.

, qaysi JavaScript yozish va o'qish mumkin. Umuman olganda, biz buzuq kodni aniqlashni qiyinlashtirish uchun biz shu tarzda parchalanayotganimizni aytishimiz mumkin. 8. Web qo'shimchasi. Seredovishche Vikonanny. Veb-server o'rnatildi va sozlandi., Apache server o'zaro platformali veb-server bo'lib, bugungi kunda u eng keng tarqalgan, chunki ko'pgina xosting saytlarida o'rnatish va osonroq sozlanganlar, masalan, veb-server

· nginx

· Xuddi shunday apache serveri

U denwer va xampp kabi paketlarda taqdim etiladi va php apache hatto mashhur paketdir. Apache o'rnatilgan:

· Ichimliklarni davriy ravishda qabul qiladi

· So'rashga majbur qiladi

· Tarkibni yaratadi

· Shaxsiy tarkibni taqdim etadi

Apache veb-saytida bir nechta domen nomlarini bitta IP manzilga tarqatish imkonini beruvchi virtual xost mexanizmi mavjud. Teriga domen nomi

Sozlamalaringizni o'rnatishingiz mumkin, Apache sozlamalari saytingizning ildiz katalogiga o'rnatilishi kerak bo'lgan .htaccess faylida amalga oshiriladi. Zamovchuvannyam uchun vikoristovuetsya bo'lgan Apache port, 80. Siz Skype-dan tashqari, ba'zi dasturlarda muammolarga duch kelishingiz mumkin. Ushbu muammoni hal qilish uchun Skype-da 80-portni yoqishingiz kerak.

Agar siz apache port 80 darslarini vikoristing qilsangiz, unda siz qiymatni o'zgartirishingiz mumkin moslashtirilgan veb server. matnli fayllar Apache saytida

katta miqdor

· statiklar (tasvirlar) samaraliroq ishlatiladi, quyida joylashgan sayt.

Ba'zan apache server + nginx kabi ulanish mavjud, nginx statik ma'lumotlarni etkazib berish uchun ishlatiladi.

PHP da dasturlash uchun siz quyidagi komponentlarni o'rnatishingiz kerak:

apache

yoki boshqa veb-server;

· MySQL (veb interfeysi orqali MySQL bilan ishlash uchun + phpmyadmin).

Ushbu komponentlarni o'rnatish uchun ikkita variant mavjud:

· Tayyor paketni o'rnatish (xampp, denwer va boshqalar) statiklar (tasvirlar) samaraliroq ishlatiladi, quyida joylashgan sayt· Barcha paketlarni o'rnatish to'g'ri Birinchi marta hamma narsa yanada sodda, faqat paketni oling va uni o'rnating.

Biroq, yangilangan versiyalar bilan qo'lda o'rnatishda hech qanday muammo yo'q, chunki... U qanday ishlashini va qanday o'rnatilishini allaqachon bilasiz.

Shuningdek, paketlar bilan bog'liq muammolarga duch kelish ehtimoli kamroq. Qo'lda o'rnatish:· Yuklab olinadi va o'rnatiladi

tomonidan statiklar (tasvirlar) samaraliroq ishlatiladi, quyida joylashgan sayt yuborilgan · MySQL-ni yuklab oling va o'rnating aloqaga ega

· qanday qo'shimcha o'rnatish mumkin phpmyadmin.

veb-interfeys orqali MySQL-dan foydalanadigan robotlar uchun

O'rnatishdan so'ng yoki biron bir o'zgartirish kiritganingizdan so'ng, siz qayta yoqishingiz kerak ."Ishga tushirish - boshqarish - boshqaruv - xizmatlar" ga o'ting va u erda Apache-ni toping, o'ng tugmachani bosing va ichkariga bosing

kontekst menyusi biz qayta sehrlashni tanlaymiz. Ishlash uchun virtual xostni qo'shishingiz kerak, shuning uchun siz o'qishingiz mumkin

Bu yerga

Seredovishche Vikonanny

eTBanager dasturi ma'lumotlar bazasi serveri serverida saqlangan ma'lumotlarni qayta ishlaydigan JBOSS server plaginidir.

MySQL ma'lumotlari

2. Qo'shimcha

1. eTBManager uchun JBOSS Java dastur serveri.

2. eTBManager dasturi.

3. Web server

1. Mijozlardan veb-so'rovlarni qabul qilish va qayta ishlash uchun Apache HTTPD.

2. Apache HTTPD va JBOSS o'rtasidagi o'zaro aloqani ta'minlash uchun mod_jk ulagichi.

Dasturni o'rnatish uchun kerak bo'lgan hamma narsa, shu jumladan Men versiyani saqlayman Dasturiy ta'minot va o'quv ma'lumotlar bazasiga ftp:.ua manzilidan anonim kirish bilan kirish mumkin.

G'alabaning qolgan qismi xavfsizlik dasturida bepul mavjud; qolgan versiyalarni nashriyot saytlaridan yuklab olish mumkin.

Qolgan versiyalar tuzatildi va yanada barqaror ishlashi mumkin, ammo nomuvofiqlik uchun sinovdan o'tkazilmagan. 9. Web texnologiyalarni ishlab chiqish. 1.0.

Web 1.0, Web 2.0.

Web 1.0 TPC/IP protokollarini Internetga kiritgan “Worldwide Web” ning birinchi avlodi.

Internetdan oldingi davrda bo'lgani kabi, faqat ikki nuqtali chiziqli ulanishlar mavjud edi, keyin Internet (axborot texnologiyasi) paydo bo'lishi bilan ma'lumotlarda uzluksiz "bemaqsad" ni yaratishga imkon beradigan tarmoq morfologiyasi o'rnatildi. bo'shliqlar, shu jumladan resurslarda to'plangan har qanday ma'lumot

Veb o'lchamlari Pavutini rivojlanishining ushbu davri HTML-gipermatnli havolalardan statik saytlarni yaratish, ma'lumotni serverlardan mijozga passiv uzatish va axborot oqimlarining bir yo'nalishli tabiati bilan tavsiflanadi:· Resurs yaratuvchilardan serverga ma'lumotlarni qo'lda yig'ish oqimi;

· Serverdan mijozlarga axborotni passiv taqsimlash oqimi.

Bu sharob va notinch rivojlanish davri

elektron kutubxonalar

, Internetdagi ma'lumotlar kataloglari Web 2.0 - bu interaktiv "sintaktik" veb, agar dialog tizimining resursi - mijoz, mijoz - server kengaygan bo'lsa. Bu Internetning xizmat ko'rsatish yo'nalishi bo'lib, unda serverlar, qidiruv tizimlari va elektron tijorat o'rtasida interaktiv axborot jarayoni rivojlangan.

Axborot oqimini yaratish egalarining o'z qo'lida qoldirildi va saytlar egalari asosan yaratilgan va qo'llab-quvvatlovchi infratuzilma bilan o'ralgan edi.

Web 3.0 semantik Pavutina (Semantic Web) - "Internetni rivojlantirish global kontseptsiyasining bir qismi bo'lib, u World Wide Web-da mavjud bo'lgan ma'lumotlarni mashinada qayta ishlash imkoniyatini amalga oshirishdir. Kontseptsiyaning asosiy urg'u resurslarning kuchi va o'zgarishini aniq tavsiflovchi metama'lumotlar bilan ishlashdir. Butun dunyo bo'ylab pavutini Bu soatda vikoristni almashtirish matn tahlili hujjatlar." Bu Merezha bo'yicha chora-tadbirlarning maqsadi, ya'ni World Wide Web resurslari haqidagi metama'lumotlarni joylashtirish va ular bilan parallel ravishda ishlash. Avtomatlashtirilganga asoslangan

axborot jarayonlari

serverlar o'rtasida.

Semantik vositalarni yanada rivojlantirish mumkin: matn resurslarini semantik belgilashdan tortib, inson iboralarining ma'nosini tushunadigan aqlli algoritmlargacha. Vinikli merezhevi, Pavutinaning giper-serverlari o'rtasidan shaxsiy axborot resurslarini boshqarishni olib tashlaydigan "qorong'i" hisoblar. Veb-qo'shimchalarini yaratgan texnologiyalar ingichka bo'lib, hunarmandlar va ijodkorlar uchun bar yaratdi.

axborot resurslari axborot texnologiyalari bo'yicha kundalik bilimlariga tayanmasdan, nolga kamaydi. Sami

Keng texnologiyalar avtomatik ravishda ishlaydigan veb-ga asoslangan onlayn qo'shimchalar darajasiga ko'tarilmoqda: resurslarni yaratish interfeyslari, semantik tarjimonlar, yangiliklar almashinuvchilari, ovoz analizatorlari va maqsadli ma'lumotlarning avtomatik formulalari ynyh bazalari. Ichki serverlararo interfeyslarga qo'shimcha ravishda jismoniy yorug'lik bilan insoniy bo'lmagan interfeyslar mavjud: multimedia ma'lumotlarini avtomatik yig'ish, ma'lumotlarni robotli dasturiy ta'minot tahlili

tashqi dunyo

, veb-giper-serverlar tomonidan ushbu ma'lumotni qazib olish. Robotlar kontentning faol moderatsiyasi bosqichiga o'tadi, tsenzura, ya'ni Web 3.0 da nima nashr etilishi mumkin va nima mumkin emas. 11. Web texnologiyalarni ishlab chiqish. Veb-xizmatlar. Veb-xizmat, veb-servis - veb-manzil bo'yicha aniqlanadi

dasturiy ta'minot tizimi

REST (Vakillik holatini o'tkazish) - bu veb-xizmatlarni taqdim etish uchun ishlatiladigan World Wide Web kabi taqsimlangan tizimlar uchun dasturiy ta'minot arxitekturasining uslubi.

REST atamasi HTTP protokoli mualliflaridan biri Roy Filding tomonidan 2000 dan ortiq marta kiritilgan.

RESTni qo'llab-quvvatlaydigan tizimlar RESTful tizimlar deb ataladi.

REST opsiyasi qo'shimcha ichki ishlovsiz ma'lumotlarni boshqarish uchun juda oddiy interfeysga ega. Har bir ma'lumot bo'lagi URL kabi global identifikator bilan noyob tarzda aniqlanadi. Har bir URL o'ziga xos tarzda, qat'iy vazifa formatiga ega.

Kundalik veb-xizmatlar uchun REST wiki.

Ma'lumki, veb-xizmat - bu Butunjahon Internet tarmog'ida ishlaydigan va unga kirish HTTP protokoli orqali ta'minlanadigan qo'shimcha bo'lib, ma'lumot almashish chegarasidan tashqariga chiqadi. XML formati.

Shunday qilib, tanaga uzatiladigan ma'lumotlar formati har doim XML bo'ladi. Teri ma'lumotlar birligi uchun 5 ta harakat ko'rsatilgan. Va o'zingizga: OLISH /info/(indeks)

- Barcha ob'ektlar ro'yxatini ko'rsatadi. OLISH /info/(id) (Ko'rish) - Men uni olib tashlayman qo'shimcha ma'lumot

ob'ekt haqida. PUT /info/ yoki boshqa
POST /ma'lumot/

12. (Yaratish)- Men yangi ob'ekt yaratyapman.

OʻCHIRISH /info/(id)

(O'chirish) – identifikatordan (id) ma’lumotlarni o‘chirib tashlaydi. Ko'rinishidan, REST arxitekturasi rivojlanish nuqtai nazaridan juda oddiy.

Ko'rsatmalarga qarab, siz formatlarni tushunmasdan nima ishlayotganini ayta olasiz (SOAP, XML-RPC uchun).

Ma'lumotlar qo'shimcha ma'lumotlarni saqlamasdan uzatiladi, shuning uchun REST kamroq resurs talab qiladi, chunki u nima qilish kerakligini tushunish uchun tahlil qilishni talab qilmaydi va ma'lumotlarni bir formatdan boshqasiga o'tkazishni talab qilmaydi. HTTP protokoli. Gipermatnli hujjatning tuzilishi Asosiy standartlar. Va ular matn, tugmalar va boshqalarning bir qismi ko'rinishida ko'rsatilishi mumkin. Xabarlarni bir xil hujjatning turli bo'limlariga o'tish uchun o'zgartirish mumkin (xabar qaysi bo'limda chaqiriladi). OLISH /info/(id) langar).

langar







Keling, HTML hujjatning tuzilishini ko'rib chiqaylik.

Oddiy shaklda siz uni oddiy shaklda yozishingiz mumkin: Hujjat index.html nomi ostida saqlanadi va brauzerda ochiladi. Nima mi bachimo?


Hech narsa - bo'sh tomon. Keling, bu dumbani ajratamiz va uni to'liq to'ldiramiz. HTML elementlari teglardir.

Teglar - tse kalit so'zlar, kamarlarga joylashtirilgan. і Teglar bitta bo'lishi mumkin (masalan, gorizontal xususiyat ) yoki yigitlar.

Boshqa turdagi element ochilayotgan tegdan iborat (masalan, ) va yopiladigan teg (). Elementning harakati ochiladigan va yopiladigan teg orasidagi maydonga tarqaladi.

Butun gipermatnli hujjat o'rtada joylashgan

html elementi

(keyin orasida

).

Ushbu elementning o'rtasida yana ikkita element mavjud - hujjatning nomi (bosh element), unda hujjat va hujjatning asosiy qismi (element) haqida xizmat ma'lumotlari mavjud.

), brauzer oynasida ko'rsatilgan ma'lumotlarni qanday joylashtirish.

Yaratish uchun induktsiya qilingan struktura etarli oddiy HTML Keyin brauzeringizda sahifani oching.

Brauzerning yuqori yuqori qatorida biz sarlavha elementining o'rtasida ko'rsatilganlarni ko'ramiz.

Bundan tashqari, ushbu ma'lumot sahifani xatcho'plarga qo'shganda bildirishnoma olish uchun brauzer tomonidan qidiriladi.

Sahifani to'g'ri ko'rsatish uchun bizning hujjatimiz xuddi shu kodda yozilgan.

Kim uchun qator qo'shiladi

Bu erda biz standart Windows kodini ko'rsatamiz windows-1251.

oddiy HTML Albatta, bu etarli emas, hujjatning o'zi sizning kodingizga kiritilishi kerak.

Bundan tashqari, standart utf-8 kodlash (belgilar to'plami kengaytmalarini qo'llab-quvvatlaydigan Unicode).

Xuddi shu format qo'shimcha qatorlar ortidagi kaskadli uslublar jadvallari uchun ham mumkin

Hujjatning tanasi (tana elementi) vizual ma'lumotlarni o'z ichiga oladi, keyin.

har doim brauzer oynasida ko'rsatiladigan.

Dodamo qatori "Tuzilishni tuzatish uchun hujjat kodi".

Shuningdek, hujumning qolgan muqobil varianti (boshqa hujjatlar uchun shablon sifatida foydalanishimiz mumkin): Hujjat kodi to'g'ri tuzilishga ega .

Natijalardan biz tanlangan standart uchun hujjat shablonini tanladik.

Ushbu maqolada men sizga FreeBSD-ni (L)AMP stekini va har qanday ma'muriy vositalarni to'liq yalang'och serverda ishga tushirish uchun bajarishingiz kerak bo'lgan barcha qadamlar haqida aytib beraman va hamma narsa bir marta ishlashi uchun buni bajaring. om muvaffaqiyatsizliklar va kutilmagan vaziyatlarsiz.

Krok 1. FreeBSD ni o'rnating

Bundan buyon bizga operatsion tizimning o'zi kerak bo'ladi. Keling, rasmiy sahifaga o'tamiz FreeBSD (www.freebsd.org), “FreeBSD-ni hozir oling” xabarini bosing, so'ngra OS versiyasini tanlang (yozish vaqtida ikkita versiya mavjud edi: 8.2-RELEASE va 7.4-RELEASE), arxitektura (amd64 yoki i386) , xabar va mavjud rasmlar ro'yxatini bosing. Ulardan beshtasi bor: bootonly - chegara bo'ylab o'rnatish uchun eng muhim rasm, disk1 - ISO tasviri CD ga yozish uchun, dvd1 - DVD ga yozish uchun tasvir, livefs - LiveCD holda

grafik interfeys .

, USB kalit zanjiriga yozish uchun memstick. Bizning holatda, faqat birinchi va ikkinchisi mos keladi va aralashmada DHCP serveri yo'qligi sababli, faqat ikkinchisi (yuklab olish uchun DVD tasviri yo'q, shuning uchun bizga hali ham CD kerak). Keyin, ISO tasvirini yuklab oling, uni diskga kesib oling, uni server serveriga joylashtiring va uni o'chiring / yoqing. OS hayajonlanguncha kuting.

O'rnatishni tugatgandan so'ng, ekranda chekka tanlash varianti va o'n ikkita elementdan iborat tizimni o'rnatish menyusi paydo bo'ladi. Biz ulardan faqat bittasini eslatib o'tishimiz mumkin: "Express", bu sizga operatsion tizimni imkon qadar tezroq, ko'plab bildirishnomalar, ovqatlanish va sozlashlarni o'tkazib yubormasdan o'rnatish imkonini beradi. Uni tanlang, bo'rttirma qiling Diskni qismlarga ajratish dasturi oynasi paydo bo'ladi.

Bu erda siz yoki shunchaki bosishingiz mumkin har bir diskning vikoristan uchun, yoki yaqinlashib kelayotgan arafasida. Endi fayllarni nusxalash jarayoni boshlanadi, shundan so'ng ekranda o'rnatuvchining asosiy menyusidagi o'zgarishlar haqida bildirishnoma paydo bo'ladi. Hujum , bundan keyin

, “Ha”

.

Operatsion tizim qayta ishga tushishi mumkin.

OS qattiq diskda o'rnatilishi uchun diskni haydovchidan olib tashlashni unutmang. O'rnatish tugagandan so'ng, foydalanuvchi nomi ildizini kiriting va buyruq tarjimoniga kirishni rad eting.

Krok 2. Moslashtirish

Biz faqat FreeBSD-ni o'rnatdik, ammo biz hali to'liq server rolidan voz kechishga tayyor emasmiz: tarmoq ishlamayapti, root-da parol yo'q va tizimda faqat bitta foydalanuvchi mavjud.

Vipravimmo tse.

Birinchidan, parolingizni o'rnatamiz:

Ekranda ovqat paydo bo'ladi, ularning aksariyati ko'rsatilmasligi mumkin (

), muhimi foydalanuvchi nomi, standart buyruq tarjimoni (tcsh ni tanlang) va parol.

Misol uchun, buyruq ekranda hisob sozlamalari ro'yxatini ko'rsatadi, so'rovda "ha" so'zini kiriting va so'rovda "yo'q" ni kiriting.

Ildiz huquqlarini olib tashlaganingizga ishonch hosil qilish uchun g'ildirak guruhiga quyidagilarni qo'shing:

# pw groupmod g'ildirak -m foydalanuvchi nomi

Biz /etc/fstab faylini tuzatamiz, shunda hech kim /tmp va /var bo'limlarida joylashgan fayllarni ishga tushira olmaydi.

Buning uchun ushbu bo'limlarning terisi uchun Options maydoniga "noexec" belgisini qo'shing.
Biz tizim fayllariga kirish uchun yanada qattiqroq cheklovlarni o'rnatmoqdamiz:
# chmod 0600 /etc/syslog.conf
chmod 0600 /etc/rc.conf

chmod 0600 /etc/newsyslog.conf

chmod 0600 /etc/hosts.allow

chmod 0600 /etc/login.conf

Endi biz ulanish chegarasini sozlashimiz kerak.

FreeBSD-da barcha global sozlamalar /etc/rc.conf faylida saqlanadi, unga qo'shimcha muharrir yordamida va quyidagi qatorlarni qo'shish orqali kirish mumkin:
# ee /etc/rc.conf

hostname="host.com"

ifconfig_em0="inet 1.2.3.4 tarmoq niqobi 0xffffffff"

default router = "5.6.7.8"

Bu erda em0 boshqa qatorda - bu sozlanayotgan oraliq interfeysning nomi.

Mavjud periferik interfeyslar ro'yxatini qo'shimcha ifconfig buyrug'i yordamida topish mumkin.

Variantning qiymati sifatida siz dhclient yordamida interfeysni sozlaydigan DHCP ni belgilashingiz mumkin.

Tezkor o'rnatish bilan paketlar qabul qilinmaydi

SYN va FINni tayinlaydi

tcp_drop_synfin="HA"

Wimicamo yuborilgan pochta

sendmail_enable="YO'Q"
sendmail_submit_enable="YO'Q"

SSH o'z ichiga oladi

sshd_enable="HA"

Tahrirlovchidan chiqish uchun bosing va ikkita .

/etc/resolv.conf ga DNS server manzilini qo'shing:
# ee /etc/resolv.conf

nom serveri 8.8.8.8

Chegarani sozlashni sozlash uchun biz endi buyruq beramiz:

# /etc/rc.d/netif qayta ishga tushirish

Tarmoq mavjudligini tekshirish:

# ping execbit.ru

/etc/sysctl.conf fayliga bir nechta jigarrang qatorlar qo'shing:

# ee /etc/sysctl.conf

Yopiq portlarga ulanish urinishlariga javob bermang

(Har xil turdagi DoS hujumlariga qarshi farqlanadi va murakkablashadi

skanerlash portlari)
net.inet.tcp.blackhole=2

net.inet.udp.blackhole=1

Siz barcha jarayonlar ro'yxatini faqat ildiz ko'rishingiz mumkin

kern.ps_showallprocs=0

SSH serverini shafqatsiz kuch hujumlaridan himoya qiling:

# echo "MaxStartups 5:50:10" >> /etc/ssh/sshd_config

/etc/rc.d/sshd-ni qayta ishga tushiring

Endi SSH serveri, agar beshta noto'g'ri ro'yxatga olish yaratilgan bo'lsa, birdaniga yangi ulanishlarning 50 foiziga ruxsat beradi.

Agar ularning o'ntasi bo'lsa, server umuman hisobot berishni to'xtatadi.

Ekspress o'rnatishdan foydalanilganda, portlar tizimi (OTda uchinchi tomon dasturlarini o'rnatish uchun ramka) FreeBSD-da avtomatik ravishda o'rnatilmaydi, shuning uchun biz buni qo'lda qilishimiz kerak (bu yaxshi, chunki biz eng so'nggi portlar to'plamini olib tashlab qo'ymaslik uchun o'chiramiz. eskilarini almashtiring wow PZ):

# portsnap olish ekstrakti

Siz asosiy tizimni ham yangilashingiz mumkin, lekin bu shart emas:

# freebsd-yangilanishni olish

freebsd-yangilanishni o'rnatish

o'chirish -r hozir

Portlar yangilangandan so'ng, biz kelajakda tizimga o'rnatilishi mumkin bo'lgan kuchli rootkitlar uchun zarur bo'lgan rkhunter vositasini tizimga o'rnatamiz:

# cd /usr/ports/security/rkhunter

o'rnatishni toza qiling

/usr/local/etc/rkhunter.conf konfiguratsiya faylini shunday tahrirlash mumkinki, MAIL-ON-WARNING opsiyasi anomaliya aniqlangani haqida xabar berish uchun elektron pochta xabarini joylashtiradi.

Asbobni yangilash uchun tekshirish yaxshi fikr:

# rkhunter --yangilash

Shundan so'ng, biz rootkit qidiruvi belgisi sifatida aniqlanadigan tizim fayllarining suratini olamiz:

# echo "daily_rkhunter_update_enable="HA"" > /etc/periodic.conf

echo "daily_rkhunter_check_enable="HA"" > /etc/periodic.conf

Masofaviy serverlarni boshqarish uchun o'rnatiladigan Webmin, veb-interfeysni o'rnating (SSH boshqaruv vositalaridan foydalanishga ko'proq qiziquvchilar bu bosqichni o'tkazib yuborishlari mumkin):

# cd /usr/ports/sysutils/webmin

Portlar yangilangandan so'ng, biz kelajakda tizimga o'rnatilishi mumkin bo'lgan kuchli rootkitlar uchun zarur bo'lgan rkhunter vositasini tizimga o'rnatamiz:

echo "webmin_enable="YES"" >> /etc/rc.conf

# /usr/local/lib/webmin/setup.sh

Elektr ta'minoti bosim bilan tasdiqlanishi mumkin Biroq, parolni kiritish uchun o'ng tomonga o'tsangiz ("Kirish paroli:" qatori), Webminga kirish uchun parolni kiritishingiz kerak (qisqasi, u boshqa parollardan farq qilmaydi).

Keyin Webminni ishga tushirishingiz mumkin:

# /usr/local/etc/rc.d/webmin start

Men eng yaqin brauzeringizning manzil satriga “https://host.com:10000/” manzilini kiritish orqali ushbu robotga norozilik bildiraman.

AMP

Endi Apache veb-server, MySQL ma'lumotlar bazasi va PHP tarjimoni kabi AMP stekini o'rnatish vaqti keldi.

Keling, Apache bilan boshlaylik.

Biz portda demo qilamiz va qolgan versiyani o'rnatamiz: # cd /usr/ports/www/apache22

konfiguratsiyani o'rnatishni toza qilib qo'ying

Ekranda konfigurator oynasi paydo bo'ladi, undan siz ixtiyoriy server komponentlarini o'rnatishni tanlashingiz mumkin.

Bu erda biror narsani o'zgartirishning ma'nosi yo'q, shuning uchun siz muloyimlik bilan siqib qo'yishingiz mumkin

.

O'rnatishni tugatgandan so'ng, serverni avtomatik ishga tushirishga qo'shishni unutmang (chunki SSL qo'llab-quvvatlashi shart emas, siz boshqa qatorni o'tkazib yuborishingiz mumkin):

# echo "apache22_enable="YES"" >> /etc/rc.conf

echo "apache22ssl_enable="HA"" >> /etc/rc.conf

Bundan tashqari, konfiguratsiya faylidan oldin HTTP ulanishlarini buferlaydigan accf_http modulini yoqish bo'yicha ko'rsatmalar qo'shing, bu serverni buzadi va SYN toshqiniga qarshi kurashda yordam beradi:

# echo "accf_http_ready="HA"" >> /etc/rc.conf

echo "apache22ssl_enable="HA"" >> /etc/rc.conf

kldload accf_http

# cd /usr/ports/lang/php5

1. konfiguratsiyani o'rnatishni toza qiling

"Apache modulini yaratish" opsiyasi tanlanganligiga ishonch hosil qiling.
Bundan tashqari, yaxshilikning kengayishi:

2. # cd /usr/ports/lang/php5-kengaytmalari

PHP-ni sozlashda MySQL bilan ishlash uchun PHP modulini o'rnatishdan oldin portlar tizimini faollashtiradigan MySQL ma'lumotlar bazasini qo'llab-quvvatlash elementini tekshirishni unutmang. Busiz men hech narsa so'ramayman.

3. Endi biz Apache konfiguratsiya faylini matn muharririda ochamiz (FreeBSD uchun u uzoqda joylashgan: /usr/local/etc/apache22/ httpd.conf) va keyingi bosqichda uni o'zgartiramiz:

DocumentRoot "/home/www/data"

Ushbu katalogni yaratishni unutmang:

# mkdir /home/www

mkdir /home/www/data

mkdir /home/www/cgi-bin

Men /home/www asosiy katalogini tanlashni afzal ko'raman, shunda birinchi navbatda /home katalogi eng katta bo'limda joylashgan bo'lishi kerak (biz o'rnatish paytida foydalangan bo'limlarning avtomatik konfiguratori ko'p qismini ajratadi. /home ostida bo'sh joy) va shuning uchun - aks holda, u bilan ishlash osonroq, xuddi /usr/local/www/apache22/data kabi, biz uni anonim pastki kataloglarda saqlaymiz.

4. Biz hujum chizig'ini bilamiz:

Biz uni katalog DocumentRoot sifatida ko'rsatilishi uchun o'zgartiramiz:

5. Hujum qatorlari o'zgarib bormoqda:


DirectoryIndex index.html


DirectoryIndex index.php index.html

6. Direktivning o'rtasida qatorni almashtiring:

ScriptAlias ​​/cgi-bin/ "/usr/local/www/apache22/cgi-bin/"

Eksa:

ScriptAlias ​​/cgi-bin/ "/home/www/cgi-bin/"

7. Oldinga qator:

Narx bilan almashtiring:

Biz faylni saqlaymiz va PHP konfiguratsiya faylini yaratamiz:

# cp /usr/local/etc/php.ini-tavsiya etilgan /usr/local/etc/php.ini

Bu PHP dan oddiy Apache ishi uchun etarli bo'ladi.

Endi siz MySQL-ni o'rnatishingiz mumkin.

Keling, buni portda qilamiz va shunday ishlaymiz:

# cd /usr/ports/ma'lumotlar bazalari/mysql50-server

WITH_OPENSSL=ha toza o'rnating
Keling, boshidan yuklab olinadigan oddiy konfiguratsiya faylini yarataylik:
Keling, boshidan yuklab olinadigan oddiy konfiguratsiya faylini yarataylik:
# ee /etc/my.cnf

port = 29912

ulanish manzili=127.0.0.1<< /etc/rc.conf

Avtomatik yoqish va serverni ishga tushirish uchun MySQL-ni qo'shing:

# echo "mysql_enable="HA""

/usr/local/etc/rc.d/mysql-server ishga tushiriladi

Ma'lumotlar bazasiga kirish uchun parolni o'rnating:

# mysqladmin -u root parol paroli

mysql -u root -p

Portlar yangilangandan so'ng, biz kelajakda tizimga o'rnatilishi mumkin bo'lgan kuchli rootkitlar uchun zarur bo'lgan rkhunter vositasini tizimga o'rnatamiz:

Endi MySQL normal ishlashi kerak, ammo ma'lumotlar bazalarini qo'lda boshqarish unchalik oson emas, bundan tashqari, odamlar uchun MySQL-ni o'rnatish birinchi o'rinda turadi va uni ishga tushirish unchalik oson emas.

Shunday qilib, MySQL veb-interfeysini PHPMyAdmin nomi bilan o'rnatamiz:

# cd /usr/ports/ma'lumotlar bazalari/phpmyadmin

Veb-interfeysga kirish uchun parolni kiritish orqali PHPMyAdmin konfiguratsiya faylini tuzatishimiz mumkin:

# cd /usr/local/www/phpMyAdmin

cp config.sample.inc.php config.inc.php

1. ee config.inc.php $cfg["blowfi sh_secret"] = "parol";

Endi biz Apache konfiguratsiya faylini yana va umuman ochamiz:

2. Bo'limda keyingi qatorni qo'shing:


Taxallus /phpmyadmin /usr/local/www/phpMyAdmin
Masalan, bo'limlar

Keyingi qatorlarni qo'shamiz:

Buyurtmaga ruxsat berish, rad etish

Hammadan ruxsat bering

PHPMyAdmin to'g'ri ishlashi uchun HTTPS qo'llab-quvvatlashini talab qiladi va kelajakda mijoz va sayt o'rtasida xavfsiz shifrlangan ulanishni o'rnatish uchun sizga ushbu protokol kerak bo'lishi mumkin.

Shuning uchun Apache-ni aqlliroq qilish muhim.

Boshlash uchun biz OpenSSL konfiguratsiya faylini (/etc/ssl/openssl.cnf) to'g'rilashimiz mumkin va quyidagi qatorlarni qo'shishimiz mumkin:
# Sertifikatlarni saqlash uchun katalog

dir = /root/sslCA

Sertifikat muddati (~10 rubl)

standart_kunlar = 3650

Biz hozir katalog tayyorlayapmiz va rasmiy sertifikatlashtirish markazi uchun sertifikatlar yaratmoqdamiz:

mkdir sslCA

mkdir sslCA

chmod 700 sslCA

mkdir shaxsiy

cd sslCA

openssl req -yangi -x509 -kunlar 3650 - kengaytmalar v3_ca
Keyout private/cakey.pem -out cacert.pem

-config /etc/ssl/openssl.cnf

Sertifikatlar muvaffaqiyatli yaratilganligini tekshiramiz:

# ls -l cacert.pem private/cakey.pem

Biz Apache uchun sertifikatlar yaratamiz va ularni /etc/ssl katalogiga joylashtiramiz:

# CD /root/sslCA

openssl req -new -nodes -out hostname-req.pem

Private/hostname-key.pem -config /etc/ssl/openssl.cnf kaliti

openssl ca -confi g /etc/ssl/openssl.cnf -out men host-cert.pem -infiles nomi

host-req.pem

cp /root/sslCA/hostname-cert.pem /etc/ssl/crt

cp /root/sslCA/private/hostname-key.pem /etc/ssl/key

Biz Apache konfiguratsiya faylini yana ochamiz, keyingi qatorni bilamiz va izohni olib tashlaymiz:

# ee /usr/local/etc/apache22/httpd.conf

etc/apache22/extra/httpd-ssl.conf ni kiriting

Biz /usr/local/etc/apache22/extra/http-ssl.conf fayliga quyidagi o'zgarishlar kiritamiz:

# ee /usr/local/etc/apache22/extra/http-ssl.conf

HTTPS server nomi

ServerName ssl.host.com

Sertifikat va kalitni topish uchun faylga o'ting
SSLCertificateFile /etc/ssl/crt/yourhostname-cert.pem

SSLCertificateKeyFile /etc/ssl/key/yourhostname-key.pem

DocumentRoot "/home/www/data"

Xuddi bosh og'rig'i bo'lganlar

Jurnallarni qayerga yozish kerak
ErrorLog "/var/log/httpd-error.log"

TransferLog "/var/log/httpd-access.log"

Apache qayta ishga tushirilmoqda:

# /usr/local/etc/rc.d/apache22 qayta ishga tushiring

Keyingi nima?

Ushbu maqolada men sizga FreeBSD (FAMPdan ancha arzon) asosida amaliy (L)AMP stekini qanday yaratishni va sevimli veb-sayt dvigatelingizni olish va uni / katalog uyiga yoqish orqali yaratishingiz kerak bo'lgan hamma narsani ko'rsataman. / www /data (skriptni /home/www/cgi-bin-ga qo'yishni unutmang).

Reshta sharob (L)AMP oladi.

  1. LAMP to'plami Linuxda joylashtirilgan veb-sayt uchun asos bo'lib, Linux, Apache, MySQL va PHP (LAMP) dasturiy ta'minot to'plamidir.
  2. LAMP stend uchun: - L (Linex OS)])
  3. A(Apache[
  4. Mahalliy mijoz serveri

LAMP Stack - bu veb-saytlar va veb-saytlar yaratish uchun ishlatilishi mumkin bo'lgan ochiq manbali dasturiy ta'minot to'plami.

    LAMP qisqartma bo'lib, bu zaxiralar odatda Linux operatsion tizimida, Apache HTTP Serverda, MySQL nisbiy ma'lumotlar bazasini boshqarish tizimida va PHP dasturlash tilida joylashgan. Linux:

    Operatsion tizim (OT) bizning standartlarimizga mos keladi. Linux stek modeli uchun poydevor qo'yadi.

    Boshqa barcha harflar ushbu harfning yuqori qismida joylashgan. Linux eng past darajadagi qatlam bo'lib, operatsion tizimni ta'minlaydi.

    Linux to'g'ridan-to'g'ri barcha boshqa komponentlarda ishlaydi. Biroq, u Linux bilan chegaralanmagan;


LAMP to'plami (Linux/apache/mysql/php) sotuvchilar orasida veb-saytlarni ishlab chiqish texnologiyalarining eng katta to'plamidir.

  • Darhaqiqat, biz LAMP-da ishlashga yo'naltirilgan hosting uchun tezkor joylashtirish uchun bir qator tayyor VDS tasvirlarini ajratdik.
  • Ushbu tasvirlarni ishlab chiqishning asosiy printsipi sozlashning bir xilligini ta'minlash edi, shunda bitta VDSda joylashgan saytlar boshqa tasvir (boshqa asosiy dasturiy ta'minot to'plami) va barcha asosiy sozlamalar asosida boshqa VDSga osongina ko'chirilishi mumkin edi. Taqdim etilgan tasvirlardan istalgani asosida VDS dan har qandayining bir xil turdagi chizilgan.
  • Shuningdek, biz serverga yangi saytlarni qo'shish, ular bilan saytda papka yaratish kabi oson bo'lishini juda muhim deb o'yladik.

Natijada, biz Debian Wheezy, Ubuntu Precise Pangolin va Ubuntu Trusty Tahr distributivlari asosida quyidagi to'plam bilan yaratdik:

Nginx + Apache2 + PHP 5.4 (FastCGI) + MariaDB 5.5 + phpMyAdmin + sftp

Nginx + Apache2 + PHP 5.4 (mod_php) + MariaDB 5.5 + phpMyAdmin + sftp Busiz men hech narsa so'ramayman.

Nginx + PHP 5.4 (php-fpm) + MariaDB 5.5 + phpMyAdmin + sftp

1. Tayyor tasvirlarning tashqi tavsifi

Barcha tasvirlar tizimning asosiy va yagona komponenti skriptlar ishlaydigan nomi va veb-komponentlar deb ham ataladigan boshqa barcha harakatlar tuzilganligiga asoslanadi.

Ubuntu-da qabul qilingan nutq tartibiga o'xshab, Debian-ga asoslangan tasvirlarda, ildiz nomi ostidagi to'g'ridan-to'g'ri robotning ishlashiga ruxsat berilmaydi (bloklangan) va sudo orqali vebning foydalanuvchi nomi bilan har qanday buyruqni tizimdan chiqish imkoniyati berilgan. super foydalanuvchining imtiyozlari.

Shunday qilib, ssh-dan yangi VDS-ga kirish uchun siz buyruqni kiritishingiz kerak:- bu ommaviy virtual xosting uchun eng tez-tez talab qilinadigan operatsiya, shuning uchun biz uni iloji boricha sodda qilishga harakat qildik.

  1. Serveringizga yangi mycompany.ru saytini qo'shish uchun siz ikkita oddiy qadamni bajarishingiz kerak:
  2. /var/www/web/sites papkasi uchun mycompany.ru nomli pastki papka yaratishingiz kerak, shunda unga wwwsiz domen qo'shilishi mumkin.

. Bu ota o'z saytiga skriptlarni qo'shishi kerak.

  1. Provayderingizdagi DNS-da domenni saqlash xizmatini taqdim etadigan DNS muharriri orqali siz VDS-ning IP-manzilida ko'rsatish uchun A-yozuvlarni qo'shishingiz kerak bo'ladi: biri mycompany.ru nomi uchun, ikkinchisi uchun. www.mycompany.ru.
  2. Taxallus qo‘shildi

(saytingiz uchun muqobil nom) - bu oddiy operatsiya.

Agar siz mycompany.ru saytiga www.mycompany.ru taxallusni qo'shishingiz kerak bo'lsa, sizga ikkita narsa kerak bo'ladi:

Ramziy tasvir yarating (simvol): cd /var/www/web/sites & ln -s mycompany.ru www.mycompany.ru

DNS-da serveringizning IP-manzilini ko'rsatadigan A-yozuvlarni yarating: www bilan nom uchun.

wwwsiz.

Sizga shuni eslatib o'tmoqchimizki, biz barcha mijozlarimiz uchun hech qanday xarajatlar va cheklovlarsiz DNS bilan domen to'xtash xizmatini taqdim etamiz.

Domenlarni ns-serverlarimizga topshirish bo'yicha ko'rsatmalar sizga yuborildi.

3. MySQL (MariaDB) bilan ishlash

Yangi VDS ijodlari uchun MySQL-ning ildiz foydalanuvchisi uchun kirish paroli maxsus usul yordamida yaratiladi.

Buyruq yordamida parolni bilib olishingiz mumkin

Tizimda Debian/Ubuntu omborlaridan standart PHP o'rnatilganligi sababli, PHPni sozlash va kengaytmalarni o'rnatish debian asosidagi tarqatishlar uchun standart tarzda amalga oshiriladi.

Php.ini fayli bir nechta saqlash qismlaridan yig'iladi: asosiy php.ini va conf.d katalogi o'rniga.

PHP ning FastCGI versiyasi uchun sozlamalar /etc/php5/cgi jildidan, mod_php uchun - /etc/php5/apache2 jildidan, CLI versiyasi uchun (bu /usr/bin/php, ya'ni cron ishi uchun ishlatiladigan php versiyasi Konsolda saqlanadigan boshqa sozlamalar) - /etc/php5/cli.

Php-fpm versiyasi aslida /etc/php5/fpm jildidan php.ini ning vikory versiyasidir.

Server konsolida buyruqni kiritish orqali tizimingizda qaysi PHP kengaytmalari o'rnatilganligini osongina ko'rishingiz mumkin:

$dpkg-l |

grep php

Buyruq yordamida mavjud PHP kengaytmalari ro'yxatini ko'rishingiz mumkin:

$ apt-cache qidiruvi php5

Yangi tizimingizda apt-cache/apt-get buyruqlarini birinchi marta ishga tushirishdan oldin, sudo apt-get update ni tekshirishni unutmang.

Ro'yxatda kerakli kengaytmalarni o'rnatish juda oson.

Ehtimol, biz tizimga XCache tezlatgichini qo'shishni xohlaymiz.

    Yakuniy paket php5-xcache deb nomlanadi va super server imtiyozlariga ega bo'lgan uni o'rnatish buyrug'i quyidagicha bo'ladi:

    $ sudo apt-get o'rnatish php5-xcache

5.4 versiyasidan boshlangan PHP relizlari sozlamalarda (date.timezone) aniq vaqt mintaqasi ko'rsatilishini talab qiladi va UTC vaqt mintaqasi sozlamalar orqasida o'rnatiladi.

Ushbu sozlama /etc/php5/apache2/conf.d/local.ini faylida ko'rsatilgan.

Siz ularni o'zingizning standartlaringizga to'liq o'zgartirishingiz kerak.

Agar siz bizning tayyor tasvirlarimiz asosida tizimingizni quvvat bilan ta'minlashda muammoga duch kelsangiz, har doim texnik yordamimizga murojaat qilishingiz mumkin.

5. uWSGI yordami bilan Djangoni ishga tushirish

Keling, foydalanuvchini tizimdan olib tashlaymiz, yangisiga o'tamiz, shuningdek, yangi tizim profilini qo'shamiz

Useradd -s /bin/bash -m -p $(pwgen -1 -N 1) project1 && su - project1 -c "echo "export WORKON_HOME=~/Env" >> ~/.bashrc && echo "source /usr/ local/bin/virtualenvwrapper.sh" >> ~/.bashrc" && su - project1

Virtual yaratilishi mumkin, yangi djangoda o'rnatilishi va loyihamizni yaratish

Cd ~ && mkvirtualenv birinchi sayt && pip o'rnatish django && django-admin.py startproject firstsite

Loyihani oson qayta o'qish uchun biz faylni yaratamiz

~/firstsite/touch_reload-ga teging

Loyihaga konfiguratsiyani qayta o'qish uchun uwsgi buyrug'ini yuborish uchun project1 foydalanuvchi nomi ostida ushbu buyruqdan chiqish kifoya qiladi.

Agar loyihani ishlab chiqish serverga ildiz ruxsatisiz to'liq server tomonidan amalga oshirilsa, bu yanada oson bo'lishi mumkin - server ma'muri uwsgi-ni qayta ishga tushirish uchun darhol root sifatida tizimga kirishi shart emas.

Ctrl+D tugmalarini tezda bosib, hisobning ildiz seansiga qaytaylik.

Endi biz loyihamiz uchun uwsgi konfiguratsiya faylini yaratishimiz mumkin

Mcedit /etc/uwsgi/apps-enabled/firstsite.ini

Men uni yangisiga ko'chiraman (ko'chirilgan matnga o'zgartirish kiritish shart emas):

Loyiha = birinchi sayt userhomedir = /home/project1 chdir = %(userhomedir)/%(loyiha) uy = %(userhomedir)/Env/%(loyiha) moduli = %(loyiha).wsgi:dastur jarayonlari = 4 ta mavzu = 2 chown -socket = www-data uid = project1 gid = project1 vakuum = haqiqiy sensorli qayta yuklash = %(userhomedir)/%(loyiha)/touch_reload bufer hajmi = 8192 tinglash = 128 harakiri = 300

Mcedit-da pulni tejash uchun klaviaturada F2 tugmasini bosing.

Uwsgi serverini ishga tushiring

/etc/init.d/uwsgi boshlang

5.2 Nginx uchun konfiguratsiya faylini yaratish

Biz serverning IP manzilini bilishimiz kerak.

Yogo siz buyruqni hayratda qoldirishingiz mumkin

Xost nomi -I

Keling, nginx uchun konfiguratsiya faylini yarataylik

Mcedit /etc/nginx/sites-available/firstsite

Buni keyingi matnda eslayman

Server (ting serverip:80; server_name sitenameru; location = /favicon.ico ( access_log on; log_not_found off; ) location /static/ ( root /home/project1/firstsite; ) location / (o'z ichiga uwsgi_params; uwsgi_pass un run/uwsgi/ ilova/birinchi sayt/rozetka;

Ushbu konfiguratsiya fayli uchun serveripni serveringizning IP manziliga va sayt nomini loyihangiz joylashgan domen nomiga o'zgartirishingiz kerak.

Tayyor! Agar sitenameru domeni uchun DNS yozuvi serverning IP-manziliga ishora qilsa, u holda sizning loyihangiz sayt nomi manzili ortidan kirish mumkinligi uchun ham aybdor.

5.3 Statik fayllarni ko'rsatishni optimallashtirish

Agar loyiha murakkab bo'lsa va statik fayllarni optimallashtirish zarurati bo'lsa, buyruqni ishlatish kifoya qiladi

Su - loyiha 1 birinchi sayt ustida ishlash

Firstsite/firstsite/settings.py faylining oxiriga statik fayllarni aylantirish haqida topishmoq qo'shildi

Echo "STATIC_ROOT = os.path.join(BASE_DIR, "statik/")" |

tee -a ~/firstsite/firstsite/settings.py

Keling, statik fayllarni yig'ish uchun skriptni ishga tushiramiz

~/firstsite/manage.py collectstatic

Maxsus ofis Warface - birinchi marta onlayn shooter janridagi kompyuter o'yini