Natrag na blog

Instalacija Apache web poslužitelja na CentOS 7

Instalacija Apache web poslužitelja na CentOS 7

Web poslužitelj pohranjuje, obrađuje i isporučuje web stranice posjetiteljima web stranica. Postoji prilično mnogo web poslužitelja otvorenog koda softverskih opcija, ali Apache HTTP poslužitelj se smatra najčešće korištenim web poslužiteljem na svijetu. To je zato što, osim što je otvorenog koda, njegova modularna arhitektura omogućuje proširenje njegovih mogućnosti dodavanjem modula za različite svrhe. Kao rezultat toga, web poslužitelj je iznimno robustan.

Ako želite instalirati Apache na CentOS 7 sustav, ovaj vodič je za vas. Osim toga, naučit ćete kako stvoriti virtualne hostove kako biste mogli posluživati više web stranica na jednom Apache HTTP poslužitelju koji radi na CentOS-u.

Ovo je detaljan vodič usmjeren samo na instalaciju Apachea. Ako ste tražili vodič u natuknicama o LAMP stogu, imamo ovaj vodič o Kako instalirati Linux, Apache, MySQL, PHP (LAMP) na CentOS 7 koji možete pogledati. Sada, počnimo!

Preduvjeti

Budući da je ovo praktični vodič, trebali biste imati sljedeće:

Korak 1: Instalacija Apache HTTP poslužitelja

Apache možete pronaći unutar zadane CentOS riznice. Stoga je instalacija jednostavna pomoću yum upravitelja paketima. Iz odjeljka s preduvjetima, morate biti prijavljeni s ne-root korisnikom. Pokrenite sljedeću naredbu u svom terminalu kako biste ažurirali lokalni indeks paketa Apache httpd:

Nakon što se paketi ažuriraju, unesite sljedeću naredbu za instalaciju Apachea:

Potvrdite instalaciju i pričekajte da yum instalira Apache i njegove potrebne ovisnosti.

Ako ste slijedili korake u vodiču o Postavljanju vatrozida s FirewallD-om na CentOS 7 i omogućili vatrozid za port 80, onda ste spremni. Firewalld je upravitelj vatrozida za CentOS. U suprotnom, možete omogućiti firewalld-ovu http (port 80) uslugu unosom sljedeće naredbe:

Ako planirate posluživati promet putem sigurnog HTTPS-a, tada možete omogućiti firewalld-ovu https (port 443) uslugu unosom sljedeće naredbe:

Na kraju, morate ponovno učitati firewalld kako bi promjene stupile na snagu. Evo naredbe za ponovno učitavanje:

U ovom trenutku ste instalirali i konfigurirali Apache za posluživanje prometa preko HTTP-a ili HTTPS-a, ovisno o tome jeste li pokrenuli gornje naredbe.

Korak 2: Potvrda da Apache web poslužitelj radi

U CentOS-u se Apache proces ne pokreće automatski nakon instalacije. Za ručno pokretanje Apachea unesite sljedeću naredbu:

Da biste provjerili je li usluga uspješno pokrenuta, provjerite status unosom sljedeće naredbe:

Ako usluga radi, trebali biste vidjeti izlaz sličan snimci zaslona u nastavku. Obratite pozornost na aktivni status:

httpd status

Izlaz pokazuje da je usluga uspješno pokrenuta i da radi. Zatim moramo testirati može li Apache poslužiti stranicu korisnicima interneta. Apache dolazi sa zadanom stranicom koju možete koristiti za testiranje može li se vašem poslužitelju pristupiti putem interneta.

Morat ćete pronaći javnu IP adresu svog poslužitelja ako je već nemate. Ovu IP adresu koristit ćete u adresnoj traci preglednika za traženje zadane Apache web stranice. Mrežne adrese računala možete prikazati unosom sljedeće naredbe:

S popisa adresa koje dobijete, možete isprobati svaku u svom pregledniku kako biste potvrdili da rade. Opcionalno, možete koristiti curl da biste dobili svoju IP adresu s icanhazip.com. Naredba u nastavku prikazuje vašu javnu IP adresu kako se vidi s računala na drugoj internetskoj lokaciji:

Nakon što dobijete javnu IP adresu svog poslužitelja, kopirajte je i zalijepite u adresnu traku svog preglednika:

Vaš bi preglednik trebao učitati zadanu CentOS 7 Apache web stranicu:

web server home page

