Apache-veiledninger for nybegynnere

Innholdsfortegnelse

Hva er Apache?

Apache er en bemerkelsesverdig applikasjonsprogramvare. Det er den mest brukte webserverapplikasjonen i verden med mer enn 50% andel i det kommersielle webservermarkedet. Apache er det mest brukte webserverprogrammet i Unix-lignende operativsystemer, men kan brukes på nesten alle plattformer som Windows, OS X, OS / 2 osv. Ordet Apache er hentet fra navnet på Native Amerikansk stamme 'Apache', kjent for sine ferdigheter innen krigføring og strategiutvikling.

Det er et modulbasert, prosessbasert nettserverapplikasjon som skaper en ny tråd for hver samtidig tilkobling. Den støtter en rekke funksjoner; mange av dem er samlet som separate moduler og utvider kjernefunksjonaliteten, og kan gi alt fra serverprogrammeringsstøtte til autentiseringsmekanisme. Virtuell hosting er en slik funksjon som gjør det mulig for en enkelt Apache Web Server å tjene en rekke forskjellige nettsteder.

Hvordan installere Apache

Det er mange måter å installere pakken eller applikasjonen på. Det er vervet nedenfor -

  1. En av funksjonene i denne open source-applikasjonen er at alle kan lage installatører i henhold til sitt eget miljø. Dette har gjort det mulig for ulike leverandører som Debian, Red Hat, FreeBSD, Suse etc. å tilpasse filplasseringen og konfigurasjonen av apache, med tanke på andre installerte applikasjoner og base OS.
  2. Bortsett fra å installere den fra et leverandørbasert installasjonsprogram, er det alltid muligheten til å bygge og installere den fra kildekoden. Installering av Apache fra kildefilen er en plattformuavhengig og fungerer for alle operativsystemer.

Apache-webserveren er et modulært program der administratoren kan velge ønsket funksjonalitet og installere forskjellige moduler i henhold til hans / hennes krav.

Alle moduler kan kompileres som dynamiske delte objekter (DSO er en objektfil som kan deles av flere apper mens de kjøres) som eksisterer separat fra hovedapache-filen. DSO-tilnærmingen anbefales på det sterkeste, det gjør oppgaven med å legge til / fjerne / oppdatere moduler fra serverkonfigurasjonen veldig enkel.

Installer Apache: Linux Platform

På Red Hat eller rpm-baserte systemer

Hvis du bruker en o / min (RedHat Package Manager er et verktøy for å installere applikasjoner på Linux-systemer) basert Linux-distribusjon, dvs. Red Hat, Fedora, CentOs, Suse, kan du installere dette programmet av en leverandørspesifikk pakkehåndtering eller direkte bygge rpm-filen fra tilgjengelig kilde tarball.

Du kan installere Apache via standard Package Manager som er tilgjengelig på alle Red Hat-baserte distribusjoner som CentOs, Red Hat og Fedora.

[root @ amsterdam ~] # yum install httpd

Apache-kildetarballen kan konverteres til en rpm-fil ved hjelp av følgende kommando.

[root @ amsterdam ~] # rpmbuild -tb httpd-2.4.x.tar.bz2

Det er obligatorisk å ha -devel-pakken installert på serveren din for å opprette .rpm-fil fra kilden.

Når du konverterer kildefilen til et rpm-installasjonsprogram, kan du bruke følgende kommando til å installere Apache.

[root @ amsterdam ~] # rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

Etter installasjonen starter ikke serveren automatisk, for å starte tjenesten, må du bruke en av følgende kommandoer på Fedora, CentOs eller Red Hat.

[root @ amsterdam ~] # / usr / sbin / apachectl start[root @ amsterdam ~] # service httpd start[root @ amsterdam ~] # /etc/init.d/httpd start

Installer Apache fra kilde

Installasjon av apache fra kilden krever at -devel-pakken installeres på serveren din ... Du finner den siste tilgjengelige versjonen av Apache, du kan laste den ned her. Når du har lastet ned kildefilen, flytt den til mappen / usr / local / src.

[root @ amserversterdam ~] cd / usr / local / src[root @ amserversterdam ~] gzip -d httpd-2.2.26.tar.gz[root @ amserversterdam ~] tar xvf httpd-2.2.26.tar[root @ amserversterdam ~] httpd-2.2.26

For å se alle tilgjengelige konfigurasjonsalternativer for Apache, kan du bruke ./configure -help-alternativet. Det vanligste konfigurasjonsalternativet er -prefix = {install katalognavn}.

