Apache-handledning för nybörjare

Innehållsförteckning

Vad är Apache?

Apache är en anmärkningsvärd applikationsprogramvara. Det är den mest använda webbserverapplikationen i världen med mer än 50% andel på den kommersiella webbservermarknaden. Apache är den mest använda webbserverapplikationen i Unix-liknande operativsystem men kan användas på nästan alla plattformar som Windows, OS X, OS / 2 etc. Ordet Apache har tagits från namnet på Native Amerikansk stam 'Apache', känd för sina kunskaper inom krigföring och strategistyrning.

Det är en modulbaserad, processbaserad webbserverapplikation som skapar en ny tråd med varje samtidig anslutning. Den stöder ett antal funktioner; många av dem är sammanställda som separata moduler och utökar dess kärnfunktionalitet, och kan erbjuda allt från serverns programmeringsspråk till autentiseringsmekanism. Virtuell webbhotell är en sådan funktion som gör att en enda Apache-webbserver kan betjäna ett antal olika webbplatser.

Hur man installerar Apache

Det finns många sätt att installera paketet eller applikationen. Det finns värvade nedan -

  1. En av funktionerna i denna open source webbapplikation är att vem som helst kan göra installationsprogram enligt sin egen miljö. Detta har gjort det möjligt för olika leverantörer som Debian, Red Hat, FreeBSD, Suse etc. att anpassa filplatsen och konfigurationen av apache med hänsyn till andra installerade applikationer och bas OS.
  2. Förutom att installera det från ett leverantörsbaserat installationsprogram finns det alltid möjlighet att bygga och installera det från källkoden. Installera Apache från källfilen är en plattformsoberoende och fungerar för alla operativsystem.

Apache-webbservern är en modulär applikation där administratören kan välja önskad funktionalitet och installera olika moduler enligt hans / hennes krav.

Alla moduler kan sammanställas som dynamiska delade objekt (DSO är en objektfil som kan delas av flera appar medan de körs) som existerar separat från huvud-apache-filen. DSO-metoden rekommenderas starkt, det gör uppgiften att lägga till / ta bort / uppdatera moduler från serverkonfigurationen mycket enkel.

Installera Apache: Linux-plattform

På Red Hat eller rpm-baserade system

Om du använder en rpm (RedHat Package Manager är ett verktyg för att installera applikationer på Linux-system) baserad Linux-distribution, dvs. Red Hat, Fedora, CentOs, Suse, kan du installera den här applikationen av antingen leverantörsspecifik Package Manager eller direkt bygga rpm-filen från den tillgängliga källan tarball.

Du kan installera Apache via standardpakethanteraren som är tillgänglig för alla Red Hat-baserade distributioner som CentOs, Red Hat och Fedora.

[root @ amsterdam ~] # yum install httpd

Apache-källans tarball kan konverteras till en rpm-fil med följande kommando.

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

Det är obligatoriskt att ha -devel-paket installerat på din server för att skapa .rpm-fil från källan.

När du har konverterat källfilen till ett rpm-installationsprogram kan du använda följande kommando för att installera Apache.

[root @ amsterdam ~] # rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

Efter installationen startar inte servern automatiskt, för att starta tjänsten måste du använda något av följande kommando på Fedora, CentOs eller Red Hat.

[root @ amsterdam ~] # / usr / sbin / apachectl start[root @ amsterdam ~] # service httpd start[root @ amsterdam ~] # /etc/init.d/httpd start

Installera Apache från källan

För att installera apache från källan måste -devel-paketet installeras på din server ... Du hittar den senaste tillgängliga versionen av Apache, du kan ladda ner den här. När du har laddat ner källfilen flyttar du den till 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

För att se alla tillgängliga konfigurationsalternativ för Apache kan du använda alternativet ./configure -help. Det vanligaste konfigurationsalternativet är -prefix = {installera katalognamn}.

[root @ amserversterdam ~] ./ konfigurera --hjälp[root @ amserversterdam ~] ./ configure -prefix = / usr / local / apache -enable-so[root @ amserversterdam ~] make[root @ amserversterdam ~] gör installationen

