Apache-veiledninger for nybegynnere

Hva er Apache?

Apache er et bemerkelsesverdig stykke applikasjonsprogramvare. Det er den mest brukte webserverapplikasjonen i verden med mer enn 50 % andel i det kommersielle webservermarkedet. Apache er den mest brukte Web Server-applikasjonen i Unix-lignende operativsystemer men kan brukes på nesten alle plattformer som f.eks. Windows, OS X, OS/2 osv. Ordet Apache er hentet fra navnet på indianerstammen 'Apache', kjent for sine ferdigheter innen krigføring og strategiutforming.

Det er en modulær, prosessbasert webserverapplikasjon som lager en ny tråd med hver samtidige tilkobling. Den støtter en rekke funksjoner; mange av dem er kompilert som separate moduler og utvider kjernefunksjonaliteten, og kan tilby alt fra programmeringsspråkstøtte på serversiden til autentiseringsmekanisme. Virtuell hosting er en slik funksjon som lar en enkelt Apache Web Server betjene en rekke forskjellige nettsteder.

Apache

Hvordan installere Apache

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

  1. En av funksjonene i denne åpne kilden webapplikasjon er at hvem som helst kan lage installasjonsprogram i henhold til sitt eget miljø. Dette har gjort det mulig for ulike leverandører som Debian, Red Hat, FreeBSD, Suse osv. å tilpasse filplasseringen og konfigurasjonen av apache med hensyn til andre installerte applikasjoner og basis OS.
  2. Bortsett fra å installere det fra et leverandørbasert installatør, er det alltid muligheten til å bygge og installere det fra kildekoden. Å installere Apache fra kildefilen er en plattformuavhengig og fungerer for alle operativsystemer.

Apache-webserveren er en modulær applikasjon der administratoren kan velge den nødvendige funksjonaliteten og installere forskjellige moduler i henhold til hans/hennes krav.

Alle moduler kan settes sammen som en Dynamiske delte objekter (DSO er en objektfil som kan deles av flere apper mens de kjører) som eksisterer separat fra apache-hovedfilen. DSO-tilnærmingen anbefales sterkt, den gjør oppgaven med å legge til/fjerne/oppdatere moduler fra serverkonfigurasjonen veldig enkel.

Installer Apache:Linux-plattformen

På Red Hat eller rpm-baserte systemer

Hvis du bruker en rpm (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 denne applikasjonen enten ved leverandørspesifikk Package Manager eller direkte å bygge rpm-filen fra den tilgjengelige kilden tarball.

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

[root@amsterdam ~]# yum install httpd

Apache-kildens tarball kan konverteres til en rpm-fil ved å bruke følgende kommando.

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

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

Når du konverterer kildefilen til et rpm-installasjonsprogram, kan du bruke følgende kommando for å 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 kilden

Installering av apache fra kilden krever at –devel-pakken er installert på serveren din. .Du kan finne 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 directory name}.

[root@amserversterdam ~]./configure --help

[root@amserversterdam ~]./configure –prefix=/usr/local/apache –enable-so

[root@amserversterdam ~] make

[root@amserversterdam ~] make install

Eksemplet ovenfor viser kompileringen av Apache i /usr/local/apache-katalogen med DSO-funksjonen. Alternativet –enable-so, kan laste nødvendige moduler til apache under kjøretid via DSO-mekanismen i stedet for å kreve en rekompilering.

Når installasjonen er fullført, kan du bla gjennom webserverens standardside med favorittnettleseren din. Hvis brannmuren er aktivert på serveren din, må du gjøre unntak for port 80 på operativsystemets brannmur. Du kan bruke følgende kommando for å åpne port 80.

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

service iptables lagre

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

Installer Apache fra kilden

Hva er Virtual Host?

En Apache-nettserver kan være vert for flere nettsteder på SAMME server. Du trenger ikke separat servermaskin og apache-programvare for hver nettside. Dette kan oppnås ved å bruke konseptet Virtuell vert or VHost.

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

Virtuell vert

Typer Apache Virtualhost

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

Navnebasert virtuell vert

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