[root @ amserversterdam ~] ./ konfigurer - hjelp[root @ amserversterdam ~] ./ configure -prefix = / usr / local / apache -enable-so[root @ amserversterdam ~] make[root @ amserversterdam ~] installer

Ovennevnte eksempel viser samlingen av Apache i / usr / local / apache-katalogen med DSO-funksjonen. Alternativet -enable-so, kan laste nødvendige moduler for å apache på kjøretid via DSO-mekanismen i stedet for å kreve en rekompilering.

Når installasjonen er fullført, kan du bla gjennom standardsiden til webserverne med favorittleseren din. Hvis brannmur er aktivert på serveren din, må du gjøre unntak for port 80 på OS-brannmuren. Du kan bruke følgende kommando for å åpne port 80.

iptables -I INNGANG -p tcp --dport 80 -j AKSEPT

tjenesten iptables lagre

Du kan se standard Apache2 velkomstskjerm ved å bla gjennom serverens IP-adresse.

Hva er Virtual Host?

En Apache-webserver kan være vert for flere nettsteder på samme server. Du trenger ikke egen servermaskin og apache-programvare for hvert nettsted. Dette kan oppnås ved å bruke konseptet Virtual Host eller VHost.

Ethvert domene du vil være vert på webserveren din, vil ha en egen oppføring i apache-konfigurasjonsfilen.

Typer Apache Virtualhost

  1. Navnbasert virtuell vert
  2. Adressebasert eller IP-basert virtuell vert og.

Navnbasert virtuell vert

Navnbasert virtuell hosting brukes til å være vert for flere virtuelle nettsteder på en enkelt IP-adresse.

For å konfigurere navnebasert virtuell hosting, må du stille inn IP-adressen du skal motta Apache-forespørslene for alle de ønskede nettstedene. Du kan gjøre dette etter NameVirutalHost-direktivet i apache-konfigurasjonen, dvs. httpd.conf / apache2.conf-filen.

Apache virtuell vert Eksempel:

NameVirtualHost *: 80ServerAdmin Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.DocumentRoot /var/www/html/example1.comServernavn www.eksempel1.comServerAdmin Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Du kan legge til så mange virtuelle verter, i henhold til dine krav. Du kan sjekke webkonfigurasjonsfilene dine med:

[root @ amsterdam ~] #httpd -tSyntaks OK

Hvis konfigurasjonsfilen har en feil syntaks, vil det føre til en feil

[root @ 115 conf.d] # httpd -tSyntaksfeil på linje 978 av /etc/httpd/conf/httpd.conf:Ugyldig kommando '*', feilstavet eller definert av en modul som ikke er inkludert i serverkonfigurasjonen

IP-basert virtuell vert

For å konfigurere IP-basert virtuell hosting, trenger du mer enn en IP-adresse konfigurert på serveren din. Så antall vhost apache vil avhenge av antall IP-adresser som er konfigurert på serveren din. Hvis serveren din har 10 IP-adresser, kan du opprette 10 IP-baserte virtuelle verter.

I diagrammet ovenfor ble to nettsteder example1.com og example2.com tildelt forskjellige IP-er og bruker IP-basert virtuell hosting.

Lytt 192.168.0.100:80ServerAdmin Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.DocumentRoot /var/www/html/example1.comServernavn www.eksempel1.comServerAdmin Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Hva Apache trenger for å kjøre Php File?

Å kjøre Php-filer på Apache trenger mod_php aktivert på serveren din. Det lar Apache tolke .Php-filer. Den har Php-håndtere som tolker Php-koden i apache og sender HTML til webserveren din.

Hvis mod_php er aktivert på serveren din, vil du ha en fil som heter php.conf i /etc/httpd/conf.d/ katalogen. Du kan også sjekke det med:

httpd -M | grep "php5_module"

Utgangen vil være lik:

Php-håndtere i Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_php er den eldste PHP-behandleren, den gjør PHP til en del av apache og kaller ikke noen ekstern PHP-prosess. Denne modulen er installert som standard i hvert Linux-distribusjonsregister, så det er veldig enkelt å aktivere / deaktivere denne modulen.

Hvis du bruker FastCGI som din PHP-behandler, kan du angi at flere versjoner av PHP skal brukes av forskjellige kontoer på serveren din.

FastCGI dvs. mod_fastcgi er en utvidelse av mod_fcgid , der som mod_fcgid er et høyytelsesalternativ for CGI, dvs. mod_cgi. Det starter tilstrekkelig antall forekomster av CGI for å håndtere samtidige nettforespørsler. Den bruker også suexec for å støtte forskjellige brukere med sine egne forekomster av PHP og forbedrer websikkerheten.