Ovanstående exempel visar sammanställningen av Apache i / usr / local / apache-katalogen med DSO-funktionen. Alternativet -enable-so kan ladda nödvändiga moduler för att apache vid körning via DSO-mekanismen snarare än att kräva en omkompilering.

När installationen är klar kan du bläddra på webbservars standardsidan med din favoritwebbläsare. Om brandväggen är aktiverad på din server måste du göra undantag för port 80 på din OS-brandvägg. Du kan använda följande kommando för att öppna port 80.

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

tjänst iptables spara

Du kan se standardvälkomstskärmen för Apache2 genom att bläddra i serverns IP-adress.

Vad är virtuell värd?

En Apache-webbserver kan vara värd för flera webbplatser på samma server. Du behöver inte separat servermaskin och apache-programvara för varje webbplats. Detta kan uppnås med begreppet Virtual Host eller VHost.

Alla domäner som du vill ha på din webbserver kommer att ha en separat post i apache-konfigurationsfilen.

Typer av Apache Virtualhost

  1. Namnbaserad virtuell värd
  2. Adressbaserad eller IP-baserad virtuell värd och.

Namnbaserad virtuell värd

Namnbaserad virtuell hosting används för att vara värd för flera virtuella webbplatser på en enda IP-adress.

För att konfigurera namnbaserad virtuell hosting måste du ställa in IP-adressen som du ska ta emot Apache-förfrågningarna för alla önskade webbplatser. Du kan göra detta enligt NameVirutalHost-direktivet inom apache-konfigurationen, dvs httpd.conf / apache2.conf-filen.

Apache virtuell värd Exempel:

NameVirtualHost *: 80ServerAdmin Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.DocumentRoot /var/www/html/exempel1.comServernamn www.exempel1.comServerAdmin Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Du kan lägga till så många virtuella värdar, enligt dina krav. Du kan kontrollera dina webbkonfigurationsfiler med:

[root @ amsterdam ~] #httpd -tSyntax OK

Om konfigurationsfilen har någon fel syntax kommer det att orsaka ett fel

[root @ 115 conf.d] # httpd -tSyntaxfel på rad 978 i /etc/httpd/conf/httpd.conf:Ogiltigt kommando '*', kanske felstavat eller definierat av en modul som inte ingår i serverkonfigurationen

IP-baserad virtuell värd

För att konfigurera IP-baserad virtuell hosting behöver du mer än en IP-adress konfigurerad på din server. Så antalet vhost apache beror på antalet IP-adresser som har konfigurerats på din server. Om din server har 10 IP-adresser kan du skapa 10 IP-baserade virtuella värdar.

I ovanstående diagram tilldelades två webbplatser exempel1.com och exempel2.com olika IP-adresser och använder IP-baserad virtuell värd.

Lyssna 192.168.0.100:80ServerAdmin Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.DocumentRoot /var/www/html/exempel1.comServernamn www.exempel1.comServerAdmin Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det. DocumentRoot /var/www/html/example2.com ServerName www.example2.com 

Vad behöver Apache för att köra Php-fil?

Att köra Php-filer på Apache behöver mod_php aktiverat på din server. Det gör det möjligt för Apache att tolka .Php-filer. Det har Php-hanterare som tolkar Php-koden i apache och skickar HTML till din webbserver.

Om mod_php är aktiverat på din server kommer du att ha en fil med namnet php.conf i /etc/httpd/conf.d/ katalog. Du kan också kontrollera det med:

httpd -M | grep "php5_module"

Utgången kommer att likna:

Php-hanterare i Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_php är den äldsta PHP-hanteraren, den gör PHP till en del av apache och kallar ingen extern PHP-process. Den här modulen installeras som standard i varje Linux-distributionsförvar, så det är väldigt enkelt att aktivera / inaktivera den här modulen.

Om du använder FastCGI som din PHP-hanterare kan du ställa in flera versioner av PHP för att användas av olika konton på din server.

FastCGI dvs mod_fastcgi är en förlängning av mod_fcgid , där som mod_fcgid är ett högpresterande alternativ för CGI dvs mod_cgi. Det startar tillräckligt många förekomster av CGI för att hantera samtidiga webbförfrågningar. Det använder också suexec för att stödja olika användare med sina egna instanser av PHP och förbättrar webbsäkerhet.

