Apache tutorials for begyndere
Hvad er Apache?
Apache er et bemรฆrkelsesvรฆrdigt stykke applikationssoftware. Det er den mest udbredte webserverapplikation i verden med mere end 50% andel pรฅ det kommercielle webservermarked. Apache er den mest udbredte Web Server-applikation i Unix-lignende operativsystemer men kan bruges pรฅ nรฆsten alle platforme som f.eks. Windows, OS X, OS/2 osv. Ordet Apache er taget fra navnet pรฅ den indianerstamme 'Apache', berรธmt for sine fรฆrdigheder inden for krigsfรธrelse og strategifremstilling.
Det er en modulรฆr, procesbaseret webserverapplikation, der skaber en ny trรฅd med hver samtidig forbindelse. Den understรธtter en rรฆkke funktioner; mange af dem er kompileret som separate moduler og udvider dens kernefunktionalitet og kan levere alt fra serversideunderstรธttelse af programmeringssprog til autentificeringsmekanisme. Virtuel hosting er en sรฅdan funktion, der gรธr det muligt for en enkelt Apache-webserver at betjene en rรฆkke forskellige websteder.
Sรฅdan installeres Apache
Der er adskillige mรฅder at installere pakken eller programmet pรฅ. Der er optaget nedenfor -
- En af funktionerne i denne รฅbne kildewebapplikation er, at enhver kan lave installationsprogram i henhold til deres eget miljรธ. Dette har gjort det muligt for forskellige leverandรธrer som Debian, Red Hat, FreeBSD, Suse osv. at tilpasse filplaceringen og konfigurationen af โโapache under hensyntagen til andre installerede applikationer og basis OS.
- Udover at installere det fra en leverandรธrbaseret installatรธr, er der altid mulighed for at bygge og installere det fra kildekoden. Installation af Apache fra kildefilen er en platformsuafhรฆngig og fungerer for alle OS.
Apache-webserveren er en modulรฆr applikation, hvor administratoren kan vรฆlge den nรธdvendige funktionalitet og installere forskellige moduler efter hans/hendes behov.
Alle moduler kan sammensรฆttes som en Dynamiske delte objekter (DSO er en objektfil, der kan deles af flere apps, mens de kรธrer), som eksisterer separat fra apache-hovedfilen. DSO-tilgangen anbefales stรฆrkt, den gรธr opgaven med at tilfรธje/fjerne/opdatere moduler fra serverens konfiguration meget enkel.
Installer Apache:Linux Platform
Pรฅ Red Hat eller rpm baserede systemer
Hvis du bruger en rpm (RedHat Package Manager er et vรฆrktรธj til at installere applikationer pรฅ Linux-systemer) baseret Linux-distribution, dvs. Red Hat, Fedora, CentOs, Suse, kan du installere denne applikation enten ved leverandรธrspecifik Package Manager eller direkte at bygge rpm-filen fra den tilgรฆngelige kilde tarball.
Du kan installere Apache via standard Package Manager tilgรฆngelig pรฅ alle Red Hat-baserede distributioner som CentOs, Red Hat og Fedora.
[root@amsterdam ~]# yum install httpd
Apache-kildens tarball kunne konverteres til en rpm-fil ved hjรฆlp af fรธlgende kommando.
[root@amsterdam ~]# rpmbuild -tb httpd-2.4.x.tar.bz2
Det er obligatorisk at have -devel-pakken installeret pรฅ din server for at oprette .rpm-fil fra kilden.
Nรฅr du har konverteret kildefilen til et rpm-installationsprogram, kan du bruge fรธlgende kommando til at installere Apache.
[root@amsterdam ~]# rpm โivh httpd-2.4.4-3.1.x86_64.rpm
Efter installationen starter serveren ikke automatisk, for at starte tjenesten skal du bruge en af โโ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 Source
Installation af apache fra kilden krรฆver, at โdevel-pakken er installeret pรฅ din server. .Du kan finde den seneste tilgรฆngelige version af Apache, du kan downloade den link. . Nรฅr du har downloadet kildefilen, skal du flytte 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 at se alle tilgรฆngelige konfigurationsmuligheder for Apache, kan du bruge ./configure โhelp-indstillingen. Den mest almindelige konfigurationsmulighed 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
Ovenstรฅende eksempel viser kompileringen af โโApache i mappen /usr/local/apache med DSO-kapaciteten. Muligheden โenable-so kan indlรฆse nรธdvendige moduler til apache under kรธrsel via DSO-mekanismen i stedet for at krรฆve en genkompilering.
Nรฅr installationen er fuldfรธrt, kan du gennemse webserverens standardside med din yndlingsbrowser. Hvis firewall er aktiveret pรฅ din server, skal du vรฆre nรธdt til at gรธre undtagelse for port 80 pรฅ din OS firewall. Du kan bruge fรธlgende kommando til at รฅbne port 80.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables gemme
Du kan se standarden Apache2 velkomstskรฆrm ved at gennemse din server IP-adresse.
Hvad er Virtual Host?
En Apache-webserver kan vรฆre vรฆrt for flere websteder pรฅ SAMME server. Du behรธver ikke separat servermaskine og apache-software til hver hjemmeside. Dette kan opnรฅs ved hjรฆlp af konceptet Virtual Host or VHost.
Ethvert domรฆne, som du vil hoste pรฅ din webserver, vil have en separat indgang i apache-konfigurationsfilen.
Typer af Apache Virtualhost
- Navnebaseret virtuel vรฆrt
- Adressebaseret eller IP-baseret virtuel vรฆrt og.
Navnebaseret virtuel vรฆrt
Navnebaseret virtuel hosting bruges til at hoste flere virtuelle websteder pรฅ en enkelt IP-adresse.
For at konfigurere navnebaseret virtuel hosting skal du indstille den IP-adresse, som du vil modtage Apache-anmodningerne pรฅ for alle de รธnskede websteder. Du kan gรธre dette ved NameVirutalHost-direktivet i apache-konfigurationen, dvs httpd.conf/apache2.conf fil.
Eksempel pรฅ Apache virtuel vรฆrt:
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 tilfรธje lige sรฅ mange virtuelle vรฆrter, som du รธnsker. Du kan tjekke dine webkonfigurationsfiler med:
[root@amsterdam ~]#httpd โt Syntax OK
Hvis konfigurationsfilen har en forkert syntaks, vil den give en fejl
[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-baseret virtuel vรฆrt
For at opsรฆtte IP-baseret virtuel hosting skal du have mere end รฉn IP-adresse konfigureret pรฅ din server. Sรฅ antallet af vhost-apache vil afhรฆnge af antallet af IP-adresser, der er konfigureret pรฅ din server. Hvis din server har 10 IP-adresser, kan du oprette 10 IP-baserede virtuelle vรฆrter.
I ovenstรฅende diagram blev to websteder example1.com og example2.com tildelt forskellige IP'er og bruger IP-baseret virtuel 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>
Hvad Apache skal bruge for at kรธre Php-fil?
Det er nรธdvendigt at kรธre Php-filer pรฅ Apache mod_php aktiveret pรฅ din server. Det giver Apache mulighed for at fortolke .Php-filer. Det har Php-handlere, der fortolker Php-koden i apache og sender HTML til din webserver.
Hvis mod_php er aktiveret pรฅ din server, vil du have en fil med navnet php.conf i mappen /etc/httpd/conf.d/. Du kan ogsรฅ tjekke det med:
httpd -M | grep "php5_module"
Outputtet vil ligne:
Php-handlere i Apache
- mod_php
- CGI
- HurtigCGI
- suPHP
mod_phper den รฆldste PHP-handler, den gรธr PHP til en del af apache og kalder ikke nogen ekstern PHP-proces. Dette modul er installeret som standard i ethvert Linux-distributionslager, sรฅ det er meget nemt at aktivere/deaktivere dette modul.
Hvis du bruger HurtigCGI som din PHP-handler kan du indstille flere versioner af PHP til at blive brugt af forskellige konti pรฅ din server.
FastCGI dvs mod_fastcgi er en udvidelse af mod_fcgid, hvor som mod_fcgid er et hรธjtydende alternativ til CGI, dvs. mod_cgi. Det starter et tilstrรฆkkeligt antal forekomster af CGI til at hรฅndtere samtidige webanmodninger. Det bruger ogsรฅ suexec til at understรธtte forskellige brugere med deres egne forekomster af PHP og forbedrer websikkerheden.
Kรธrsel af ruby-filer pรฅ Apache krรฆver, at mod_ruby er aktiveret. Apache kan ogsรฅ hรฅndtere rubinfiler gennem FastCGI. Det er muligt at bruge flere versioner af ruby โโved hjรฆlp af mod_fcgid, dvs. FastCGI.
Du kan ogsรฅ installere apache-passager og konfigurere Apache til at bruge den til at betjene rubinsider.
(Phusion Passenger ogsรฅ kendt som "passagerโ er et gratis webservermodul, der er designet til at integrere med Apache og Nginx)
Trin til at installere mod_ruby pรฅ din server โ
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
Sรฅdan kรธrer du Ruby med Apache
Vi skal tilfรธje mod_ruby-modulet til Apache-konfigurationen, dvs. /etc/httpd/conf.d/ruby.conf og tilfรธje fรธlgende linje.
LoadModule ruby_module modules/mod_ruby.so
Hvis du vil aktivere eller deaktivere disse moduler, skal du redigere apache-konfigurationsfilen og kommentere eller fjerne kommentarer til disse moduler, hvis webserveren allerede er kompileret med disse moduler.
Sรฅdan sikrer du Apache Web Server
Det er meget vigtigt at sikre din webserver, det betyder, at du kun giver andre mulighed for at se den tilsigtede information og beskytte dine data og begrรฆnse adgangen.
Disse er almindelige ting, der forbedrer din Apache-webservers sikkerhed.
1) Skjul Apache-version og OS-oplysninger:
Apache viser sin version og navnet pรฅ operativsystemet i fejl som vist pรฅ skรฆrmbilledet nedenfor.
En hacker kan bruge disse oplysninger til at starte et angreb ved hjรฆlp af de offentligt tilgรฆngelige sรฅrbarheder i den bestemte version af serveren eller operativsystemet.
For at forhindre Apache-webserveren i at vise disse oplysninger, er vi nรธdt til at รฆndre
"serversignatur" mulighed tilgรฆngelig i apache-konfigurationsfilen. Som standard er den "til", vi skal slรฅ den "fra".
vim /etc/httpd/conf/httpd.conf
ServerSignature Off ServerTokens Prod
Vi har ogsรฅ indstillet "ServerTokens Prod", der fortรฆller webserveren kun at returnere apache og undertrykke OS hoved- og mindreversionen
Efter at have รฆndret konfigurationsfilen, skal du genstarte/genindlรฆse din apache-webserver for at gรธre den effektiv.
service httpd restart
2) Deaktiver Directory Listing
Hvis dit dokumentrodbibliotek ikke har en indeksfil, vil din apache-webserver som standard vise alt indholdet af dokumentrodmappen.
Denne funktion kan slรฅs fra for en specifik mappe via "optionsdirektivet", der er tilgรฆngeligt i Apache-konfigurationsfilen.
<Directory /var/www/html>
Options -Indexes
</Directory>
3) Deaktivering af unรธdvendige moduler
Det er god praksis at deaktivere alle unรธdvendige moduler, der ikke er i brug. Du kan se listen over aktiverede moduler, der er tilgรฆngelige i din apache-konfigurationsfil -
[root@amsterdam ~]#httpd โM perl_module (shared) php5_module (shared) proxy_ajp_module (shared) python_module (shared) ssl_module (shared)
Mange af de anfรธrte moduler kan deaktiveres som mod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, da de nรฆsten ikke bruges af nogen produktionswebservere.
vi /etc/httpd/conf/httpd.conf #LoadModule auth_digest_module modules/mod_auth_digest.so
Nรฅr du har kommenteret modulet, skal du gemme filen.
Genstart apache-tjenester med fรธlgende kommando.
/etc/init.d/httpd restart
4) Begrรฆnsning af adgang til filer uden for webrodmappen
Hvis du gerne vil sikre dig, at filer, der er uden for webrodmappen, ikke er tilgรฆngelige, skal du sรธrge for, at mappen er begrรฆnset med "Tillad" og "Afvis mulighed" i din webserverkonfigurationsfil.
<Directory/> Options None AllowOverride None Order deny,allow Deny from all </Directory>
Nรฅr du fรธrst begrรฆnser adgangen uden for web-rod-direktoratet, vil du ikke vรฆre i stand til at fรฅ adgang til nogen fil, der er placeret pรฅ nogen anden mappe pรฅ din webserver, du vil fรฅ 404-returkode.
5) Brug mod_evasive til at afvise DoS-angrebet
Hvis du gerne vil beskytte din webserver mod Dos (dvs. Denial of Service), skal du aktivere modulet mod_evasive. Det er et tredjepartsmodul, der detekterer Dos-angreb og forhindrer angrebet i at gรธre sรฅ meget skade, som det ville gรธre, hvis det lod sig kรธre. Den kunne downloades her.
6) Brug mod_security til at forbedre apache-sikkerheden
Dette modul fungerer som en firewall for Apache og giver dig mulighed for at overvรฅge trafikken i realtid. Det forhindrer ogsรฅ webserveren fra brute force-angreb. Mod_security-modulet kunne installeres med standardpakkehรฅndteringen for din distribution.
7) Begrรฆnsende anmodningsstรธrrelse
Apache har ingen begrรฆnsninger pรฅ den samlede stรธrrelse af http-anmodningen, der kan fรธre til et DoS-angreb. Du kan begrรฆnse anmodningsstรธrrelsen for et Apache-direktiv "LimitRequestBody" med directory-tagget. Vรฆrdien kan indstilles til alt fra 0 til 2 GB (dvs. 2147483647 bytes) efter dit krav.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000 </Directory>
Apache-logformat
Apache-logfiler giver detaljerede oplysninger, der hjรฆlper med at opdage almindelige problemer med serveren.
For at oprette adgangslogfiler skal mod_log_configmodule vรฆre aktiveret.
Tre direktiver tilgรฆngelige i apache-konfigurationsfil, dvs
- TransferLog: Oprettelse af en logfil.
- LogFormat : Angivelse af et brugerdefineret format.
- CustomLog : Oprettelse og formatering af en logfil.
TransferLog-direktivet er tilgรฆngeligt i apache-konfigurationsfilen, og det roterer virtuelle vรฆrtslogfiler i henhold til de indstillede parametre.
<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-logformat
- Fรฆlles logformat
- Kombineret logformat.
Du kan aktivere dem ved at redigere apache-konfigurationsfilen, dvs. filen apache2.conf (Debian/ubuntu) eller httpd.conf (rpm-baserede systemer)
Fรฆlles logformat
LogFormat "%h %l %u %t \"%r\" %>s %b" common CustomLog logs/access_log common
Fรฆlles log genereret af 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
Kombineret logformat
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
CustomLog log/access_log combined
Her,
- %h er fjernvรฆrten
- %l er brugerens identitet bestemt af identd
- %u er brugernavnet bestemt af HTTP-godkendelse
- %t er det tidspunkt, hvor serveren afsluttede behandlingen af โโanmodningen.
- %r er anmodningslinjen fra klienten. ("GET / HTTP/1.0")
- %>s er statuskoden sendt fra serveren til klienten (500, 404 osv.)
- %b er stรธrrelsen af โโsvaret til klienten (i bytes)
- Referer er den side, der linkede til denne URL.
- User-agent er browserens identifikationsstreng.
Kombineret log genereret af 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)"
Custom Log opretter separat logfil for hver Virtual Host pรฅ din server. Det skal angives i den virtuelle vรฆrtssektion af konfigurationsfilen.
Du kan se nedenfor nรฆvnte virtuelle vรฆrtskonfiguration, den genererede log vil blive tilpasset til den virtuelle vรฆrt, og formatet vil blive kombineret.
Konfigurer din allerfรธrste produktionswebserver
1. For at have en kรธrende produktionswebserver skal du bruge en dedikeret node (fysisk/virtuel eller cloud-instans) kรธrer Linux/Unix, Windows, MacOS osv.
2. Webserveren skal have en direkte netvรฆrksforbindelse og en statisk IP-adresse konfigureret pรฅ den.
3. Den skal have alle de moduler krรฆves for at kรธre websider. Hvis en webserver behandler PHP-sider, skal den have PHP-modulet aktiveret.
- Det skal ogsรฅ have et godt Antivirus program, der er konfigureret og kรธrer til at sikre webserveren mod malware- eller virusangreb. Du skal ogsรฅ bruge mekanisme til opdatering den konfigurerede antivirus/anti-malware-applikation pรฅ regelmรฆssig basis uden nogen manuel indgriben for at fรฅ maksimalt udbytte af dem.
- Hvis du har hundredvis af domรฆner, der skal hostes pรฅ din webserver, skal du implementere begrรฆnsninger pรฅ filsystemkvoter for hvert domรฆne, antal databaser hvert domรฆne kan oprette, antal e-mailkonti pr. domรฆne osv.
- Hvis din webserver er sat op til delte hostingtjenester, skal brugere pรฅ din webserver begrรฆnses. En delt hosting-bruger bรธr have mindst brugerrettigheder, sรฅ han ikke beskadiger vigtige filer og รธdelรฆgger hele serveren. Apache giver ikke nogen sรฅdan funktionalitet og har brug for forskellige tredjepartsapplikationer, tilpasning af OS for at opnรฅ dette.
- Hvis du tilfรธjer en nyt domรฆne pรฅ din webserver skal den redigeres i hundredvis af konfigurationsfiler for at aktivere alle funktioner for det tilfรธjede domรฆne.
- Hvis et af de hostede domรฆner krรฆver forskellige PHP-indstillinger end resten af โโdomรฆnerne, er implementeringen af โโdette i Apache-kernewebserveren meget kompleks og krรฆver i hรธj grad tilpasning af din webserver.
- En produktionswebserver har brug for en firewall at blokere uรธnsket trafik, der kan forรฅrsage hรธj belastning pรฅ din server. Implementerer IPTABLE regler med kommandolinje er meget komplekse. Det har brug for ekspertise i det centrale Linux/Unix-miljรธ for at skrive effektive firewall-regler til blokering af uรธnsket trafik. IPTABLE er baseret pรฅ netfiltermodul; det er en firewall pรฅ OS-niveau, der giver en administrator mulighed for at oprette regler for indgรฅende/udgรฅende trafik pรฅ serveren.
- En produktionswebserver krรฆver flere forskellige applikationer som f.eks E-mail, FTP til fil upload, Domain Name System for parkerede domรฆner. Hรฅndtering af alle disse applikationer pรฅ et kerne Linux/Unix-system krรฆver ekspertise inden for de respektive teknologier.
Sรฅ man kan sige, at styring af en webserver for flere domรฆner er en meget kompleks opgave og krรฆver redigering af hundredvis af konfigurationsfiler, der tilpasser hver applikation til at opfylde det รธnskede resultat. Fejlfinding af enhver fejlkonfiguration vil vรฆre meget vanskelig for begyndere.
Lรธsningen ved hjรฆlp af Cpanel eller lignende software
Cpanel giver en grafisk mรฅde at administrere din webserver pรฅ. Det er beregnet til at levere massehostingtjenester, der er nemme at bruge og konfigurere. cPanel har reduceret de tekniske barrierer for adgang til hosting og webserverstyring. Det gรธr komplekse opgaver lettere, det giver mange nyttige og brugervenlige webgrรฆnseflader, der udfรธrer almindelige systemadministrationsopgaver, der krรฆves for at drive en webserver.
cPanel kompilerer sin egen version af software.
Hvis du skal rekompilere din webserver, dvs. apache pรฅ normal Linux platform, skal du manuelt vรฆlge/sรธge det modul, der er pรฅkrรฆvet. cPanel giver Easyapache-funktionalitet, der er en script-baseret webserver-kompileringsmetode.
Det giver dig ikke kun webtjenester, men ogsรฅ Mail, DNS, FTP og mange flere tjenester, der krรฆves til din webapplikation.
En opgave, der krรฆver ekspertise om kerne Linux/Unix-baseret hosting som installation af SSL'er, genkompilering af Apache med forskellige PHP-moduler, opdatering af websikkerhed, konfiguration af effektive IPTABLE-regler, tilfรธjelse af ftp-brugere, oprettelse af mailkonti for hvert domรฆne, scanning af din dokumentrod med antivirus og oprettelse af databaser er let at fuldfรธre med cPanel.
Det giver en masse scripts, der lรธser, installerer og fejlfinder almindelige administrative opgaver.
Det giver en sikkerhedskopierings- og gendannelsesfunktionalitet, der eliminerer behovet for manuelt at kopiere filer til backuplager. Hvis du sikkerhedskopierer dit domรฆne, vil cPanel oprette en tar-fil, der vil indeholde dokumentets rodmappe, e-mail-konti og mails, ftp-konti, databaser, DNS-poster og andre applikationer.
Det giver ogsรฅ en robust dokumentation og har et meget stort fรฆllesskab af brugere, hvor du kan diskutere og fรฅ en lรธsning pรฅ dine problemer.
Sรฅ det kan man sige cPanel er den bedste applikation til at administrere din webserver med nรธdvendige funktioner. Det giver dig en brugervenlig grรฆnseflade til at administrere dit domรฆne og en mekanisme til at undgรฅ kompleksitet i at administrere kernewebserveren.
Der er mange konkurrerende produkter til cPanel som Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel osv.

