Å kjøre rubinfiler på Apache trenger mod_ruby for å være aktivert. Apache kan også håndtere rubinfiler gjennom FastCGI. Det er mulig å bruke flere versjoner av rubin ved hjelp av mod_fcgid dvs. FastCGI.

Du kan også installere apache-passasjer og konfigurere Apache til å bruke den til servering av rubinsider.

(Phusion Passenger også kjent som “ passasjer ” er en gratis webservermodul som er designet for å integreres med Apache og Nginx)

Fremgangsmåte for å installere mod_ruby på serveren din -

cd / tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztjære zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6 /./configure.rb --with-apr-inkluderer = / usr / inkluderer / apr-1gjøregjøre installasjon

Hvordan kjøre Ruby med Apache

Vi må legge til mod_ruby-modulen i Apache-konfigurasjonen, dvs. /etc/httpd/conf.d/ruby.conf, og legge til følgende linje.

LoadModule ruby_module modules / mod_ruby.so

Hvis du vil aktivere eller deaktivere disse modulene, må du redigere konfigurasjonsfilen for apache og kommentere eller fjerne merking av disse modulene, hvis webserveren allerede er kompilert med disse modulene.

Hvordan sikre Apache Web Server

Det er veldig viktig å sikre webserveren din, det betyr at andre bare kan se den tiltenkte informasjonen og beskytte dataene dine og begrense tilgangen.

Dette er vanlige ting som forbedrer Apache-webservernes sikkerhet.

1) Skjule Apache-versjon og OS-informasjon:

Apache viser versjonen og navnet på operativsystemet i feil som vist på skjermbildet nedenfor.

En hacker kan bruke denne informasjonen til å starte et angrep ved hjelp av offentlig tilgjengelige sårbarheter i den spesielle versjonen av serveren eller operativsystemet.

For å forhindre at Apache-webserveren viser denne informasjonen, må vi endre

“Server signatur” alternativet tilgjengelig i apache konfigurasjonsfilen. Som standard er det "på", vi må sette det "av".

vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod

Vi har også satt "ServerTokens Prod" som forteller webserveren å bare returnere apache og undertrykke OS-hovedversjonen og -versjonen

Etter at du har endret konfigurasjonsfilen, må du starte / laste apache-webserveren på nytt for å gjøre den effektiv.

tjenesten httpd omstart

2) Deaktiver katalogoppføring

Hvis dokumentkatalogen din ikke har en indeksfil, vil apache-webserveren som standard vise alt innholdet i dokumentkatalogen.

Denne funksjonen kan være slått av for en bestemt katalog gjennom "alternativdirektivet" tilgjengelig i Apache-konfigurasjonsfilen.

Alternativer-indekser

3) Deaktivering av unødvendige moduler

Det er god praksis å deaktivere alle unødvendige moduler som ikke er i bruk. Du kan se listen over aktiverte moduler tilgjengelig i konfigurasjonsfilen for apache -

[root @ amsterdam ~] #httpd -Mperl_module (delt)php5_module (delt)proxy_ajp_module (delt)python_module (delt)ssl_module (delt)

Mange av de oppførte modulene kan deaktiveres likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, da de knapt brukes av noen produksjonsservere.

vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules / mod_auth_digest.so

Når du har kommentert modulen, lagrer du filen.

Start apache-tjenester på nytt med følgende kommando.

/etc/init.d/httpd start på nytt

4) Begrens tilgang til filer utenfor webrotkatalogen

Hvis du vil sørge for at filer som er utenfor rotkatalogen til Internett, ikke er tilgjengelige, må du sørge for at katalogen er begrenset med "Tillat" og "Avvis alternativet" i konfigureringsfilen til webserveren.

Alternativer IngenTillat overstyring IngenBestill nekt, tillatNekt fra alle

Når du begrenser tilgang utenfor nettrotdirektøren, vil du ikke kunne få tilgang til noen filer som ligger i noen annen mappe på webserveren din, du får 404 returkode.

5) Bruke mod_evasive til å tilbakevise DoS-angrepet

Hvis du vil beskytte webserveren din mot Dos (dvs. Denial of Service), må du aktivere modulen mod_evasive. Det er en tredjepartsmodul som oppdager Dos-angrep og hindrer angrepet i å gjøre så mye skade som det ville gjort hvis det ble igjen å løpe. Den kan lastes ned her.