Att köra rubinfiler på Apache behöver mod_ruby för att vara aktiverat. Apache kan också hantera rubinfiler via FastCGI. Det är möjligt att använda flera versioner av rubin med hjälp av mod_fcgid, dvs FastCGI.

Du kan också installera apache-passagerare och konfigurera Apache så att den används för att betjäna rubinsidor.

(Phusion Passenger även känd som " passagerare " är en gratis webbservermodul som är utformad för att integreras med Apache och Nginx)

Steg för att installera mod_ruby på din server -

cd / tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztjära zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6 /./configure.rb --with-apr-includes = / usr / include / apr-1göragör installationen

Hur man kör Ruby med Apache

Vi måste lägga till mod_ruby-modulen i Apache-konfigurationen, dvs. /etc/httpd/conf.d/ruby.conf och lägga till följande rad.

LoadModule ruby_module-moduler / mod_ruby.so

Om du vill aktivera eller inaktivera dessa moduler måste du redigera konfigurationsfilen för apache och kommentera eller avmarkera dessa moduler om webbservern redan har kompilerats med dessa moduler.

Hur man skyddar Apache-webbservern

Att skydda din webbserver är mycket viktigt, det innebär att andra bara kan se den avsedda informationen och skydda dina data och begränsa åtkomsten.

Det här är vanliga saker som förbättrar dina Apache-webbservares säkerhet.

1) Dölja Apache-version och OS-information:

Apache visar sin version och namnet på operativsystemet i fel som visas i skärmdumpen nedan.

En hacker kan använda denna information för att starta en attack med de allmänt tillgängliga sårbarheterna i den specifika versionen av servern eller operativsystemet.

För att förhindra att Apache-webbservern visar denna information måste vi ändra

Alternativet "serversignatur" finns i Apache-konfigurationsfilen. Som standard är det "på", vi måste sätta det "av".

vim /etc/httpd/conf/httpd.conf
ServerSignature AvServerTokens Prod

Vi har också ställt in "ServerTokens Prod" som säger att webbservern endast ska returnera apache och undertrycka OS-huvud- och mindreversionen

Efter att ha ändrat konfigurationsfilen måste du starta om / ladda om din apache-webbserver för att göra den effektiv.

tjänsten httpd starta om

2) Inaktivera katalogförteckning

Om din dokumentrotkatalog inte har en indexfil, visar din apache-webbserver som standard allt innehåll i dokumentkatalogen.

Den här funktionen kan stängas av för en specifik katalog genom "alternativdirektivet" tillgängligt i Apache-konfigurationsfilen.

Alternativ -indexer

3) Inaktivera onödiga moduler

Det är god praxis att inaktivera alla onödiga moduler som inte används. Du kan se en lista över aktiverade moduler tillgängliga i din Apache-konfigurationsfil -

[root @ amsterdam ~] #httpd -Mperl_module (delad)php5_module (delad)proxy_ajp_module (delad)python_module (delad)ssl_module (delad)

Många av de listade modulerna kan inaktiveras likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, eftersom de knappast används av produktionswebbservrar.

vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules / mod_auth_digest.so

När du har kommenterat modulen sparar du filen.

Starta om apache-tjänster med följande kommando.

/etc/init.d/httpd starta om

4) Begränsa åtkomst till filer utanför webbrotkatalogen

Om du vill se till att filer som ligger utanför webbrotkatalogen inte är tillgängliga måste du se till att katalogen är begränsad med “Tillåt” och “Neka alternativ” i din webbserverkonfigurationsfil.

Alternativ IngenAllowOverride NoneBeställ neka, tillåtFörneka från alla

När du har begränsat åtkomst utanför webbrotdirektivet kommer du inte att kunna komma åt någon fil som finns i någon annan mapp på din webbserver, du får 404 returkod.

5) Använda mod_evasive för att motbevisa DoS-attacken

Om du vill skydda din webbserver från Dos (dvs. Denial of Service) måste du aktivera modulen mod_evasive. Det är en tredjepartsmodul som upptäcker Dos-attacker och förhindrar att attacken gör så mycket skada som den skulle göra om den lämnade sin kurs. Det kan laddas ner här.

Ladda ner ovanstående fil

6) Använda mod_security för att förbättra apache-säkerheten

