Apache Tutorials for Nybegynnere
Hva Er Apache?
Apache Er et bemerkelsesverdig stykke programvare. Det er den mest brukte Webserverapplikasjonen i verden med mer enn 50% andel i det kommersielle webservermarkedet. Apache er Den mest brukte Webserverapplikasjonen I Unix – lignende operativsystemer, men kan brukes på nesten alle plattformer som Windows, OS X, OS/2, etc. Ordet, Apache, har blitt tatt fra navnet På Den Indianske stammen ‘Apache’, kjent for sine ferdigheter i krigføring og strategiutvikling.
Det er en modulær, prosessbasert web server applikasjon som skaper en ny tråd med hver samtidig tilkobling. Den støtter en rekke funksjoner; mange av dem er samlet som separate moduler og utvide sin kjernefunksjonalitet, og kan gi alt fra server side programmeringsspråk støtte til autentiseringsmekanisme. Virtuell hosting er en slik funksjon som gjør at En Enkelt Apache Webserver kan betjene en rekke forskjellige nettsteder.
Hvordan Installere Apache
det finnes mange måter å installere pakken eller programmet på. Det er vervet nedenfor –
- en av funksjonene i denne åpen kildekode web-applikasjon er at alle kan gjøre installatør som per sitt eget miljø. Dette har tillatt ulike leverandører Som Debian, Red Hat, FreeBSD, Suse etc. for å tilpasse filplassering og konfigurasjon av apache tar hensyn til andre installerte programmer OG base OS.Bortsett fra å installere det fra en leverandør basert installatør, er det alltid mulighet for å bygge og installere det fra kildekoden. Installere Apache fra kildefilen er en plattform uavhengig& fungerer for ALLE OS.
apache web server er et modulbasert program der administratoren kan velge den nødvendige funksjonalitet og installere ulike moduler som per hans/hennes krav. Alle moduler kan kompileres Som Dynamiske Delte Objekter (DSO er en objektfil som kan deles av flere apper mens de kjører) som eksisterer separat fra hoved apache-filen. DSO-tilnærmingen anbefales sterkt, 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 rpm (RedHat Package Manager er et verktøy for å installere programmet På Linux-systemer) basert Linux-distribusjon dvs. Red Hat, Fedora, CentOs, Suse, kan du installere dette programmet ved enten leverandør bestemt Pakkebehandling eller direkte bygge rpm filen fra tilgjengelig kilde tarball.
Du kan installere Apache via standard Pakkebehandling tilgjengelig på Alle Red Hat – baserte distribusjoner som CentOs, Red Hat og Fedora.
# yum install httpd
apache-kilden tarball kan konverteres til en rpm-fil ved hjelp av følgende kommando.
# rpmbuild -tb httpd-2.4.x.tar.bz2
det er obligatorisk å ha-devel-pakken installert på serveren din for å lage .rpm-fil fra kilde.
når du konverterer kildefilen til et rpm-installasjonsprogram, kan du bruke følgende kommando for å installere Apache.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
etter installasjonen starter serveren ikke automatisk, for å starte tjenesten må du bruke en av følgende kommandoer På Fedora,CentOs eller Red Hat.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
Installer Apache fra Kilde
Installere apache fra kilden krever at-devel-pakken installeres på serveren din. .Du finner den nyeste tilgjengelige versjonen Av Apache, du kan laste den ned her . Når du laster ned kildefilen, flytter du den til mappen /usr/local/src.
cd /usr/local/src gzip -d httpd-2.2.26.tar.gz tar xvf httpd-2.2.26.tar httpd-2.2.26
for å se alle konfigurasjonsalternativene som er tilgjengelige For Apache, kan du bruke ./ konfigurer-hjelp alternativ. Det vanligste konfigurasjonsalternativet er-prefix={install directory name}.
./configure --help./configure –prefix=/usr/local/apache –enable-so make make install
eksemplet ovenfor viser kompilering Av Apache i/usr/local / apache-katalogen med DSO-funksjonen. Alternativet-enable-so kan laste nødvendige moduler til apache under kjøring via DSO-mekanismen i stedet for å kreve en rekompilering.
når installasjonen er fullført, kan du bla gjennom webservere standard side med din favoritt nettleser. 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 INPUT -p tcp --dport 80 -j ACCEPT
service iptables save
du kan se Standard Apache2 Velkomstskjerm ved å bla gjennom serverens IP-adresse.
Hva Er Virtuell Vert?
En Apache webserver kan være vert for flere nettsteder på SAMME server. Du trenger ikke separat servermaskin og apache-programvare for hvert nettsted. Dette kan oppnås ved hjelp av Begrepet Virtual Host eller VHost.
ethvert domene som du vil være vert for på webserveren din, vil ha en egen oppføring i apache-konfigurasjonsfilen.
Typer Apache Virtualhost
- 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 navn basert virtuell hosting, må du angi IP-adressen som Du skal motta Apache forespørsler om alle de ønskede nettsteder. Du kan gjøre dette Ved Navnvirutalhost-direktivet i apache-konfigurasjonen, dvs. httpd.conf / apache2.conf-fil.
Eksempel På Apache virtuell vert:
NameVirtualHost *:80<VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example1.com ServerName www.example1.com</VirtualHost><VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example2.comServerName www.example2.com</VirtualHost>
Du kan legge til så mange virtuelle verter, som per kravet ditt. Du kan sjekke webkonfigurasjonsfilene dine med:
#httpd –tSyntax OK
hvis konfigurasjonsfilen har noe feil syntaks, vil den kaste en feil
# httpd -tSyntax 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 EN IP-adresse konfigurert på serveren din. Så, antall vhost apache vil avhenge avantall IP-adresse konfigurert på serveren din. Hvis serveren din har 10 IP-adresser, kan du opprette 10 IP-baserte virtuelle verter.
i diagrammet ovenfor to nettsteder example1.com og example2.com ble tildelt ulike Ip-Adresser og bruker IP-basert virtuell hosting.
Listen 192.168.0.100:80<VirtualHost 192.168.10.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example1.com ServerName www.example1.com</VirtualHost><VirtualHost 192.168.10.109:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example2.comServerName www.example2.com</VirtualHost>
Hva Apache trenger For Å Kjøre Php-Fil?
Kjører Php-filer På Apache trenger mod_php aktivert på serveren din. Det tillater Apache å tolke .Php-filer. Den har Php handlers som tolker Php-koden i apache og sende HTML til webserveren.
hvis mod_php er aktivert på serveren din, vil du ha en fil som heter php.conf i/etc / httpd / conf.d / katalog. Du kan også sjekke det med:
httpd -M | grep "php5_module"
utgangen vil være lik:
php handlers I Apache
- mod_php
- Cgi
- FastCGI
- suPHP
mod_phpis den eldste php handler, gjør det php del av apache og ikke kalle 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 PHP-behandler, kan du angi at FLERE VERSJONER AV PHP skal brukes av forskjellige kontoer på serveren din. Mod_fastcgi er en utvidelse av mod_fcgid, der som mod_fcgid er en høy ytelse alternativ TIL CGI dvs. mod_cgi . Det starter tilstrekkelig antall forekomster AV CGI til å håndtere samtidige webforespørsler. Den bruker også suexec å støtte ulike brukere med sine egne forekomster AV PHP og forbedrer web-sikkerhet.
Kjører ruby-filer På Apache trenger mod_ruby å være aktivert. Apache kan også håndtere ruby filer Gjennom FastCGI. Det er mulig å bruke flere versjoner av ruby ved hjelp av mod_fcgid dvs. FastCGI.
du kan også installere apache passenger og konfigurere Apache til å bruke den til å servere ruby-sider.
(Phusion Passenger også kjent som «passasjer»er en gratis webservermodul som er designet for å integrere Med Apache og Nginx )
Trinn for å installere mod_ruby på serveren din –
cd /tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztar zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6/ ./configure.rb --with-apr-includes=/usr/include/apr-1makemake install
slik kjører Du 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.
lastmodule ruby_module moduler / mod_ruby.så
hvis du vil aktivere eller deaktivere disse modulene, må du redigere apache-konfigurasjonsfilen og kommentere eller uncomment disse modulene, hvis webserveren allerede er kompilert med disse modulene.
Slik Sikrer Du Apache Webserver
Sikring av webserveren din er svært viktig, det betyr at andre bare kan se den tiltenkte informasjonen & beskytte dataene dine og begrense tilgangen.
dette er vanlige ting som forbedrer Apache-webservernes sikkerhet.
1) Skjule Apache versjon OG OS informasjon:
Apache viser sin versjon og navnet på operativsystemet i feil som vist i under skjermbilde.
en hacker kan bruke denne informasjonen til å starte et angrep ved hjelp av offentlig tilgjengelige sårbarheter i den aktuelle versjonen av serveren ELLER OS.
For å hindre Apache webserverfromdisplaying denne informasjonen, må vi endre
«server signatur» alternativet tilgjengelig i apache konfigurasjonsfilen. Som standard er den «på», vi må sette den «av».
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
Vi har også satt «ServerTokens Prod» som forteller webserveren å returnere bare apache og undertrykke os store og mindre versjon
etter å ha endret konfigurasjonsfilen, må du starte / laste apache webserveren for å gjøre den effektiv.
service httpd restart
2) Deaktiver Katalogoppføring
hvis rotkatalogen i dokumentet ditt ikke har en indeksfil, vil apache-webserveren som standard vise alt innholdet i rotkatalogen i dokumentet.
denne funksjonen kan være slå av for en bestemt katalog gjennom «alternativer direktiv» tilgjengelig I Apache konfigurasjonsfilen.
<Directory /var/www/html> Options -Indexes</Directory>
3) Deaktivere unødvendige moduler
det er god praksis å deaktivere alle unødvendige moduler som ikke er i bruk. Du kan se liste over aktiverte modul tilgjengelig i apache konfigurasjonsfil –
#httpd –Mperl_module (shared)php5_module (shared)proxy_ajp_module (shared)python_module (shared)ssl_module (shared)
Mange av de oppførte modulene kan deaktiveres likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, som de er knapt brukt av noen produksjon webservere.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
når du kommenterte modulen, lagre filen.
Start apache-tjenester på nytt med følgende kommando.
/etc/init.d/httpd restart
4) Begrense Tilgangen til filer utenfor webrotkatalogen
hvis du vil sørge for 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 webserveren.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
Når du begrenser acess utenfor web root directoy, vil du ikke kunne få tilgang til noen fil som ligger på en annen mappe på webserveren din, du vil få 404 returkode.
5) bruke mod_evasive å tilbakevise DoS angrep
hvis du liker å beskytte din webserver Fra Dos (dvs.Tjenestenekt) må du aktivere modulen mod_evasive. Det er en tredjeparts modul som oppdager Dos angrep og hindrer angrepet fra å gjøre så mye skade som det ville gjøre hvis igjen å kjøre sin gang. Den kan lastes ned her.
Last Ned Filen ovenfor
6) ved hjelp av mod_security for å forbedre apache-sikkerheten
denne modulen fungerer Som en brannmur For Apache og lar deg overvåke trafikken i sanntid. Det forhindrer også webserveren fra brute force angrep. Mod_security-modulen kan installeres med standard pakkebehandling av 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 forespørselsstørrelsen til Et Apache-direktiv «LimitRequestBody» med katalogtaggen. Verdien kan settes alt fra 0 til 2 GB (dvs. 2147483647 bytes) som per kravet ditt.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
Apache Loggformat
Apache logger gir detaljert informasjon som bidrar til å oppdage vanlige problemer med serveren.
for å opprette tilgangslogger må mod_log_configmodule være aktivert.
Tre direktiver tilgjengelig i apache config fil dvs.
- TransferLog: Opprette en loggfil.
- LogFormat: Angi et egendefinert format.
- CustomLog: Opprette og formatere en loggfil.
TransferLog-direktivet er tilgjengelig i apache-konfigurasjonsfilen, og det roterer virtuelle vertsloggfiler i henhold til angitte parametere.
<VirtualHost www.example.com> ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it. 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
- Felles Loggformat
- Kombinert Loggformat.
du kan aktivere dem ved å redigere apache-konfigurasjonsfilen, dvs. apache2.conf (Debian / ubuntu) eller httpd.conf (rpm-baserte systemer) fil
Felles Loggformat
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
Felles Logg generert Av Apache
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\"" combinedCustomLog log/access_log combined
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 ferdig med å behandle forespørselen.
- %r er forespørselslinjen fra klienten. («GET / HTTP/1.0»)
- %>s er statuskoden sendt fra serveren til klienten (500, 404 etc.)
- %b er størrelsen på svaret til klienten (i byte)
- Referer er siden som koblet til DENNE NETTADRESSEN.
- Brukeragent er nettleseridentifikasjonsstrengen.
Kombinert Logg generert Av Apache:
199.187.122.91 - - "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 egen loggfil for Hver Virtuell Vert på serveren din. Det må spesifiseres i den virtuelle vertsdelen av config-filen.
du kan se nedenfor nevnt virtuell vertskonfigurasjon, generert logg vil være tilpasset for den virtuelle verten og formatet vil bli kombinert.
Konfigurer din aller første Produksjon Web Sever
1. For å ha en løpende produksjons webserver, trenger du en dedikert node (Fysisk/Virtuell eller skyforekomst) som kjører Linux / Unix, Windows, MacOS etc.
2. Webserveren må ha en direkte nettverkstilkobling og en staticIP-adresse konfigurert på den.
3. Det må ha alle modulene som kreves for å kjøre nettsider. Hvis en webserver behandler PHP-sider, må DEN HA PHP-modul aktivert.
- Det må også ha en god Antivirus program konfigurert og kjører for å sikre Webserveren Fra Malware Eller Virusangrep. Du må også mekanisme for å oppdatere den konfigurerte antivirus / anti malware program på jevnlig basis uten manuell inngripen for å få maksimalt utbytte av dem.
- hvis du har hundrevis av domener å være vert på webserveren, må du ha for å implementere begrensninger på filsystem kvote for hvert domene, antall databaser hvert domene kan opprette, antall e-postkontoer per domene etc.
- hvis webserveren din er konfigurert for delte hostingtjenester, må brukere på webserveren være begrenset. En delt hosting bruker bør ha minst bruker privilegium slik at han ikke skader viktige filer & bryte hele serveren. Apache gir ingen slik funksjonalitet og trenger forskjellige tredjepartsprogrammer, tilpasning AV OS for å oppnå dette.
- hvis du legger til et nytt domene på webserveren din, må det redigeres hundrevis av konfigurasjonsfiler for å aktivere alle funksjoner for det ekstra domenet.
- hvis et av de vertsbaserte domenene krever en ANNEN PHP-innstilling enn resten av domenene, er implementering av Dette i apache webserver svært komplisert og trenger tilpasning av webserveren din i stor grad.
- en produksjons webserver trenger en brannmur for å blokkere uønsket trafikk som kan føre til høy belastning på serveren din. Implementering AV IPTABLE regler med kommandolinje er svært komplisert. Den trenger kompetanse av kjerne Linux / Unix miljø for å skrive effektive brannmurregler for å blokkere uønsket trafikk. Iptable er basert på netfilter modul; DET ER EN OS-nivå brannmur som gjør det mulig for en administrator å lage regler for innkommende / utgående trafikk på serveren.
- en produksjons webserver krever flere forskjellige programmer som E-Post, FTP for filopplasting, Domenenavn System for parkerte domener. Administrere alle disse programmene på en kjerne Linux/Unix system krever kompetanse på de respektive teknologier.
Så kan man si at å administrere en webserver for flere domener er svært kompleks oppgave og krever redigering hundrevis av konfigurasjonsfil, tilpasse hvert program for å oppfylle ønsket resultat. Feilsøking av enhver miss-konfigurasjon vil være svært vanskelig for nybegynnere.
Løsningen ved Hjelp Av Cpanel eller lignende programvare
cpanel gir en grafisk måte å administrere webserveren på. Det er ment å gi masse hosting-tjenester som er enkle å bruke og konfigurere. cPanel har redusert de tekniske hindringene for oppføring i hosting og webserveradministrasjon. Det gjør komplisert oppgave enklere, det gir mange nyttige og enkle å bruke webgrensesnitt som utfører vanlige systemadministrasjonsoppgaver som kreves for å drive en webserver.
cPanel kompilerer sin egen versjon av programvaren.
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 et skript basert web server kompilering metode.
Det gir deg ikke bare webtjenester, Men Også E-Post, DNS, FTP og mange flere tjenester som kreves for din webapplikasjon.
en oppgave som trenger kompetanse på kjerne Linux / Unix-basert hosting som å installere Ssler, rekompilere 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 en rekke skript som fikser, installere og feilsøke vanlige administrative oppgaver.
Det gir en backup og gjenopprette funksjonalitet eliminerer behovet for å manuelt kopiere filer til backup lagring. 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 programmer.
Det gir også en robust dokumentasjon, andhas et veldig stort fellesskap av brukere der du kan diskutere og få løsning på dine problemer.
Så kan man si at cPanel er et best program for å administrere webserveren din med nødvendige funksjoner. Det gir deg, brukervennlig grensesnitt for å administrere domenet og en mekanisme for å unngå kompleksiteten i å håndtere kjerne Webserver. Det er mange konkurrerende produkter til cPanel som Plesk, Ispconfig, Ajenti, Kloxo, Open Panel, Zpanel etc.