Navnebasert virtuell vert

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

Eksempel på Apache virtuell vert:

NameVirtualHost *:80

<VirtualHost 192.168.0.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com      

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.0.108:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

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

[root@amsterdam ~]#httpd –t
Syntax OK

Hvis konfigurasjonsfilen har feil syntaks, vil den gi en feil

[root@115 conf.d]# httpd -t

Syntax error on line 978 of /etc/httpd/conf/httpd.conf:

Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration

IP-basert virtuell vert

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

IP-basert virtuell vert

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

Listen 192.168.0.100:80

<VirtualHost 192.168.10.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com      

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.10.109:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

Hva Apache trenger for å kjøre Php-fil?

Å kjøre Php-filer på Apache trenger mod_php aktivert på serveren din. Den lar Apache tolke .Php-filer. Den har Php-behandlere 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 katalogen /etc/httpd/conf.d/. Du kan også sjekke det med:

httpd -M | grep "php5_module"

Utgangen vil være lik:

Hva Apache trenger for å kjøre Php-fil

Php-behandlere i Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_phper den eldste PHP-behandleren, den gjør PHP til en del av apache og kaller ingen ekstern PHP-prosess. Denne modulen er installert som standard i hvert Linux-distribusjonslager, 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 forlengelse av mod_fcgid, hvor som mod_fcgid er et høyytelsesalternativ til CGI, dvs. mod_cgi. Den starter tilstrekkelig antall forekomster av CGI til å håndtere samtidige nettforespørsler. Den bruker også suexec for å støtte forskjellige brukere med sine egne forekomster av PHP og forbedrer nettsikkerheten.

Å kjøre ruby-filer på Apache må mod_ruby være aktivert. Apache kan også håndtere rubinfiler gjennom FastCGI. Det er mulig å bruke flere versjoner av ruby ​​ved hjelp av mod_fcgid, dvs. FastCGI.

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

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

Trinn for å installere mod_ruby på serveren din –

cd /tmp

wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz

tar zxvf mod_ruby-1.2.6.tar.gz

cd mod_ruby-1.2.6/                    

./configure.rb --with-apr-includes=/usr/include/apr-1

make

make install

Hvordan kjøre Ruby med Apache

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

LoadModule ruby_module modules/mod_ruby.so

Hvis du ønsker å aktivere eller deaktivere disse modulene, må du redigere apache-konfigurasjonsfilen og kommentere eller fjerne kommentarer til disse modulene, hvis webserveren allerede er kompilert med disse modulene.

Kjør Ruby med Apache

Hvordan sikre Apache Web Server

Å sikre nettserveren din er veldig viktig, det betyr å la andre se kun den tiltenkte informasjonen og beskytte dataene dine og begrense tilgangen.

Dette er vanlige ting som forbedrer Apache-nettservernes sikkerhet.

1) Skjuler Apache-versjon og OS-informasjon:

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

Skjuler Apache-versjon og OS-informasjon

En hacker kan bruke denne informasjonen til å starte et angrep ved å bruke de offentlig tilgjengelige sårbarhetene i den bestemte versjonen av serveren eller operativsystemet.

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

"serversignatur"-alternativet tilgjengelig i apache-konfigurasjonsfilen. Som standard er den "på", vi må sette den "av".

vim /etc/httpd/conf/httpd.conf
ServerSignature Off

ServerTokens Prod

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

Etter å ha modifisert konfigurasjonsfilen, må du starte på nytt/laste apache-nettserveren på nytt for å gjøre den effektiv.

service httpd restart

Skjuler Apache-versjon og OS-informasjon

2) Deaktiver katalogoppføring

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

Deaktiver katalogoppføring

Denne funksjonen kan slås av for en spesifikk katalog gjennom "opsjonsdirektivet" som er tilgjengelig i Apache-konfigurasjonsfilen.

<Directory /var/www/html>

    Options -Indexes

</Directory>

Deaktiver katalogoppføring

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 som er tilgjengelige i apache-konfigurasjonsfilen din –

[root@amsterdam ~]#httpd –M

