Forutsetninger
Installer Apache 2.4 Web Server
Deaktivering av indekser
Brukerkataloger
Virtuelle verter
Forutsetninger
- En Vultr-server som kjører oppdatert Arch Linux. Se denne veiledningen for mer informasjon.
- Sudo tilgang.
- Kommandoer som kreves for å kjøres som root er prefikset av
#, og de som kan kjøres som en vanlig bruker av $. Den anbefalte måten å kjøre kommandoer som root er å, som en vanlig bruker, prefiksere hver av dem med sudo.
- Ha et tekstredigeringsprogram installert, og bli kjent med det, for eksempel
vi, vim, nano, emacsog så videre.
Installer Apache 2.4 Web Server
Hvis du bruker en brannmur, må du aktivere innkommende TCP-trafikk til port 80.
Installer Apache:
# pacman -S apache
Start Apache, og få den til å starte etter hver oppstart:
# systemctl enable --now httpd
Test at Apache kjører. Besøk http://YOUR-SERVER-WEB-ADDRESS-OR-IP, og du vil se en side som viser "Indeks av /". Kjør ip addrhvis du trenger å vite IP-adressen.
Apaches konfigurasjonsfil er /etc/httpd/conf/httpd.conf. Selv om Apache startes av rotbrukeren, User httpbytter den umiddelbart til å kjøre som denne brukeren av sikkerhetsgrunner. DocumentRoot "/srv/http"setter hvor den vil se etter nettfiler. CustomLog "/var/log/httpd/access_log" commonsett hvor tilganger til Apache som er vellykkede vil bli logget. ErrorLog "/var/log/httpd/error_log"setter hvor tilganger til Apache den feilen vil bli logget.
Deaktivering av indekser
Som standard, hvis Apache får en katalog som den ikke finner en indeksfil med en utvidelse den er konfigurert til å bruke, vil den automatisk generere en indeks som viser katalogens innhold. Dette kan betraktes som et sikkerhetsproblem. For å deaktivere den, rediger /etc/httpd/conf/httpd.confog innen <Directory "/srv/http">, fra Options, slett Indexes. Når den er startet på nytt, vil Apache gi en "Tilgang forbudt!" feilmelding, med mindre en fil som /srv/http/index.htmleksisterer.
Start Apache på nytt:
# systemctl restart httpd
Brukerkataloger
Som standard vil en brukers ~/public_html/katalog vises på http://YOUR-SERVER-WEB-ADDRESS-OR-IP/~USERNAME/. Men brukeren httpmå ha kjørbar bittilgang til brukerkatalogen og dens public_htmlkatalog:
$ mkdir ~/public_html
$ chmod o+x ~/
$ chmod o+x ~/public_html
I tillegg må brukeren httpha lesetilgang til individuelle filer. Om nødvendig, kjør følgende kommando:
$ chmod o+r ~/public_html/<FILES>
Hvis du vil deaktivere brukerens public_htmlkataloger fra å være på webserveren din, uavhengig av katalog- og filtillatelser, kommenter denne linjen (legg #til i begynnelsen) i /etc/httpd/conf/httpd.conf:
Include conf/extra/httpd-userdir.conf
Start Apache på nytt:
# systemctl restart httpd
Virtuelle verter
Du kan være vert for flere domenenavn fra samme Apache-server, og servere dem med forskjellig innhold.
Opprett en mappe for å holde dine virtuelle vertskonfigurasjoner:
# mkdir /etc/httpd/conf/vhosts
Opprett en konfigurasjonsfil for hver virtuelle vert, for eksempel /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>
Gjør den virtuelle vertsserveringskatalogen:
# mkdir /srv/YOUR-DOMAIN-NAME.com
På slutten av /etc/httpd/conf/httpd.conf, inkluderer hver av disse virtuelle vertskonfigurasjonsfilene:
Include conf/vhosts/YOUR-DOMAIN-NAME.com
Start Apache på nytt:
# systemctl restart httpd
Forespørsler Apache mottar til YOUR-DOMAIN-NAME.comvil bli servert fra /srv/YOUR-DOMAIN-NAME.com. Merknadsforespørsler til Apache som ikke samsvarer med en spesifikk ServerNameeller ServerAlias, bare IP-adressen, eller et annet domenenavn som løser til din IP, vil fortsatt bli levert fra den første virtuelle verten som er inkludert. Når det er sagt, bør du fortsatt vurdere at alt i den generelle DocumentRoot, som standard er /srv/http, er tilgjengelig på en eller annen måte.