Den här modulen fungerar som en brandvägg för Apache och låter dig övervaka trafik i realtid. Det förhindrar också webbservern från brute force-attacker. Mod_security-modulen kan installeras med standardpakethanteraren för din distribution.

7) Begränsa begäran storlek

Apache har ingen begränsning av den totala storleken på http-förfrågan som kan leda till en DoS-attack. Du kan begränsa begäransstorleken för ett Apache-direktiv "LimitRequestBody" med katalogtaggen. Värdet kan ställas in allt från 0 till 2 GB (dvs. 2147483647 byte) enligt dina krav.

LimitRequestBody 512000

Apache-loggformat

Apache-loggar ger detaljerad information som hjälper till att upptäcka vanliga problem med servern.

För att skapa åtkomstloggar måste mod_log_configmodule vara aktiverat.

Tre direktiv finns tillgängliga i apache-konfigurationsfilen, dvs.

  • TransferLog: Skapa en loggfil.
  • LogFormat: Ange ett anpassat format.
  • CustomLog: Skapa och formatera en loggfil.

TransferLog-direktivet är tillgängligt i Apache-konfigurationsfilen och det roterar virtuella värdloggfiler enligt inställda parametrar.

ServerAdmin Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.DocumentRoot / usr / www / exempel / httpd / htdocs /Servernamn www.example.comServerAlias ​​exempel.com www.exempelErrorLog / usr / www / exempel / httpd / logs / error_logTransferLog / usr / www / exempel / httpd / logs / accesslogCustomLog / usr / www / exempel / httpd / logs / accesslog kombinerat

Två typer av Apache-loggformat

  • Vanligt loggformat
  • Kombinerat loggformat.

Du kan aktivera dem genom att redigera apache-konfigurationsfilen, dvs. apache2.conf (Debian / ubuntu) eller httpd.conf (rpm-baserade system) -fil

Vanligt loggformat

LogFormat "% h% l% u% t \"% r \ "%> s% b" vanligtCustomLog-loggar / access_log gemensamma

Gemensam logg genererad av Apache

[Ons 11 okt 14:32:52 2000] [fel] [klient 127.0.0.1] klient nekad av serverkonfiguration: / export / home / live / ap / htdocs / test

Kombinerat loggformat

LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-agent} i \ "" kombineratCustomLog-logg / access_log kombinerat

Här,

  • % h är fjärrvärden
  • % l är användarens identitet bestämd av identd
  • % u är användarnamnet som bestäms av HTTP-autentisering
  • % t är den tid som servern har bearbetat begäran.
  • % r är begäranderaden från klienten. ("GET / HTTP / 1.0")
  • %> s är statuskoden som skickas från servern till klienten (500, 404 etc.)
  • % b är storleken på svaret till klienten (i byte)
  • Referer är den sida som länkade till denna URL.
  • User-agent är webbläsarens identifieringssträng.

Kombinerad logg genererad av Apache:

199.187.122.91 - - [06 / Mar / 2014: 04: 22: 58 +0100] "GET /robots.txt HTTP / 1.1" 404 1228 "-" "Mozilla / 4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1 ; .NET CLR 2.0.50727) "

Anpassad logg skapar separat loggfil för varje virtuell värd på din server. Det måste anges i avsnittet om virtuell värd i konfigurationsfilen.

Du kan se nedan nämnda virtuella värdkonfiguration, genererad logg kommer att vara anpassad för den virtuella värden och formatet kombineras.

Konfigurera din allra första Production Web Sever

1. För att ha en pågående produktionswebbserver behöver du en dedikerad nod (fysisk / virtuell eller molninstans) som kör Linux / Unix, Windows, MacOS etc.

2. Webbservern måste ha en direkt nätverksanslutning och en staticIP-adress konfigurerad.