Last ned filen ovenfor

6) Bruke mod_security for å forbedre apache-sikkerheten

Denne modulen fungerer som en brannmur for Apache og lar deg overvåke trafikk i sanntid. Det forhindrer også webserveren fra brute force-angrep. Mod_security-modulen kan installeres med standard pakkebehandling for distribusjonen din.

7) Begrensende forespørselsstørrelse

Apache har ingen begrensninger på den totale størrelsen på http-forespørselen som kan føre til et DoS-angrep. Du kan begrense størrelsen på forespørselen til et Apache-direktiv "LimitRequestBody" med katalogkoden. Verdien kan settes fra 0 til 2 GB (dvs. 2147483647 byte) i henhold til dine krav.

LimitRequestBody 512000

Apache-loggformat

Apache-logger gir detaljert informasjon som hjelper til med å oppdage vanlige problemer med serveren.

For å opprette tilgangslogger må mod_log_configmodule være aktivert.

Tre direktiver tilgjengelig i apache-konfigurasjonsfil, dvs.

  • TransferLog: Opprette en loggfil.
  • LogFormat: Spesifisere et tilpasset format.
  • CustomLog: Opprette og formatere en loggfil.

TransferLog-direktivet er tilgjengelig i apache-konfigurasjonsfilen og roterer virtuelle vertsloggfiler i henhold til angitte parametere.

ServerAdmin Denne e-postadressen er beskyttet mot programmer som samler e-postadresser. Du må aktivere JavaScript for å kunne se den.DocumentRoot / usr / www / eksempel / httpd / htdocs /Servernavn www.example.comServerAlias ​​eksempel.com www.eksempelErrorLog / usr / www / eksempel / httpd / logs / error_logTransferLog / usr / www / example / httpd / logs / accesslogCustomLog / usr / www / example / httpd / logs / accesslog kombinert

To typer Apache-loggformat

  • Vanlig loggformat
  • Kombinert loggformat.

Du kan aktivere dem ved å redigere konfigurasjonsfilen for apache, dvs. apache2.conf (Debian / ubuntu) eller httpd.conf (rpm-baserte systemer) -fil

Vanlig loggformat

LogFormat "% h% l% u% t \"% r \ "%> s% b" vanligCustomLog-logger / access_log felles

Felles logg generert av Apache

[Ons 11. okt 14:32:52 2000] [feil] [klient 127.0.0.1] klient avvist av serverkonfigurasjon: / eksport / hjem / live / ap / htdocs / test

Kombinert loggformat

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" kombinertCustomLog log / access_log kombinert

Her,

  • % h er den eksterne verten
  • % l er identiteten til brukeren bestemt av identd
  • % u er brukernavnet bestemt av HTTP-godkjenning
  • % t er tiden serveren er ferdig med å behandle forespørselen.
  • % r er forespørselslinjen fra klienten. ("GET / HTTP / 1.0")
  • %> s er statuskoden som sendes fra serveren til klienten (500, 404 osv.)
  • % b er størrelsen på svaret til klienten (i byte)
  • Referer er siden som lenker til denne URL-en.
  • User-agent er nettleserens identifikasjonsstreng.

Kombinert logg generert av Apache:

199.187.122.91 - - [06 / Mar / 2014: 04: 22: 58 +0100] "GET /robots.txt HTTP / 1.1" 404 1228 "-" "Mozilla / 4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1 ; .NET CLR 2.0.50727) "

Egendefinert logg oppretter en egen loggfil for hver virtuelle vert på serveren din. Det må spesifiseres i den virtuelle vertdelen av konfigurasjonsfilen.

Du kan se nedenfor nevnte virtuelle vertskonfigurasjon, generert logg vil være tilpasset den virtuelle verten og formatet vil bli kombinert.

Konfigurer din aller første produksjonsserver

1. For å ha en produksjonswebserver som kjører, trenger du en dedikert node (fysisk / virtuell eller skyforekomst) som kjører Linux / Unix, Windows, MacOS etc.

2. Web-serveren må ha en direkte nettverkstilkobling og en staticIP-adresse konfigurert på den.

