Page cover

🔰Ubuntu 20.04 da Apache veb-serverini qanday o'rnatish kerak

// Qo'llanma //

Kirish

Apache HTTP serveri dunyodagi eng keng tarqalgan veb-serverdir. Bu dinamik yuklanadigan modullar, mustahkam media yordami va boshqa mashhur dasturlar bilan keng integratsiyalashuvni o'z ichiga olgan ko'plab kuchli xususiyatlarni taqdim etadi.

Ushbu qo'llanmada biz Ubuntu 20.04 serveringizga Apache veb-serverini qanday o'rnatishni tushuntiramiz.

1-qadam - Apache-ni o'rnatish

Apache Ubuntu'ning standart dasturiy ta'minot omborlarida mavjud bo'lib, uni an'anaviy paketlarni boshqarish vositalari yordamida o'rnatish imkonini beradi.

Eng so'nggi yuqoridagi o'zgarishlarni aks ettirish uchun mahalliy paket indeksini yangilashdan boshlaylik:

$ sudo apt update

Keyin apache2paketni o'rnating:

$ sudo apt install apache2

O'rnatishni tasdiqlaganingizdan so'ng, aptApache va barcha kerakli bog'liqliklar o'rnatiladi.

2-qadam - xavfsizlik devorini sozlash

Apache-ni sinab ko'rishdan oldin standart veb-portlarga tashqi kirishga ruxsat berish uchun xavfsizlik devori sozlamalarini o'zgartirish kerak. Agar siz dastlabki shartlardagi ko'rsatmalarga amal qilgan bo'lsangiz, serveringizga kirishni cheklash uchun UFW xavfsizlik devori sozlangan bo'lishi kerak.

O'rnatish vaqtida Apache xavfsizlik devori orqali Apache-ga kirishni yoqish yoki o'chirish uchun ishlatilishi mumkin bo'lgan bir nechta ilova profillarini taqdim etish uchun o'zini UFW bilan ro'yxatdan o'tkazadi.

ufwIlova profillarini kiritish orqali roʻyxatlang :

$ sudo ufw app list

Siz ilova profillari ro'yxatini olasiz:

