Introduction
Apache je trenutno najčešće korišteni web poslužitelj na svijetu. To je softver otvorenog koda razvijen prije više od dvadeset godina koji održava Apache Software Foundation. Prema podacima iz rujna 2020., procjenjuje se da poslužuje 35% cjelokupnog prometa web stranica na svijetu.
Programeri preferiraju Apache zbog njegove brzine, sigurnosti, pouzdanosti, robusnosti i jednostavnosti prilagodbe. Osim toga, Apache može zadovoljiti potrebe mnogih okruženja jer omogućuje instalaciju raznih proširenja i modula. To je moguće zahvaljujući skupu konfiguracija koje programeri i administratori poslužitelja mogu mijenjati u različite svrhe. U ovom vodiču provest ćemo vas kroz opće konfiguracijske datoteke i opcije koje mogu utjecati na različite rezultate na poslužiteljima Ubuntu i Debian.
Debian i Ubuntu su među najčešćim odabirima operacijskih sustava za poslužitelje. Njih dva imaju mnogo sličnosti. Na primjer, oba koriste APT upravitelj paketima i DEB pakete za ručnu instalaciju. Oni upravljaju postavkama Apachea i strukturom direktorija na sličan način. Stoga biste trebali moći pratiti ovaj vodič s bilo kojim od ovih operacijskih sustava. Prvo, možete pratiti ovaj vodič za postavljanje Ubuntu poslužitelja u nekoliko koraka.
Zatim se prijavite kao ne-root korisnik sa sudo privilegijama i počnimo!
Kako instalirati Apache na Ubuntu i Debian
Ako vaš poslužitelj već nema Apache, možete ga jednostavno instalirati pomoću jedne naredbe. Prvo pokrenite naredbu za ažuriranje:
|
1 |
sudo apt-get update |
Zatim možete instalirati Apache izdavanjem sljedeće naredbe:
|
1 |
sudo apt-get install apache2 |
Kada instalacija završi, možete provjeriti instaliranu verziju pomoću naredbe:
|
1 |
apache2 -v |
U vrijeme pisanja ovog vodiča, verzija je bila:

Nakon toga posjetite IP adresu ili naziv domene vašeg poslužitelja. Trebali biste moći vidjeti zadanu početnu stranicu Apachea:

Hijerarhija datoteka Apachea u distribucijama Ubuntu i Debian
Obje distribucije, Ubuntu i Debian, koriste apt upravitelj paketima. Slično tome, kada instalirate paket, on stvara slične hijerarhije datoteka. U našem slučaju, i za Ubuntu i za Debian, Apache čuva svoje konfiguracijske datoteke unutar direktorija „/etc/apache2” direktorija. Uđite u direktorij pomoću sljedeće naredbe i izlistajte sadržaj direktorija:
|
1 2 |
cd /etc/apache2 ls -F |
Izlaz naredbe možete vidjeti na snimci zaslona u nastavku:

Možete vidjeti niz datoteka i poddirektorija s kojima biste trebali biti upoznati prilikom konfiguriranja postavki Apache poslužitelja. Evo njihovog opisa:
- apache2.conf – To je glavna konfiguracijska datoteka za Apache poslužitelj. Također, sadrži sve zadane konfiguracije. Iako se gotovo sve konfiguracije mogu napraviti unutar ove datoteke, uvijek se preporučuje korištenje zasebnih namjenskih datoteka radi jednostavnosti i zaštite ove zadane datoteke od oštećenja.
- conf-available – To je direktorij koji sadrži dodatne lokalne konfiguracijske datoteke i datoteke drugih aplikacija koje još nisu povezane ni s jednim modulom. Konfiguracije u ovom direktoriju nisu aktivne osim ako ih ne omogućite. Naredba a2enconf može omogućiti konfiguracijsku datoteku. Evo sadržaja ovog direktorija:

- conf-enabled – To je direktorij koji sadrži dodatne lokalne konfiguracije i konfiguracijske datoteke drugih aplikacija povezane s njihovim odgovarajućim modulima. Konfiguracijske datoteke u ovom direktoriju su aktivne i utječu na ponašanje Apachea. Konfiguracijsku datoteku možete onemogućiti pomoću naredbe a2disconf. Evo sadržaja ovog direktorija:

- envvars – To je datoteka koja sadrži varijable okruženja za Apache2. Varijable u ovoj datoteci utječu samo na Apache i nisu povezane s vašim Linux sustavom. Evo sadržaja datoteke:

- magic – To je datoteka koja sadrži upute za određivanje MIME vrste datoteke. Pomaže poslužitelju da odredi vrstu datoteke.
- mods-available –To je direktorij koji sadrži konfiguracijske datoteke za učitavanje i konfiguriranje modula. Međutim, oni još nisu omogućeni. Možete ih omogućiti pomoću naredbe a2enmod.
- mods-enabled – To je direktorij koji sadrži konfiguracijske datoteke za učitavanje i konfiguriranje modula. Konfiguracije u ovom direktoriju već su omogućene i povezuju se s odgovarajućim modulima. Module možete onemogućiti pomoću naredbe a2dismod.
- ports-conf –To je datoteka koja specificira portove dostupne za virtualne poslužitelje i TCP portove koje Apache sluša.
- sites-available –To je direktorij koji sadrži dostupne konfiguracijske datoteke za Apache virtualne poslužitelje. Virtualni poslužitelji omogućuju Apacheu posluživanje različitih web stranica. Datoteke u ovom direktoriju još nisu aktivne. Možete omogućiti datoteku virtualnog poslužitelja naredbom a2ensite.
- sites-enabled – To je direktorij koji sadrži aktivirane konfiguracijske datoteke virtualnih poslužitelja. Obično sadrži simboličke poveznice na datoteke u direktoriju sites-available. Datoteku virtualnog poslužitelja možete onemogućiti pomoću naredbe a2dissite.
Modularni dizajn Apache konfiguracijskih datoteka omogućuje vam izmjenu i dodavanje datoteka prema potrebi.
Sadržaj datoteke Apache2.conf
Datoteka na “/etc/apache2/apache2.conf” sadrži glavne konfiguracijske datoteke za Apache. Točnije, sadrži konfiguracijske direktive koje poslužitelju daju upute. Sastoji se od tri odjeljka za definiranje konfiguracija procesa globalnog poslužitelja, konfiguracije zadanog poslužitelja i konfiguracija virtualnih poslužitelja .
U sustavima Ubuntu i Debian, većina datoteke sadrži konfiguracije procesa globalnog poslužitelja. Prema dnu možete pronaći konfiguracije za zadani poslužitelj i virtualne poslužitelje pomoću direktive „Include” . Apache koristi direktivu „Include” za čitanje drugih konfiguracijskih datoteka i njihovo uključivanje u trenutnu konfiguracijsku datoteku, od mjesta gdje se direktiva pojavljuje. To se događa pri pokretanju Apache poslužitelja.
Pomicanjem na dno datoteke apache2.conf trebali biste vidjeti nekoliko direktiva za uključivanje. Direktive učitavaju definicije modula u direktoriju mods-enabled , datoteku ports.conf , lokalne konfiguracije u direktoriju conf-enabled i konfiguracije virtualnih poslužitelja u direktoriju sites-enabled .
Odjeljak za konfiguraciju globalnog poslužitelja
Odjeljak za konfiguraciju globalnog poslužitelja sadrži postavke i upute koje kontroliraju kako Apache radi na globalnoj razini. Sadrži neke direktive čije vrijednosti možete mijenjati kako biste promijenili ponašanje Apachea. Raspravimo o nekima od njih:
- Timeout – Ova direktiva određuje maksimalno vrijeme u kojem poslužitelj mora ispuniti zahtjev. Prema zadanim postavkama, to je 300 sekundi, što je vjerojatno previše ako razvijate aplikaciju s bržim odzivom. Možete promijeniti ovo na manju vrijednost ako vaš poslužitelj ima dovoljno resursa.
- KeepAlive – Određuje da svaka veza treba ostati otvorena za rukovanje višestrukim zahtjevima istog klijenta. Prema zadanim postavkama, postavljeno je na „On”. Međutim, ako je postavljeno na „Off”, tada će svaki zahtjev morati uspostaviti novu vezu, čak i ako dolazi od istog klijenta. To može uzrokovati značajno preopterećenje poslužitelja.
- MaxKeepAliveRequests – Kontrolira maksimalni broj zahtjeva dopuštenih tijekom jedne trajne veze prije prekida. Kako biste omogućili neograničen broj veza, postavite vrijednost na 0. Za maksimalne performanse i učinkovitost, postavite broj na najveći mogući.
- KeepAliveTimeout – Određuje maksimalni broj sekundi čekanja na sljedeći zahtjev istog klijenta nakon posljednjeg prije nego što se veza prekine. Zadana vrijednost je 5 sekundi. Ako vrijeme istekne, tada se pri sljedećem zahtjevu uspostavlja nova veza za obradu zahtjeva.
- HostnameLookups – Odlučuje hoće li DNS pretraživanje biti omogućeno ili ne. Prema zadanim postavkama je isključeno. Ako ga omogućite, svaki će zahtjev rezultirati barem jednim pretraživanjem poslužitelja naziva, što će uvelike negativno utjecati na performanse vašeg poslužitelja.
Zadana datoteka virtualnog poslužitelja
Nova instalacija Apache poslužitelja dolazi sa zadanom datotekom virtualnog domaćina pod nazivom 000-default.conf. To je datoteka koja poslužuje zadanu Apache index.html stranicu. Ona ide u direktorij sites-available. Sadržaj ove datoteke pružit će vam opću predodžbu o formatu Apache datoteka virtualnih domaćina. Unesite sljedeću naredbu za otvaranje datoteke:
|
1 |
sudo nano /etc/apache2/sites-available/000-default.conf |
Ovdje je sadržaj datoteke. Uklonili smo komentare radi sažetosti:
|
1 2 3 4 5 6 7 8 9 |
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Kao što možete vidjeti u zaglavlju konfiguracije VirtualHost *:80, ovaj je virtualni domaćin prema zadanim postavkama konfiguriran za rukovanje zahtjevima na portu 80. To je standardni HTTP port.
Apache je dizajniran da koristi najspecifičniju definiciju virtualnog domaćina koja odgovara određenom zahtjevu. To znači da ovaj konkretni virtualni domaćin ne mora nužno obraditi svaki zahtjev poslužitelju. Umjesto toga, ako postoji druga datoteka virtualnog domaćina s određenijom definicijom, ona bi nadjačala ovu datoteku.
Ovdje su opisi direktiva u datoteci virtualnog domaćina:
- ServerAdmin – Određuje e-poštu za kontakt koja će se koristiti kada dođe do problema s poslužiteljem. Apache to obično prikazuje na svojoj generiranoj stranici s pogreškom. Ako postavite ServerSignature na „Email” u datoteci /etc/apache2/conf-enabled/security.conf , ovdje navedena adresa e-pošte bit će prikazana s mailto
- DocumentRoot – Ova direktiva pokazuje na direktorij koji sadrži datoteke web stranice. Zadanu Apache početnu stranicu dobrodošlice možete pronaći u direktoriju /var/www/html u sustavu Ubuntu 20.04.
- ErrorLog – Ova direktiva određuje lokaciju datoteke dnevnika pogrešaka.
- CustomLog – Ova direktiva prikazuje lokaciju dnevnika pristupa i format prikaza dnevnika.
Dodatne direktive virtualnog domaćina
- ServerName – Određuje naziv domene ili IP adresu kojom bi virtualni domaćin trebao upravljati. Ako definiramo više virtualnih domaćina kako bi naš Apache poslužitelj mogao posluživati više web stranica, dodali bismo direktivu ServerName i naveli domenu koju bi svaki virtualni domaćin trebao posluživati.
- ServerAlias – Ova direktiva omogućuje da se jedna datoteka virtualnog domaćina primijeni na više od jednog naziva, pružajući alternativne domene za dolazak do istog sadržaja. Na primjer, kada vaši korisnici imaju pristup istom sadržaju ako ispred naziva vaše domene stave www. Na primjer, mogli bismo dodati sljedeće u virtualnog domaćina za domenu example.com :
|
1 2 |
ServerName example.com ServerAlias www.example.com |
Direktiva za definiciju direktorija
U stvarnim slučajevima vjerojatno ćete imati datoteke svoje web stranice u nekoliko direktorija. Zadana datoteka virtualnog domaćina nema direktivu Directory jer može posluživati samo jednu index.html datoteku. Direktiva Directory određuje kako Apache rukuje različitim direktorijima unutar korijenskog direktorija dokumenata web stranice. U ovoj direktivi također definirate ograničenja pristupa datotečnom sustavu. Prema zadanim postavkama, Apache dopušta pristup s interneta samo datotekama u direktoriju /var/www . U ovom direktoriju možete kreirati druge direktorije koji će sadržavati datoteke vaše web stranice. Osim toga, možete odrediti kako želite da se pristupa datotekama u direktoriju. Primjer definicije može izgledati ovako:
|
1 2 3 4 5 |
<Directory /var/www/html> Options Indexes FollowSymLinks MultiViews Require all granted AllowOverride all </Directory> |
Dio <Directory /var/www/html> određuje direktorij na koji će se ova pravila primjenjivati. „AllowOverride” opcija određuje treba li “.htaccess” datoteka nadjačati postavke ako je postavite u navedeni direktorij. To je potrebno kada radite s okvirima poput Laravela koji rade s .htaccess-om i prepisivanjem URL-ova.
Da biste saznali više o virtualnim poslužiteljima, možete posjetiti naš vodič o tome kako postaviti Apache virtualne poslužitelje na Ubuntu 20.04. Evo primjera datoteke virtualnog poslužitelja sa svim direktivama koje smo definirali:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com ServerAdmin webmaster@localhost.com DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/html> Options Indexes FollowSymLinks MultiViews Require all granted AllowOverride all </Directory> </VirtualHost> |
Direktive Redirect, Alias i ScriptAlias
U nekim slučajevima možda ćete htjeti pristupiti datotekama web stranice ili izvršnim datotekama koje se ne nalaze izravno pod direktorijem DocumentRoot. Tu u igru ulaze ove tri direktive.
Direktiva Redirect upućuje klijente da upute novi zahtjev s drugim URL-om. Obično ćete je koristiti kada želite usmjeriti posjetitelje svoje web stranice na drugi naziv domene ili IP adresu. Imajte na umu da se Redirect najprije izvršava prije direktiva Alias i ScriptAlias. Direktiva Alias mapira URL na putanju direktorija. Direktiva ScriptAlias mapira URL na direktorije koji će sadržavati izvršne skripte. Da bi Alias i ScriptAlias radili, morate postaviti dopuštenja direktorija za korisnika www-data kojeg web koristi.
Kako omogućiti web stranice i module u Apacheu
Virtualni poslužitelji i moduli moraju biti omogućeni prije nego što postanu aktivni i dostupni Apache procesu. Nadalje, virtualni poslužitelji se stvaraju unutar sites-available direktorija kao što je objašnjeno. Ako imate datoteku virtualnog poslužitelja s nazivom example.com.conf, možete je omogućiti pomoću sljedeće naredbe:
|
1 |
sudo a2ensite example.com.conf |
Naredba omogućuje virtualni poslužitelj. Međutim, kako bi promjene stupile na snagu, morate naložiti Apacheu da ponovno učita konfiguracijske datoteke unosom sljedeće naredbe:
|
1 |
sudo service apache2 reload |
Možda ćete htjeti onemogućiti datoteku virtualnog poslužitelja pod nazivom example.com.conf kako je Apache ne bi koristio za posluživanje zahtjeva. Da biste to učinili, unesite sljedeću naredbu za onemogućavanje datoteke:
|
1 |
sudo a2dissite example.com.conf |
Ponovno, kako bi promjene stupile na snagu odmah, morate naložiti Apacheu da ponovno učita konfiguracijske datoteke unosom sljedeće naredbe:
|
1 |
sudo service apache2 reload |
Slično tome, možete omogućiti i onemogućiti module koristeći istu sintaksu. Naredba za omogućavanje modula je “a2enmod” a naredba za onemogućavanje modula je “a2dismod.” Na primjer, postoji Apache modul pod nazivom mod_rewrite koji pomaže pri prepisivanju URL-ova ovisno o konfiguracijama .htaccess-a. Morate omogućiti ovaj modul kako bi .htaccess datoteka radila. To možete učiniti unosom naredbe:
|
1 |
sudo a2enmod rewrite |
Kako bi ova promjena stupile na snagu, morate ponovno učitati Apache konfiguracije. Modul možete i onemogućiti unosom naredbe:
|
1 |
sudo a2dismod rewrite |
Nakon toga ponovno učitajte Apache2 konfiguracije kako bi promjene stupile na snagu odmah.
Na kraju, evo još nekoliko resursa koji će vam pomoći da se upoznate s Apache web poslužiteljem:
- Instalacija Apache poslužitelja na Ubuntu 18.04: Vodič korak-po-korak
- Kako instalirati Linux, Apache, MySQL, PHP (LAMP) stog na CentOS 7
- Osiguravanje Apachea s Let’s Encrypt na Ubuntu 18.04
- Svijet web poslužitelja: Apache protiv Nginxa
Zaključak
U ovom smo vodiču definirali osnovne konfiguracijske datoteke Apachea na sustavima Ubuntu i Debian. Kao što smo pokazali, Apache je vrlo modularan, što znači da možete instalirati mnogo modula za obavljanje različitih zadataka.
Možete jednostavno omogućiti i onemogućiti ove module te promijeniti druge konfiguracije kako biste postigli različite rezultate. Sada možete mijenjati lokalne konfiguracijske datoteke koje se zatim uključuju u glavnu konfiguracijsku datoteku. Stoga ne morate brinuti o oštećenju globalne konfiguracijske datoteke.
Sretno u radu!
Komentari
Još nema komentara. Budite prvi.