3. Det må ha alle modulene som kreves for å kjøre websider. Hvis en webserver behandler PHP-sider, må den ha PHP-modul aktivert.

  1. Det må også ha et godt antivirusprogram konfigurert og kjører for å sikre webserveren mot skadelig programvare eller virusangrep. Du trenger også en mekanisme for å oppdatere det konfigurerte antivirus- / antiprogramapplikasjonen regelmessig uten manuell inngrep for å få maksimalt utbytte av dem.
  2. Hvis du har hundrevis av domener som skal hostes på webserveren din, må du implementere begrensninger på filsystemkvoten for hvert domene, antall databaser hvert domene kan opprette, antall e-postkontoer per domene etc.
  3. Hvis webserveren din er konfigurert for delte hostingtjenester, må brukere på webserveren din være begrenset . En delt hostingbruker skal ha minst brukerrettigheter, slik at han ikke skader viktige filer og ødelegger hele serveren. Apache tilbyr ingen slik funksjonalitet og trenger forskjellige tredjepartsapplikasjoner, tilpasning av OS for å oppnå dette.
  4. Hvis du legger til et nytt domene på webserveren din, må den redigere hundrevis av konfigurasjonsfiler for å aktivere alle funksjonene for det lagt til domenet.
  5. Hvis et av vertsdomenene krever en annen PHP-innstilling enn resten av domenene, er implementering av dette i kjernen av Apache-webserveren veldig komplisert og trenger tilpasning av webserveren din i stor grad.
  6. En webserver for produksjon trenger en brannmur for å blokkere uønsket trafikk som kan forårsake stor belastning på serveren din. Implementering av IPTABLE regler med kommandolinje er veldig komplisert. Det trenger ekspertise i kjerne Linux / Unix-miljøet for å skrive effektive brannmurregler for å blokkere uønsket trafikk. IPTABLE er basert på nettfiltermodul; det er en OS-brannmur som lar en administrator lage regler for innkommende / utgående trafikk på serveren.
  7. En produksjons-webserver krever flere forskjellige applikasjoner som e-post , FTP for filopplasting, Domain Name System for parkerte domener. Å administrere alle disse applikasjonene på et kjerne Linux / Unix-system krever kompetanse på de respektive teknologiene.

Så man kan si at administrering av en webserver for flere domener er en veldig kompleks oppgave og krever redigering av hundrevis av konfigurasjonsfiler, og tilpasser hvert program for å oppnå ønsket resultat. Feilsøking av enhver misskonfigurasjon vil være veldig vanskelig for nybegynnere.

Løsningen ved hjelp av Cpanel eller lignende programvare

Cpanel gir en grafisk måte å administrere webserveren på . Det er ment å tilby massehotelltjenester som er enkle å bruke og konfigurere. cPanel har redusert de tekniske hindringene for tilgang til hosting og administrasjon av webservere. Det gjør kompleks oppgave enklere, den gir mange nyttige og enkle å bruke webgrensesnitt som utfører vanlige systemadministrasjonsoppgaver som kreves for å betjene en webserver.

cPanel kompilerer sin egen versjon av programvaren.

Hvis du må kompilere webserveren din, dvs. apache på normal Linux-plattform, må du velge / søke i modulen som kreves manuelt. cPanel tilbyr Easyapache-funksjonalitet som er en skriptbasert kompileringsmetode for webserveren.

Det gir deg ikke bare webtjenester, men også Mail, DNS, FTP og mange flere tjenester som kreves for webapplikasjonen.

En oppgave som trenger ekspertise på Linux / Unix-baserte hosting som å installere SSL-er, kompilere Apache med forskjellige PHP-moduler, oppdatere websikkerhet, konfigurere effektive IPTABLE regler, legge til ftp-brukere, opprette e-postkontoer for hvert domene, skanne dokumentroten med antivirus og å lage databaser er enkle å fullføre med cPanel.

Det gir mange skript som løser, installerer og feilsøker vanlige administrative oppgaver.

Det gir en sikkerhetskopierings- og gjenopprettingsfunksjonalitet som eliminerer behovet for å kopiere filer manuelt til sikkerhetskopilagring. Hvis du sikkerhetskopierer domenet ditt, vil cPanel opprette en tar-fil som vil inneholde dokumentrotmappe, e-postkontoer og e-post, ftp-kontoer, databaser, DNS-poster og andre applikasjoner.

Det gir også en robust dokumentasjon, og har et veldig stort fellesskap av brukere der du kan diskutere og få løsning på problemene dine.

Så, man kan si at cPanel er det beste programmet for å administrere webserveren din med nødvendige funksjoner. Det gir deg et brukervennlig grensesnitt for å administrere domenet ditt og en mekanisme for å unngå kompleksitet i administrering av kjerne-webserver.

Det er mange konkurrerende produkter til cPanel som Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel etc.

Interessante artikler...