OutputAvailable applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Chiqishdan ko'rinib turibdiki, Apache uchun uchta profil mavjud:

  • Apache : Bu profil faqat 80-portni ochadi (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 443-portni ochadi (TLS/SSL shifrlangan trafik)

Siz sozlagan trafikka ruxsat beradigan eng cheklovchi profilni yoqish tavsiya etiladi. Ushbu qo'llanmada hali serverimiz uchun SSL-ni sozlamaganimiz uchun biz faqat 80-portda trafikka ruxsat berishimiz kerak:

$ sudo ufw allow 'Apache'

O'zgarishlarni quyidagi so'zlarni kiritish orqali tasdiqlashingiz mumkin:

$ sudo ufw status

Chiqish ruxsat etilgan HTTP trafigining ro'yxatini beradi:

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Apache                     ALLOW       Anywhere                
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Apache (v6)                ALLOW       Anywhere (v6)

Natijada ko'rsatilgandek, profil Apache veb-serveriga kirishga ruxsat berish uchun faollashtirilgan.

3-qadam - Veb-serveringizni tekshirish

O'rnatish jarayoni oxirida Ubuntu 20.04 Apache-ni ishga tushiradi. Veb-server allaqachon ishlayotgan bo'lishi kerak.

systemdXizmat ishlayotganiga ishonch hosil qilish uchun init tizimi bilan tekshiring :

$ sudo systemctl status apache2

Output● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2020-04-23 22:36:30 UTC; 20h ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 29435 (apache2)
      Tasks: 55 (limit: 1137)
     Memory: 8.0M
     CGroup: /system.slice/apache2.service
             ├─29435 /usr/sbin/apache2 -k start
             ├─29437 /usr/sbin/apache2 -k start
             └─29438 /usr/sbin/apache2 -k start

Ushbu chiqish bilan tasdiqlanganidek, xizmat muvaffaqiyatli boshlandi. Biroq, buni sinab ko'rishning eng yaxshi usuli bu Apache'dan sahifa so'rashdir.

Dasturiy ta'minot sizning IP manzilingiz orqali to'g'ri ishlayotganligini tasdiqlash uchun standart Apache ochilish sahifasiga kirishingiz mumkin. Agar siz serveringizning IP-manzilini bilmasangiz, uni buyruq satridan bir necha xil usullar bilan olishingiz mumkin.

Buni serveringizning buyruq satriga yozib ko'ring:

$ hostname -I

Bo'shliqlar bilan ajratilgan bir nechta manzillarni qaytarib olasiz. Ularning ishlashini aniqlash uchun har birini veb-brauzeringizda sinab ko'rishingiz mumkin.

Yana bir variant - Icanhazip vositasidan foydalanish, bu sizning umumiy IP-manzilingizni internetdagi boshqa joydan o'qilgandek berishi kerak:

$ curl -4 icanhazip.com

Serveringizning IP-manziliga ega bo'lsangiz, uni brauzeringizning manzil satriga kiriting:

http://your_servbasher_ip

Siz standart Ubuntu 20.04 Apache veb-sahifasini ko'rishingiz kerak:

Ushbu sahifa Apache to'g'ri ishlayotganligini ko'rsatadi. Shuningdek, u muhim Apache fayllari va katalog manzillari haqida ba'zi asosiy ma'lumotlarni o'z ichiga oladi.

4-qadam - Apache jarayonini boshqarish

Endi veb-serveringiz ishlayotgan bo'lsa, keling, yordamida ba'zi asosiy boshqaruv buyruqlarini ko'rib chiqamiz systemctl.

Veb-serveringizni to'xtatish uchun quyidagilarni kiriting:

$ sudo systemctl stop apache2

Veb-server to'xtatilganda uni ishga tushirish uchun quyidagilarni kiriting:

$ sudo systemctl start apache2

Xizmatni to'xtatib, keyin yana ishga tushirish uchun quyidagilarni kiriting:

$ sudo systemctl restart apache2

Agar siz shunchaki konfiguratsiyani o'zgartirayotgan bo'lsangiz, Apache ko'pincha ulanishlarni uzmasdan qayta yuklashi mumkin. Buning uchun ushbu buyruqdan foydalaning:

$ sudo systemctl reload apache2

Odatiy bo'lib, Apache server ishga tushganda avtomatik ravishda ishga tushadigan qilib tuzilgan. Agar bu siz xohlagan narsa bo'lmasa, quyidagini kiritish orqali ushbu xatti-harakatni o'chirib qo'ying:

$ sudo systemctl disable apache2

Xizmatni yuklashda ishga tushirish uchun qayta yoqish uchun quyidagilarni kiriting:

$ sudo systemctl enable apache2

Endi server qayta ishga tushganda Apache avtomatik ravishda ishga tushishi kerak.

Apache veb-serveridan foydalanganda, konfiguratsiya tafsilotlarini inkapsulyatsiya qilish va bitta serverdan bir nechta domenlarni joylashtirish uchun virtual xostlardan (Nginx-dagi server bloklariga o'xshash) foydalanishingiz mumkin. Biz your_domain nomli domenni o'rnatamiz , lekin siz uni o'zingizning domen nomingiz bilan almashtirishingiz kerak . Agar siz DigitalOcean bilan domen nomini o'rnatayotgan bo'lsangiz, bizning Tarmoq hujjatlariga qarang .

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, mijoz so'rovi boshqa saytlarga mos kelmasa, xizmat ko'rsatish uchun standart katalog sifatida o'rnida qoldirib , your_domain sayti uchun /var/www/htmlkatalog tuzilmasini yarataylik ./var/www/var/www/html

Domeningiz uchun quyidagi tarzda katalog yarating :

$ sudo mkdir /var/www/your_domain

$USERKeyin, atrof- muhit o'zgaruvchisi bilan katalogga egalik huquqini tayinlang :

$ sudo chown -R $USER:$USER /var/www/your_domain

Agar siz standart fayl ruxsatlarini o'rnatadigan umask qiymatini o'zgartirmagan bo'lsangiz, veb-ildizlaringizning ruxsatlari to'g'ri bo'lishi kerak. Ruxsatlaringiz to'g'ri ekanligiga ishonch hosil qilish va egasiga fayllarni o'qish, yozish va bajarishga ruxsat berish va guruhlarga va boshqalarga faqat o'qish va bajarish uchun ruxsat berish uchun siz quyidagi buyruqni kiritishingiz mumkin:

$ sudo chmod -R 755 /var/www/your_domain

Keyin, yoki sevimli muharriringiz yordamida namuna index.htmlsahifasini yarating:nano

$ sudo nano /var/www/your_domain/index.html

Ichkarida quyidagi HTML namunasini qo'shing:

<html>
    <head>
        <title>Welcome to Your_domain!</title>
    </head>
    <body>
        <h1>Success!  The your_domain virtual host is working!</h1>
    </body>
</html>

ish tugagach, faylni saqlang va yoping.

Apache ushbu tarkibga xizmat qilishi uchun to'g'ri ko'rsatmalarga ega virtual xost faylini yaratish kerak. To'g'ridan-to'g'ri manzilda joylashgan standart konfiguratsiya faylini o'zgartirish o'rniga, quyidagi manzilda /etc/apache2/sites-available/000-default.confyangisini yarataylik :/etc/apache2/sites-available/your_domain.conf

$ sudo nano /etc/apache2/sites-available/your_domain.conf

Standartga o'xshash, ammo yangi katalog va domen nomimiz uchun yangilangan quyidagi konfiguratsiya blokiga joylashtiring:

$ <VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Eʼtibor bering, biz DocumentRootyangi katalogimizga va sizning_domen saytingiz administratori kirishi mumkin ServerAdminboʻlgan elektron pochta manziliga yangiladik. Shuningdek, biz ikkita direktivani qo'shdik: , bu virtual xost ta'rifiga mos keladigan asosiy domenni o'rnatadi va , xuddi asosiy nomga mos keladigan boshqa nomlarni belgilaydi.ServerNameServerAlias

Ish tugagach, faylni saqlang va yoping.

Faylni a2ensiteasbob bilan faollashtiramiz:

$ sudo a2ensite your_domain.conf

Quyidagida belgilangan standart saytni o'chirib qo'ying 000-default.conf:

$ sudo a2dissite 000-default.conf

Keyinchalik, konfiguratsiya xatolarini tekshiramiz:

$ sudo apache2ctl configtest

Siz quyidagi chiqishni olishingiz kerak:

Output
Syntax OK

O'zgartirishlaringizni amalga oshirish uchun Apache-ni qayta ishga tushiring:

$ sudo systemctl restart apache2

Apache endi sizning domen nomingizga xizmat qilishi kerak. ga o'tish orqali buni sinab ko'rishingiz mumkin , bu erda siz shunga o'xshash narsani ko'rishingiz kerak:http://your_domain

6-qadam – Muhim Apache fayllari va kataloglari bilan tanishish

Endi siz Apache xizmatini qanday boshqarishni bilasiz, bir necha muhim katalog va fayllar bilan tanishish uchun bir necha daqiqa vaqt ajratishingiz kerak.

Tarkib

  • /var/www/html: Haqiqiy veb-kontent, sukut bo'yicha faqat siz ilgari ko'rgan standart Apache sahifasidan iborat bo'lib, /var/www/htmlkatalogdan tashqarida taqdim etiladi. Buni Apache konfiguratsiya fayllarini o'zgartirish orqali o'zgartirish mumkin.

Server konfiguratsiyasi

  • /etc/apache2: Apache konfiguratsiya katalogi. Barcha Apache konfiguratsiya fayllari shu yerda joylashgan.

  • /etc/apache2/apache2.conf: Asosiy Apache konfiguratsiya fayli. Bu Apache global konfiguratsiyasiga o'zgartirish kiritish uchun o'zgartirilishi mumkin. Ushbu fayl konfiguratsiya katalogidagi ko'plab boshqa fayllarni yuklash uchun javobgardir.

  • /etc/apache2/ports.conf: Bu fayl Apache tinglaydigan portlarni belgilaydi. Odatiy bo'lib, Apache 80-portni tinglaydi va SSL imkoniyatlarini ta'minlovchi modul yoqilganda qo'shimcha ravishda 443-portni tinglaydi.

  • /etc/apache2/sites-available/: Har bir sayt uchun virtual xostlar saqlanishi mumkin bo'lgan katalog. Apache ushbu katalogda joylashgan konfiguratsiya fayllarini katalogga ulanmagan holda ishlatmaydi sites-enabled. Odatda, server blokining barcha konfiguratsiyasi ushbu katalogda amalga oshiriladi va keyin a2ensitebuyruq bilan boshqa katalogga ulanish orqali yoqiladi.

  • /etc/apache2/sites-enabled/: Har bir sayt uchun yoqilgan virtual xostlar saqlanadigan katalog. sites-availableOdatda, ular katalogda joylashgan konfiguratsiya fayllariga ulanish orqali yaratiladi a2ensite. Apache to'liq konfiguratsiyani kompilyatsiya qilish uchun ishga tushirilganda yoki qayta yuklanganda ushbu katalogdagi konfiguratsiya fayllari va havolalarini o'qiydi.

  • /etc/apache2/conf-available/, : Bu kataloglar va kataloglari /etc/apache2/conf-enabled/bilan bir xil munosabatga ega , lekin virtual xostga tegishli bo'lmagan konfiguratsiya fragmentlarini saqlash uchun ishlatiladi. Katalogdagi fayllar buyruq bilan yoqilishi va buyruq bilan o'chirilishi mumkin .sites-availablesites-enabledconf-availablea2enconfa2disconf

  • /etc/apache2/mods-available/, /etc/apache2/mods-enabled/: Bu kataloglarda mos ravishda mavjud va yoqilgan modullar mavjud. Shu bilan tugaydigan .loadfayllar ma'lum modullarni yuklash uchun fragmentlarni o'z ichiga oladi, shu bilan tugaydigan fayllar esa .confushbu modullar uchun konfiguratsiyani o'z ichiga oladi. a2enmodModullarni va a2dismodbuyrug'i yordamida yoqish va o'chirish mumkin .

Server jurnallari

  • /var/log/apache2/access.log: Odatiy bo'lib, veb-serveringizga bo'lgan har bir so'rov, agar Apache boshqacha qilish uchun sozlanmagan bo'lsa, ushbu jurnal faylida qayd etiladi.

  • /var/log/apache2/error.log: Odatiy bo'lib, barcha xatolar ushbu faylda qayd etiladi. LogLevelApache konfiguratsiyasidagi direktiv xato jurnallari qancha tafsilotlarni o'z ichiga olishini belgilaydi .

Xulosa

Endi veb-serveringiz o'rnatilgan bo'lsa, sizda xizmat ko'rsatishingiz mumkin bo'lgan kontent turi va yanada boyroq tajriba yaratish uchun foydalanishingiz mumkin bo'lgan texnologiyalar uchun ko'plab variantlar mavjud.

Last updated

Was this helpful?