perl_module (shared)

php5_module (shared)

proxy_ajp_module (shared)

python_module (shared)

ssl_module (shared)

Mange av de oppførte modulene kan deaktiveres som mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, da de knapt brukes av noen produksjonswebservere.

vi /etc/httpd/conf/httpd.conf

#LoadModule auth_digest_module modules/mod_auth_digest.so

Når du har kommentert modulen, lagre filen.

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

/etc/init.d/httpd restart

4) Begrense tilgang til filer utenfor webrotkatalogen

Hvis du vil forsikre deg om at filer som er utenfor webrotkatalogen ikke er tilgjengelige, må du sørge for at katalogen er begrenset med "Tillat" og "Avslå alternativ" i konfigurasjonsfilen for nettserveren.

<Directory/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

Når du begrenser tilgangen utenfor webrotkatalogen, vil du ikke kunne få tilgang til noen fil som ligger på noen annen mappe på webserveren din, du vil få 404-returkode.

Begrensning av tilgang til filer utenfor webrotkatalogen

5) Bruke mod_evasive for å motbevise DoS-angrepet

Hvis du ønsker å beskytte webserveren din mot Dos (dvs. Denial of Service) må du aktivere modulen mod_evasive. Det er en tredjepartsmodul som oppdager Dos-angrep og forhindrer angrepet fra å gjøre så mye skade som det ville gjort hvis det ble latt gå sin gang. 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å nettserveren fra brute force-angrep. Mod_security-modulen kan installeres med standardpakkebehandleren for distribusjonen din.

Bruke mod_security for å forbedre Apache-sikkerheten

7) Begrensende forespørselsstørrelse

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

<Directory "/var/www/html/uploads">

   LimitRequestBody 512000

</Directory>

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-konfigurasjonsfilen, dvs

  • TransferLog: Opprette en loggfil.
  • LogFormat : Spesifiserer 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.

<VirtualHost www.example.com>

  ServerAdmin webmaster@example.com

  DocumentRoot /usr/www/example/httpd/htdocs/

  ServerName www.example.com

  ServerAlias example.com www.example

  ErrorLog /usr/www/example/httpd/logs/error_log

  TransferLog/usr/www/example/httpd/logs/accesslog

  CustomLog /usr/www/example/httpd/logs/accesslog combined

</VirtualHost>

To typer Apache-loggformat

  • Vanlig loggformat
  • Kombinert loggformat.

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

Vanlig loggformat

LogFormat "%h %l %u %t \"%r\" %>s %b" common

CustomLog logs/access_log common

Felles logg generert av Apache

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

Kombinert loggformat

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

CustomLog log/access_log combined

Her

  • %h er den eksterne verten
  • %l er identiteten til brukeren bestemt av identd
  • %u er brukernavnet som bestemmes av HTTP-autentisering
  • %t er tidspunktet serveren fullførte behandlingen av forespørselen.
  • %r er forespørselslinjen fra klienten. ("GET / HTTP/1.0")
  • %>s er statuskoden sendt fra serveren til klienten (500, 404 osv.)
  • %b er størrelsen på svaret til klienten (i byte)
  • Referer er siden som koblet til denne nettadressen.
  • 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 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"

Tilpasset logg oppretter en separat loggfil for hver virtuell vert på serveren din. Det må spesifiseres i den virtuelle vertsdelen av konfigurasjonsfilen.

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

Kombinert logg generert av Apache

Konfigurer din aller første produksjonswebserver

1. For å ha en kjørende produksjonswebserver trenger du en dedikert node (Fysisk/Virtuell eller skyforekomst) som kjører Linux/Unix, Windows, MacOS osv.

2. Webserveren må ha en direkte nettverkstilkobling og en statisk IP-adresse konfigurert på den.

3. Den må ha alle moduler nødvendig for å kjøre nettsider. Hvis en webserver behandler PHP-sider, må den ha PHP-modulen aktivert.