Ako ste uspjeli učitati zadanu Apache web stranicu, to znači da vaš poslužitelj radi ispravno. Ako se pomaknete prema dolje, možete vidjeti neke osnovne informacije o Apache datotekama i lokacijama direktorija. S instaliranom uslugom koja ispravno radi, trebali biste moći koristiti razne systemctl naredbe za upravljanje uslugom. 

Korak 3: Upravljanje uslugom Apache

U ovom odjeljku pokazat ćemo vam neke osnovne naredbe za upravljanje Apacheom. Evo naredbe koja zaustavlja web poslužitelj:

Evo naredbe za pokretanje web poslužitelja:

Zatim, ovo je naredba za ponovno pokretanje web poslužitelja (zaustavljanje i pokretanje):

Nakon ovoga, pokazat ćemo vam naredbu za ponovno učitavanje usluge Apache. Ova je naredba potrebna kada jednostavno unosite promjene u konfiguraciju. Ponovnim učitavanjem, Apache proces će primijeniti promjene konfiguracije bez prekidanja veza, kao što bi to bio slučaj da ste ga ponovno pokrenuli:

Prema zadanim konfiguracijama, Apache se automatski pokreće prilikom pokretanja poslužitelja. Ako želite promijeniti ovo ponašanje, evo naredbe za onemogućavanje pokretanja usluge pri pokretanju sustava:

Za ponovno omogućavanje pokretanja usluge pri pokretanju sustava, unesite sljedeću naredbu: 

Korak 4: Postavljanje Apache virtualnih hostova

Prema zadanim postavkama, Apache je konfiguriran za ugošćavanje i posluživanje jedne web stranice. U većini slučajeva željet ćete da vaš web poslužitelj poslužuje i ugošćuje više web stranica. Na primjer, možda imate poddomene ili želite postaviti stranicu bloga za glavnu web stranicu vaše tvrtke/organizacije. Ovdje na scenu stupaju Apache virtualni hostovi. Apache virtualni hostovi omogućuju vam konfiguriranje web poslužitelja za posluživanje više web stranica. Apache virtualni hostovi ekvivalent su blokova poslužitelja u Nginx poslužitelju

Za ovaj vodič pokazat ćemo vam kako stvoriti virtualni host pomoću example.com kao naše domene. Naravno, domena example.com neće raditi na internetu, pa biste je trebali zamijeniti svojom stvarnom domenom – koraci su isti. 

Kada instalirate Apache na CentOS, on instalira jedan virtualni host koji je konfiguriran za posluživanje sadržaja iz /var/www/html direktorija. Ovaj dizajn dobro funkcionira ako ugošćujete jednu stranicu. Međutim, želimo moći ugošćavati više stranica. Ostavit ćemo zadani /var/www/html direktorij i umjesto toga stvoriti drugi direktorij za domenu example.com unutar /var/www lokacije. Razlog za ostavljanje zadanog direktorija je taj što se on poslužuje kada se zahtjevi klijenata ne podudaraju ni s jednom drugom stranicom koju ste konfigurirali s virtualnim hostovima. Štoviše, ako želite onemogućiti svoje stvorene virtualne hostove, zadani i dalje poslužuje promet. 

Prvo stvorite direktorij unutar /var/www za naziv vaše domene. Slobodni ste odabrati naziv po svom izboru. Međutim, preporučuje se odabrati naziv sličan vašoj domeni radi lakšeg pamćenja kada stvarate conf datoteku virtualnog hosta. Unesite sljedeću naredbu za stvaranje direktorija example:

Unesite sljedeću naredbu za stvaranje dodatne mape koja će sadržavati zapisničke datoteke za web stranicu:

Nakon što su direktoriji vaše web stranice postavljeni, dodijelite vlasništvo nad direktorijem pomoću $USER varijable okruženja pomoću sljedeće naredbe:

Pokrenite sljedeću naredbu kako biste osigurali da vaš web korijenski direktorij ima zadana dopuštenja:

Sada stvorite jednostavnu index.html stranicu pomoću nano-a unutar example direktorija unosom sljedeće naredbe:

U nano uređivaču dodajte sljedeći isječak HTML koda:

Kada završite, spremite datoteku pritiskom na Ctrl O i pritisnite ENTER. Sada možete zatvoriti uređivač pritiskom na Ctrl X

Do sada imamo direktorij vaše web stranice i osnovnu web stranicu za testiranje virtualnog hosta. Sljedeće, želimo stvoriti konfiguracijske datoteke virtualnog hosta. Datoteke virtualnog hosta specificiraju konfiguracije različitih web stranica koje želite ugostiti na jednom Apache poslužitelju. One usmjeravaju zahtjeve za postavljeni naziv domene u njegov specifični direktorij.

