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.
Hvordan installere Apache
Det er mange mรฅter รฅ installere pakken eller applikasjonen pรฅ. Det er vervet nedenfor -
- 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.
- 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.
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.
Typer Apache Virtualhost
- Navnebasert virtuell vert
- 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.
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.
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:
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.
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.
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
2) Deaktiver katalogoppfรธring
Hvis dokumentrotkatalogen din ikke har en indeksfil, vil apache-webserveren som standard vise alt innholdet i dokumentrotkatalogen.
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>
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.
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.
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.
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.
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.
- 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.
- 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.
- 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.
- Hvis du legger til en nytt domene pรฅ webserveren din trenger den รฅ redigere hundrevis av konfigurasjonsfiler for รฅ aktivere alle funksjoner for det tillagte domenet.
- 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.
- 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.
- 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.
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.
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.

















