Preduvjeti
Instalirajte Apache 2.4 web poslužitelj
Onemogućavanje indeksa
Korisnički imenici
Virtualni domaćini
Preduvjeti
- Vultr poslužitelj koji radi s najnovijim Arch Linuxom. Za više informacija pogledajte ovaj vodič .
- Sudo pristup.
- Naredbe koje se trebaju izvoditi kao root imaju prefiks
#, a one koje se mogu izvoditi kao obični korisnik $. Preporučeni način za pokretanje naredbi kao root je da, kao obični korisnik, svakoj od njih dodate prefiks sudo.
- Imajte instaliran uređivač teksta i budite upoznati s njim, kao što su
vi, vim, nano, emacsi tako dalje.
Instalirajte Apache 2.4 web poslužitelj
Ako koristite vatrozid, morat ćete omogućiti dolazni TCP promet na port 80.
Instalirajte Apache:
# pacman -S apache
Pokrenite Apache i neka se pokreće nakon svakog pokretanja:
# systemctl enable --now httpd
Testirajte da Apache radi. Posjetite http://YOUR-SERVER-WEB-ADDRESS-OR-IPi vidjet ćete stranicu koja prikazuje "Indeks /". Pokrenite ip addrako trebate znati IP adresu.
Apacheova konfiguracijska datoteka je /etc/httpd/conf/httpd.conf. Iako je Apache pokrenuo root korisnik, User httpiz sigurnosnih razloga odmah se prebacuje na rad kao ovaj korisnik. DocumentRoot "/srv/http"postavlja gdje će tražiti web datoteke. CustomLog "/var/log/httpd/access_log" commonpostavlja gdje će se bilježiti uspješni pristupi Apacheu. ErrorLog "/var/log/httpd/error_log"postavlja gdje će se bilježiti pristupi Apacheu.
Onemogućavanje indeksa
Prema zadanim postavkama, ako se Apacheu dodijeli direktorij koji ne pronađe indeksnu datoteku s ekstenzijom koju je konfigurirao za korištenje, automatski će generirati indeks koji prikazuje sadržaj direktorija. To se može smatrati sigurnosnom ranjivošću. Da biste ga onemogućili, uredite /etc/httpd/conf/httpd.confi unutar <Directory "/srv/http">, iz Options, izbrišite Indexes. Nakon ponovnog pokretanja, Apache će dati "Pristup zabranjen!" poruka o pogrešci, osim ako takva datoteka ne /srv/http/index.htmlpostoji.
Ponovno pokrenite Apache:
# systemctl restart httpd
Korisnički imenici
Prema zadanim postavkama, korisnički ~/public_html/imenik će biti prikazan na http://YOUR-SERVER-WEB-ADDRESS-OR-IP/~USERNAME/. No, korisnik httpmora imati izvršni bit pristup korisničkom imeniku i njegovom public_htmldirektoriju:
$ mkdir ~/public_html
$ chmod o+x ~/
$ chmod o+x ~/public_html
Osim toga, korisnik httpmora imati pristup za čitanje pojedinačnih datoteka. Ako je potrebno, pokrenite sljedeću naredbu:
$ chmod o+r ~/public_html/<FILES>
Ako želite onemogućiti korisničke public_htmlimenike da budu na vašem web poslužitelju, bez obzira na dopuštenja direktorija i datoteka, komentirajte ovaj redak (dodajte #na početak) u /etc/httpd/conf/httpd.conf:
Include conf/extra/httpd-userdir.conf
Ponovno pokrenite Apache:
# systemctl restart httpd
Virtualni domaćini
Možete ugostiti više naziva domena s istog poslužitelja Apache i posluživati im različite sadržaje.
Stvorite mapu za držanje vaših virtualnih konfiguracija hosta:
# mkdir /etc/httpd/conf/vhosts
Napravite konfiguracijsku datoteku za svaki virtualni host, kao što je /etc/httpd/conf/vhosts/YOUR-DOMAIN-NAME.com:
<VirtualHost *:80>
ServerAdmin webmaster@YOUR-DOMAIN-NAME.com
DocumentRoot "/srv/YOUR-DOMAIN-NAME.com"
ServerName YOUR-DOMAIN-NAME.com
ServerAlias YOUR-DOMAIN-NAME.com
ErrorLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-error_log"
CustomLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-access_log" common
<Directory "/srv/YOUR-DOMAIN-NAME.com">
Require all granted
</Directory>
</VirtualHost>
Napravite direktorij za posluživanje virtualnog hosta:
# mkdir /srv/YOUR-DOMAIN-NAME.com
Na kraju /etc/httpd/conf/httpd.conf, uključite svaku od ovih konfiguracijskih datoteka virtualnog hosta:
Include conf/vhosts/YOUR-DOMAIN-NAME.com
Ponovno pokrenite Apache:
# systemctl restart httpd
Zahtjevi koje Apache primi YOUR-DOMAIN-NAME.combit će posluženi iz /srv/YOUR-DOMAIN-NAME.com. Napomena zahtjevi prema Apacheu koji ne odgovaraju određenom ServerNameili ServerAlias, samo IP adresi ili drugom nazivu domene koji se razlučuje na vaš IP, i dalje će se posluživati iz prvog uključenog virtualnog hosta. Međutim, svejedno biste trebali smatrati da je sve u općem DocumentRoot, što je zadana vrijednost /srv/http, na neki način dostupno.