3. Det måste ha alla moduler som krävs för att köra webbsidor. Om en webbserver behandlar PHP-sidor måste PHP-modulen vara aktiverad.

  1. Det måste också ha ett bra antivirusprogram konfigurerat och kört för att säkra webbservern från skadlig programvara eller virusattacker. Du behöver också en mekanism för att uppdatera det konfigurerade antivirus- / antiprogramsprogrammet regelbundet utan någon manuell intervention för att få maximal nytta av dem.
  2. Om du har hundratals domäner på din webbserver måste du implementera begränsningar för filsystemskvoter för varje domän, antal databaser som varje domän kan skapa, antal e-postkonton per domän etc.
  3. Om din webbserver har konfigurerats för delade värdtjänster måste användare på din webbserver begränsas . En delad värdanvändare bör ha minst användarbehörighet så att han inte skadar viktiga filer och bryter hela servern. Apache tillhandahåller ingen sådan funktionalitet och behöver olika tredjepartsapplikationer, anpassning av OS för att uppnå detta.
  4. Om du lägger till en ny domän på din webbserver måste den redigera hundratals konfigurationsfiler för att aktivera alla funktioner för den tillagda domänen.
  5. Om en av de hostade domänerna kräver en annan PHP-inställning än resten av domänerna är det mycket komplicerat att implementera detta i Apache-webbservern och måste anpassas av din webbserver i stor utsträckning.
  6. En produktionswebbserver behöver en brandvägg för att blockera oönskad trafik som kan orsaka hög belastning på din server. Implementering av IPTABLE- regler med kommandoraden är mycket komplicerat. Det behöver expertis inom Linux / Unix-kärnan för att kunna skriva effektiva brandväggsregler för att blockera oönskad trafik. IPTABLE är baserad på netfilter-modulen; Det är en brandvägg på OS-nivå som tillåter en administratör att skapa regler för inkommande / utgående trafik på servern.
  7. En produktionswebbserver kräver flera olika applikationer som e-post , FTP för filöverföring, domännamnssystem för parkerade domäner. För att hantera alla dessa applikationer på ett kärn Linux / Unix-system krävs expertis inom respektive teknik.

Så man kan säga att hantering av en webbserver för flera domäner är en mycket komplex uppgift och kräver redigering av hundratals konfigurationsfiler, för att anpassa varje applikation för att uppnå önskat resultat. Felsökning av misskonfigurationer kommer att vara mycket svårt för nybörjare.

Lösningen med Cpanel eller liknande programvara

Cpanel ger ett grafiskt sätt att hantera din webbserver . Det är tänkt att tillhandahålla masshotellstjänster som är enkla att använda och konfigurera. cPanel har minskat de tekniska hindren för inträde i hosting och webbserverhantering. Det gör komplexa uppgifter enklare, det ger många användbara och enkla att använda webbgränssnitt som utför vanliga systemadministrationsuppgifter som krävs för att driva en webbserver.

cPanel sammanställer sin egen version av programvaran.

Om du måste kompilera din webbserver, dvs. apache på normal Linux-plattform, måste du manuellt välja / söka i den modul som krävs. cPanel tillhandahåller Easyapache-funktionalitet som är en skriptbaserad sammanställningsmetod för webbserver.

Det ger dig inte bara webbtjänster utan även Mail, DNS, FTP och många fler tjänster som krävs för din webbapplikation.

En uppgift som behöver expertis inom Linux / Unix-baserade webbhotell som att installera SSL, kompilera Apache med olika PHP-moduler, uppdatera webbsäkerhet, konfigurera effektiva IPTABLE regler, lägga till ftp-användare, skapa e-postkonton för varje domän, skanna din dokumentrot med antivirus att skapa databaser är enkla att komplettera med cPanel.

Det ger många skript som fixar, installerar och felsöker vanliga administrativa uppgifter.

Det ger en säkerhetskopierings- och återställningsfunktion som eliminerar behovet av att manuellt kopiera filer till backup-lagring. Om du säkerhetskopierar din domän skapar cPanel en tar-fil som innehåller dokumentrotmapp, e-postkonton och e-post, ftp-konton, databaser, DNS-poster och andra applikationer.

Det ger också en robust dokumentation och har en mycket stor grupp användare där du kan diskutera och få lösningar på dina problem.

Så man kan säga att cPanel är ett bästa program för att hantera din webbserver med nödvändiga funktioner. Det ger dig ett lättanvänt gränssnitt för att hantera din domän och en mekanism för att undvika komplexitet i hanteringen av kärnwebbservern.

Det finns många konkurrerande produkter till cPanel som Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel etc.

Intressanta artiklar...