Konfigurer produksjonswebserver

  1. Det må også ha et godt antivirus applikasjon konfigurert og kjører for å sikre webserveren mot skadelig programvare eller virusangrep. Du trenger også mekanisme for å Oppdater den konfigurerte antivirus-/antimalwareapplikasjonen regelmessig uten noen manuell intervensjon for å få maksimalt utbytte av dem.
  2. Hvis du har hundrevis av domener som skal hostes på webserveren din, må du implementere begrensninger på filsystemkvoter for hvert domene, antall databaser hvert domene kan opprette, antall e-postkontoer per domene osv.
  3. Hvis webserveren din er satt opp for delte vertstjenester, må brukere på webserveren begrenses. En delt vertsbruker bør ha minst brukerrettigheter slik at han ikke skader viktige filer og ødelegger hele serveren. Apache gir ingen slik funksjonalitet og trenger forskjellige tredjepartsapplikasjoner, tilpasning av OS for å oppnå dette.
  4. Hvis du legger til en nytt domene på webserveren din trenger den å redigere hundrevis av konfigurasjonsfiler for å aktivere alle funksjoner for det tillagte domenet.
  5. Hvis et av de vertsbaserte domenene krever annen PHP-innstilling enn resten av domenene, er implementering av dette i kjernen Apache webserver svært komplekst og krever tilpasning av webserveren i stor grad.
  6. En produksjonswebserver trenger en brannmur for å blokkere uønsket trafikk som kan forårsake høy belastning på serveren din. Implementering IPTABLE regler med kommandolinje er veldig komplisert. Den trenger ekspertise fra kjerne Linux/Unix-miljø for å skrive effektive brannmurregler for blokkering av uønsket trafikk. IPTABLE er basert på nettfiltermodul; det er en brannmur på OS-nivå som lar en administrator lage regler for innkommende/utgående trafikk på serveren.
  7. En produksjonswebserver krever flere forskjellige applikasjoner som Epost, FTP for filopplasting, Domain Name System for parkerte domener. Å administrere alle disse applikasjonene på et kjerne Linux/Unix-system krever ekspertise på de respektive teknologiene.

Så man kan si at å administrere en webserver for flere domener er en veldig kompleks oppgave og krever redigering av hundrevis av konfigurasjonsfiler, tilpasset hver applikasjon for å oppfylle ønsket resultat. Det vil være svært vanskelig for nybegynnere å feilsøke eventuelle feilkonfigurasjoner.

Løsningen ved hjelp av Cpanel eller lignende programvare

Cpanel gir en grafisk måte å administrere webserveren din på. Det er ment å tilby massevertstjenester som er enkle å bruke og konfigurere. cPanel har redusert de tekniske barrierene for inntreden i hosting og webserveradministrasjon. Det gjør komplekse oppgaver enklere, det gir mange nyttige og brukervennlige webgrensesnitt som utfører vanlige systemadministrasjonsoppgaver som kreves for å betjene en webserver.

Løsningen ved hjelp av Cpanel eller lignende programvare

cPanel kompilerer sin egen versjon av programvare.

Hvis du må rekompilere webserveren din, dvs. apache på vanlig Linux-plattform, må du manuelt velge/søke i modulen som kreves. cPanel gir Easyapache-funksjonalitet som er en skriptbasert netserverkompileringsmetode.

Løsningen ved hjelp av Cpanel eller lignende programvare

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

En oppgave som trenger ekspertise på kjerne Linux/Unix-basert hosting som å installere SSL-er, rekompilere Apache med forskjellige PHP-moduler, oppdatere nettsikkerhet, konfigurere effektive IPTABLE-regler, legge til ftp-brukere, opprette e-postkontoer for hvert domene, skanne dokumentroten med antivirus og Det er enkelt å lage databaser med cPanel.

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

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

Den gir også en robust dokumentasjon, og har et veldig stort brukerfellesskap der du kan diskutere og finne løsninger på problemene dine.

Så det kan man si cPanel er den beste applikasjonen for å administrere webserveren din med nødvendige funksjoner. Det gir deg et brukervennlig grensesnitt for å administrere domenet ditt og en mekanisme for å unngå kompleksitet med å administrere kjernenettserveren.

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