Datoteke virtualnog hosta pohranjene su u direktoriju /etc/httpd/sites-available. Aktivirane datoteke virtualnog hosta su simbolički povezane iz /etc/httpd/sites-available direktorija u /etc/httpd/sites-enabled direktorij. Ova dva direktorija se ne stvaraju prema zadanim postavkama u CentOS-u, pa ih morate sami stvoriti. Unesite sljedeću naredbu za stvaranje direktorija:

Nakon što su direktoriji na mjestu, uputite Apache da traži virtualne hostove u direktoriju sites-enabled. To ćete učiniti izmjenom glavne konfiguracijske datoteke za Apache. Unesite sljedeću naredbu za otvaranje datoteke u nano uređivaču:

Želimo dodati redak koji će uputiti Apache da traži dodatne konfiguracijske datoteke u neobaveznom direktoriju. Pomaknite se na dno datoteke i dodajte sljedeći redak na kraj:

Spremite datoteku pritiskom na Ctrl O i pritisnite ENTER. Sada možete zatvoriti uređivač pritiskom na Ctrl X. Sljedeći korak je stvaranje datoteke virtualnog hosta unutar direktorija sites-available. Unesite sljedeću naredbu za stvaranje i otvaranje nove datoteke pomoću nano uređivača:

U otvorenoj datoteci dodajte sljedeći konfiguracijski blok. Ne zaboravite zamijeniti naš example.com s vašim stvarnim nazivom domene, a ako ste koristili drugačiji naziv direktorija u /var/www/example, također to ažurirajte na odgovarajući način:

Kao što vidite, naveli smo naziv domene i korijenski direktorij dokumenata gdje će se nalaziti datoteke koje se poslužuju za ovu domenu. Također smo naveli lokaciju dnevnika pogrešaka – to će vam pomoći tijekom rješavanja problema s poslužiteljem.

Nakon što imamo našu datoteku virtualnog hosta unutar sites-available direktorija, sljedeći korak je omogućiti datoteku stvaranjem simboličke veze na sites-enabled direktorij. Unesite sljedeću naredbu za stvaranje simboličke veze:

Ako ste pratili korake do ove točke, vaš bi virtualni poslužitelj sada trebao biti spreman za posluživanje sadržaja vaše web stranice. Međutim, postoji još jedna provjera koju morate konfigurirati prije nego što virtualni poslužitelji počnu raditi. To ćemo pokriti u nastavku. 

Korak 5: Prilagodba SELinux dopuštenja za omogućavanje virtualnih poslužitelja

Linux distribucije uključujući Fedora, RHEL i CentOS dolaze sa SELinuxom prema zadanim postavkama. SELinux (Security Enhanced Linux) je sigurnosna arhitektura za Linux sustave koja ograničava i definira kako bi poslužitelj trebao obrađivati zahtjeve te kako bi korisnici trebali komunicirati s utičnicama, mrežnim priključcima i ključnim direktorijima. 

Izvan okvira, SELinux će raditi sa zadanom Apache konfiguracijom. Međutim, s prilagođenim virtualnim poslužiteljem koji ste izradili, uključujući prilagođeni direktorij dnevnika, pojavit će se pogreška usluge kada pokušate ponovno pokrenuti Apache uslugu. Rješenje je izmijeniti SELinux pravila kako bi se Apache usluzi omogućilo pisanje u potrebne datoteke. 

SELinux čini CentOS vrlo sigurnim poslužiteljem. Stoga ne preporučujemo njegovo potpuno onemogućavanje. S obzirom na to da vam SELinux omogućuje prilagodbu razine sigurnosti na različite načine, preporučuje se da ažurirate ili postavite pravila samo na temelju potreba vašeg okruženja.

Imate dvije mogućnosti ažuriranja Apache pravila: ili Univerzalno ili po određenom direktoriju. Ažuriranje pravila specifičnih za određeni direktorij je sigurnije. Stoga je to preporučena opcija. 

  • Univerzalno ažuriranje Apache pravila

Možete univerzalno izmijeniti Apache pravilo, što će naložiti SELinuxu da sve Apache procese tretira identično, koristeći httpd_unified Boolean. Imajte na umu da vam univerzalna izmjena Apache pravila neće pružiti istu razinu kontrole kao postavljanje svakog direktorija na specifičan način. Međutim, to je praktičnije kada je u pitanju održavanje. Pokrenite sljedeću naredbu za univerzalno ažuriranje Apache pravila: 

