Apache Tutorials for begyndere
Hvad er Apache?
Apache er et bemærkelsesværdigt stykke applikationsprogram. Det er den mest anvendte Internetserverapplikation i verden med mere end 50% andel på det kommercielle internetservermarked. Apache er den mest anvendte serverapplikation i unikke operativsystemer, men kan bruges på næsten alle platforme som f.eks. Ordet, Apache, er taget fra navnet på den indianske stamme ‘Apache’, berømt for sine færdigheder inden for krigsførelse og strategifremstilling.
det er et modulopbygget, procesbaseret internetserverprogram, der opretter en ny tråd med hver samtidig forbindelse. Det understøtter en række funktioner; Mange af dem er udarbejdet som separate moduler og udvide sin kerne funktionalitet, og kan give alt fra server side programmeringssprog støtte til godkendelse mekanisme. Virtuel hosting er en sådan funktion, der gør det muligt for en enkelt Apache-Server at betjene en række forskellige hjemmesider.
Sådan installeres Apache
der er mange måder at installere pakken eller applikationen på. Der er tilmeldt nedenfor-
- et af funktionerne i denne open source-applikation er, at enhver kan lave installationsprogram i henhold til deres eget miljø. Dette har tilladt forskellige leverandører som Debian, Red Hat, FreeBSD, Suse osv. for at tilpasse filplaceringen og konfigurationen af apache under hensyntagen til andre installerede applikationer og base OS.
- bortset fra at installere det fra et leverandørbaseret installationsprogram, er der altid mulighed for at bygge og installere det fra kildekoden. Installation af Apache fra kildefilen er en platform uafhængig & virker for alle OS.apache-serveren er et modulopbygget program, hvor administratoren kan vælge den ønskede funktionalitet og installere forskellige moduler i henhold til hans/hendes krav.
alle moduler kan kompileres som en dynamisk delt objekter (DSO er en objektfil, der kan deles af flere apps, mens de udføres), der findes separat fra apache-hovedfilen. DSO-tilgangen anbefales stærkt, det gør opgaven med at tilføje/fjerne/Opdatere moduler fra serverkonfigurationen meget enkel.
installer Apache: Linieplatform
på Red Hat eller rpm-baserede systemer
Hvis du bruger en rpm (RedHat Package Manager er et værktøj til installation af applikation på Liniesystemer) baseret liniedistribution dvs. Red Hat, Fedora, CentOs, Suse, kan du installere dette program ved enten leverandør specifik pakke Manager eller direkte opbygge rpm fil 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.
# yum install httpd
apache source tarball kunne konverteres til en rpm-fil ved hjælp af følgende kommando.
# rpmbuild -tb httpd-2.4.x.tar.bz2
det er obligatorisk at have-devel-pakken installeret på din server til oprettelse .rpm-fil fra kilde.
når du har konverteret kildefilen til et rpm-installationsprogram, kan du bruge følgende kommando til at installere Apache.
# 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.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
installer Apache fra kilde
installation af apache fra kilden kræver, at –devel-pakken installeres på din server. .Du kan finde den nyeste tilgængelige version af Apache, du kan hente den her . Når du henter kildefilen flytte 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 at se alle konfigurationsmuligheder, der er tilgængelige for Apache, kan du bruge ./ Konfigurer-hjælp mulighed. Den mest almindelige konfigurationsmulighed er-præfiks={install directory name}.
./configure --help./configure –prefix=/usr/local/apache –enable-so make make install
ovenstående eksempel viser kompilering af Apache i /usr/local/apache-mappen med DSO-funktionen. Indstillingen-enable-so kan indlæse krævede moduler til apache på kørselstid via DSO-mekanismen i stedet for at kræve en genkompilering.
Når installationen er færdig, kan du gennemse serverens standardside med din foretrukne bro.ser. Hvis du er aktiveret på din server, skal du gøre en undtagelse for port 80 på dit operativsystem. Du kan bruge følgende kommando til at åbne port 80.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
service iptables Gem
Du kan se Standard Apache2 velkomstskærmen ved at gennemse din server IP-adresse.
Hvad er virtuel vært?
en Apache-server kan være vært for flere hjemmesider på den samme server. Du behøver ikke separat server maskine og apache program for hver hjemmeside. Dette kan opnås ved hjælp af begrebet virtuel vært eller VHost.
ethvert domæne, du vil være vært for på din internetserver, vil have en separat post 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 være vært for flere virtuelle sider på en enkelt IP-adresse.
for at konfigurere navn baseret virtuel hosting, skal du indstille IP-adressen, som du vil modtage Apache anmodninger om alle de ønskede hjemmesider. Du kan gøre dette ved NameVirutalHost direktiv inden for apache konfiguration dvs httpd.conf / apache2.conf fil.
Apache virtuelle vært eksempel:
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 tilføje så mange virtuelle værter, som pr dine krav.
#httpd –tSyntax OK
Hvis konfigurationsfilen har en forkert syntaks, vil den kaste en fejl
# 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-baseret virtuel vært
for at opsætte IP-baseret virtuel hosting skal du have mere end en IP-adresse konfigureret på din server. Så antallet af vhost apache afhænger afantal IP-adresse konfigureret på din server. Hvis din server har 10 IP-adresser, kan du oprette 10 IP-baserede virtuelle værter.
i ovenstående diagram to hjemmesider example1.com og example2.com blev tildelt forskellige IP ‘ er og bruger IP-baseret virtuel 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>
hvad Apache skal køre Php-fil?
kørsel af Php-filer på Apache har brug for 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 internetserver.
hvis mod_php er aktiveret på din server, har du en fil med navnet php.conf i / etc / httpd / conf.d / vejviser. Du kan også tjekke det med:
httpd -M | grep "php5_module"
udgangen vil svare til:
Php handlere i Apache
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpis den ældste PHP handler, det gør PHP del af Apache og kalder ikke nogen ekstern PHP proces. Dette modul er som standard installeret i alle distributionslager, så det er meget nemt at aktivere/deaktivere dette modul.
Hvis du bruger FastCGI 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 as mod_fcgid er et højtydende alternativ til CGI dvs .mod_cgi. Det starter tilstrækkeligt antal forekomster af CGI til at håndtere samtidige internetanmodninger. Det bruger også
til at støtte forskellige brugere med deres egne forekomster af PHP og forbedrer internetsikkerheden. kørsel af ruby-filer på Apache skal mod_ruby aktiveres. Apache kan også håndtere ruby filer gennem FastCGI. Det er muligt at bruge flere version af ruby ved hjælp af mod_fcgid dvs FastCGI.
Du kan også installere apache passenger og konfigurere Apache til at bruge den til servering af ruby pages.
(Phusion Passenger også kendt som “passenger” er et gratis servermodul, der er designet til at integrere med Apache og Ngink)
trin til installation af mod_ruby på din server –
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
Sådan køres Ruby med Apache
Vi er nødt til at tilføje mod_ruby-modulet til Apache-konfigurationen, dvs. / etc / httpd/conf.d / ruby.conf og tilføj følgende linje.
LoadModule ruby_module moduler / mod_ruby.så
Hvis du vil aktivere eller deaktivere disse moduler, skal du redigere apache-konfigurationsfilen og kommentere eller fjerne disse moduler, hvis internetserveren allerede er kompileret med disse moduler.
Sådan sikres Apache internetserver
sikring af din internetserver er meget vigtigt, det betyder, at andre kun kan se de tilsigtede oplysninger& beskyttelse af dine data og begrænsning af adgang.
Dette er almindelige ting, der forbedrer dine Apache-serverers sikkerhed.
1) Skjul Apache version og OS information:
Apache viser sin version og navnet på operativsystemet i fejl som vist i nedenstående skærmbillede.
en hacker kan bruge disse oplysninger til at starte et angreb ved hjælp af de offentligt tilgængelige sårbarheder i den særlige version af serveren eller OS.
for at forhindre Apache fra at vise disse oplysninger, skal vi ændre
“server signatur” mulighed tilgængelig i apache konfigurationsfilen. Som standard er det” on”, vi skal indstille det”off”.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
Vi har også indstillet “ServerTokens Prod”, der fortæller internetserveren at returnere kun apache og undertrykke os major og minor version
Når du har ændret konfigurationsfilen, skal du genstarte/genindlæse din apache-server for at gøre den effektiv.
service httpd restart
2) Deaktiver Mappeliste
Hvis dit dokuments rodmappe ikke har en indeksfil, vil din apache-server som standard vise alt indholdet af dokumentets rodmappe.
denne funktion kan slukkes for en bestemt mappe gennem “options directive” tilgængelig 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 en liste over aktiveret modul, der er tilgængeligt i din Apache – konfigurationsfil –
#httpd –Mperl_module (shared)php5_module (shared)proxy_ajp_module (shared)python_module (shared)ssl_module (shared)
mange af de anførte moduler kan deaktiveres sommod_imap, mod_include, mod_info, mod_userdir, mod_autoindeks, da de næppe bruges af nogen produktionsservere.
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 adgangen til filer uden for rodmappen
Hvis du vil sikre dig, at Filer uden for rodmappen ikke er tilgængelige, skal du sørge for, at mappen er begrænset med “Tillad” og “Afvis valgmulighed” i din serverkonfigurationsfil.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
Når du begrænser adgang uden for internetrod directoy, vil du ikke kunne få adgang til nogen fil placeret på en anden mappe på din internetserver, får du 404 returkode.
5) Brug af mod_evasive til at modbevise dos-angrebet
Hvis du gerne vil beskytte din internetserver mod Dos (dvs.lammelsesangreb), skal du aktivere modulet mod_evasive. Det er et tredjepartsmodul, der registrerer DoS-angreb og forhindrer angrebet i at gøre så meget skade, som det ville gøre, hvis det blev tilbage for at køre. Det kunne hentes her.
Hent ovenstående fil
6) Brug af mod_security til at forbedre apache-sikkerheden
Dette modul fungerer som en brandvæg til Apache og giver dig mulighed for at overvåge trafikken i realtid. Det forhindrer også internetserveren fra brute force angreb. Mod_security-modulet kan installeres med standardpakkeadministratoren for din distribution.
7) begrænsning af anmodningsstørrelse
Apache har ingen begrænsning på den samlede størrelse af http-anmodningen, der kan føre til et DoS-angreb. Du kan begrænse anmodningsstørrelsen på et Apache-direktiv “Limit Recommestbody” med katalogmærket. Værdien kan indstilles alt fra 0 til 2 GB (dvs.2147483647 bytes) som pr dine krav.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
Apache Log Format
Apache logs 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, der er tilgængelige i apache config-fil, 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 indstillede parametre.
<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-logformat
- fælles logformat
- kombineret logformat.
Du kan aktivere dem ved at redigere apache-konfigurationsfilen, dvs.apache2.Conf (Debian / ubuntu) eller httpd.conf (rpm based systems) file
Common Log Format
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
Common Log genereret af Apache
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\"" combinedCustomLog 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 er færdig med at behandle 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 på svaret til klienten (i bytes)
- Refereren er den side, der linkede til denne URL.
- User-agent er en brugeridentifikationsstreng.
kombineret Log genereret af 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)"
brugerdefineret Log opretter separat logfil for hver virtuel vært på din server. Det skal specificeres i sektionen virtuel vært i konfigurationsfilen.
Du kan se nedenstående virtuelle værtskonfiguration, genereret log vil være tilpasset den virtuelle vært, og formatet kombineres.
Konfigurer din allerførste Produktionssnit
1. For at have en kørende produktionsserver har du brug for en dedikeret node (fysisk/virtuel eller cloud-forekomst), der kører.
2. Internetserveren skal have en direkte netværksforbindelse og en staticIP-adresse konfigureret på den.
3. Det skal have alle de moduler, der kræves for at køre hjemmesider. Hvis en server behandler PHP-sider, skal den have PHP-modul aktiveret.
- det skal også have et godt antivirusprogram konfigureret og kører for at sikre internetserveren fra ondsindede eller virusangreb. Du har også brug for mekanisme til at opdatere den konfigurerede antivirus/anti-program på regelmæssig basis uden manuel indgriben for at få maksimalt udbytte af dem.
- hvis du har hundredvis af domæner, der skal hostes på din internetserver, skal du implementere begrænsninger på filsystemkvote for hvert domæne, antal databaser, som hvert domæne kan oprette, antal e-mail-konti pr.domæne osv.
- hvis din internetserver er blevet konfigureret til delte hostingtjenester, skal brugere på din internetserver begrænses. En delt hosting bruger skal have mindst bruger privilegium, så han ikke beskadiger vigtige filer & bryde hele serveren. Apache giver ikke nogen sådan funktionalitet og har brug for forskellige tredjeparts applikationer, tilpasning af OS for at opnå dette.
- hvis du tilføjer et nyt domæne på din internetserver, skal det redigere hundredvis af konfigurationsfiler for at aktivere alle funktioner for det tilføjede domæne.
- hvis et af de hostede domæner kræver en anden PHP-indstilling end resten af domænerne, er implementeringen af dette i core Apache-serveren meget kompleks og kræver i høj grad tilpasning af din internetserver.
- en produktionsserver har brug for en brandvæg for at blokere uønsket trafik, der kan forårsage høj belastning på din server. Implementering af IPTABLE regler med kommandolinje er meget kompleks. Det har brug for ekspertise inden for kernemiljø for at skrive effektive brandvægsregler til blokering af uønsket trafik. IPTABLE er baseret på netfilter modul; Det er et OS-niveau brandvæg, der giver en administrator mulighed for at oprette regler for indgående/udgående trafik på serveren.
- en produktionsserver kræver flere forskellige applikationer som e-mail, FTP til filoverførsel, domænenavnssystem til parkerede domæner. Håndtering af alle disse applikationer på et kernesystem kræver ekspertise inden for de respektive teknologier.
så man kan sige, at styring af en internetserver til flere domæner er meget kompleks opgave og kræver redigering af hundredvis af konfigurationsfiler, der tilpasser hver applikation til at opfylde det ønskede resultat. Fejlfinding af enhver miss-konfiguration vil være meget vanskelig for begyndere.
løsningen ved hjælp af Cpanel eller lignende program
Cpanel giver en grafisk måde at administrere din internetserver på. Det er beregnet til at levere massehostingtjenester, der er nemme at bruge og konfigurere. cPanel har reduceret de tekniske hindringer for adgang til hosting og serverstyring. Det gør kompleks opgave lettere, det giver mange nyttige og nemme at bruge internetgrænseflader, der udfører fælles systemadministrationsopgaver, der kræves for at drive en internetserver.
cPanel kompilerer sin egen version af programmet.
Hvis du skal kompilere din server igen, dvs. apache på normal platform skal du manuelt vælge / søge i det modul, der kræves. cPanel giver Easyapache funktionalitet, der er et script baseret server kompilering metode.
det giver dig ikke kun internettjenester, men også Mail, DNS, FTP og mange flere tjenester, der kræves til din internetapplikation.
en opgave, der har brug for ekspertise inden for grundlæggende hosting som installation af SSL ‘ er, genkompilering af Apache med forskellige PHP-moduler, opdatering af internetsikkerhed, 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 gennemføre med cPanel.
det giver en masse scripts, der løser, installere og fejlfinding fælles administrative opgaver.
det giver en backup og gendannelse funktionalitet eliminerer behovet for manuelt at kopiere filer til backup opbevaring. Hvis du sikkerhedskopierer dit domæne, opretter cPanel en tar-fil, der indeholder dokumentrodmappe, e-mail-konti og mails, ftp-konti, databaser, DNS-poster og andre applikationer.
det giver også en robust dokumentation oghar et meget stort fællesskab af brugere, hvor du kan diskutere og få løsning på dine problemer.
så man kan sige, at cPanel er en bedste applikation til styring af din internetserver med nødvendige funktioner. Det giver dig, nem at bruge interface til styring af dit domæne og en mekanisme til at undgå kompleksiteten af forvaltningen kerne Server.
der er mange konkurrerende produkter til cPanel som Plesk, ISPConfig, Ajenti, Klokso, Open Panel, panel osv.