Definirajmo što rade vrijednosti u ovoj naredbi:

  • setsebool – ažurira SELinux boolean vrijednosti. 
  • -P oznaka  – ažurira vrijednost pri pokretanju sustava tako da će ova promjena ostati aktivna i nakon ponovnog pokretanja. 
  • httpd_unified  – boolean vrijednost koja će naložiti SELinuxu da sve Apache procese tretira kao istu vrstu. Korištenje vrijednosti 1 to omogućuje. 
  • Prilagodba Apache pravila na direktoriju

Ako želite veću kontrolu nad direktorijima, onda je prilagodba Apache pravila po direktoriju pravi put. Međutim, to donosi dodatni napor jer zahtijeva više održavanja. To je zato što pravilo nije globalno. Stoga ćete morati ručno postaviti vrstu konteksta za sve nove direktorije dnevnika koje navedete u konfiguracijskim datotekama virtualnog poslužitelja. 

Prije ažuriranja pravila, najprije provjerite vrstu konteksta koju je SELinux dodijelio /var/www/example/log direktoriju pomoću sljedeće naredbe:

Naredba će ispisati nešto poput sljedećeg, što je zapravo SELinux kontekst direktorija:

httpd_sys_content_t je trenutni kontekst, koji govori SELinuxu da je Apache procesu dopušteno samo čitanje datoteka stvorenih u ovom direktoriju. Budući da iz naših konfiguracija virtualnog poslužitelja želimo da Apache piše u datoteke dnevnika u /var/www/example/log direktoriju, izmijenit ćemo ovo pravilo kako bismo omogućili Apacheu generiranje i dodavanje u datoteke dnevnika web aplikacije. Kontekst koji to omogućuje je httpd_log_t. Evo naredbe za ažuriranje konteksta:

Kako biste primijenili promjene iz gornje naredbe i osigurali da ostanu aktivne i nakon ponovnog pokretanja, izvršite sljedeću naredbu:

Definirajmo što ova naredba radi:

  • restorecon – primjenjuje promjene i osigurava da one opstanu nakon ponovnog pokretanja sustava.
  • zastavica -R – pokrenut će naredbu rekurzivno, ažurirajući sve postojeće datoteke kako bi koristile novi kontekst.
  • zastavica -v – ispisuje promjene konteksta nakon što se naredba izvrši. Ispisat će nešto poput ovoga:
Kako biste vidjeli promjene konteksta, možete ponovno pokrenuti sljedeću naredbu:
U izlazu biste trebali vidjeti ažurirani tip konteksta:
S ažuriranim pravilima SELinux direktorija koja omogućuju Apacheu pisanje u log direktorij, sada možemo testirati virtualni host. 

Korak 6: Testiranje konfiguracije virtualnog hosta

Prije nego što možemo testirati virtualni host, morat ćete ponovno pokrenuti Apache usluge. Evo naredbe za to:

Zatim izlistajte sadržaj log direktorija pomoću sljedeće naredbe:

Trebalo bi se prikazati nešto poput ovoga, što pokazuje da je Apache stvorio log datoteke: 

list log files web server

Ako ste pratili korake do ove točke, Apache bi sada trebao moći posluživati oglednu HTML stranicu kada posjetite naziv svoje domene kako je definirano u datoteci vašeg virtualnog hosta. Ako želite, možete ponoviti korake 4 i 5 kako biste postavili dodatne domene i na odgovarajući način ažurirali njihova SELinux dopuštenja.

Zaključak

U ovom smo vodiču instalirali Apache, naučili kako ažurirati SELinux pravila kako bismo Apacheu omogućili pisanje u prilagođene log datoteke i na kraju testirali našu konfiguraciju kako bismo potvrdili da radi ispravno. Koristeći ovo znanje, trebali biste moći nadograditi ga i posluživati bolje aplikacije s bogatijim iskustvima. 

Ako želite istražiti cjeloviti web stog, pogledajte naš vodič o tome kako instalirati LAMP stog na CentOS 7

Sretno s radom!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreativni dizajner u CloudSigma, usredotočen na dosljedan poslovni identitet korištenjem tradicionalnih i inovativnih marketinških kanala. Vješt je u spajanju umjetničke vizije sa strateškim marketingom kako bi stvorio dojmljive brendirane priče.

Komentari

Još nema komentara. Budite prvi.