Apache Tutorials för nybörjare
Vad är Apache?
Apache är en anmärkningsvärd programvara. 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å indianstammen ’Apache’, känd för sina färdigheter i krigföring och strategitillverkning.
det är en modulär, processbaserad webbserverapplikation som skapar en ny tråd med varje samtidig anslutning. Den stöder ett antal funktioner; Många av dem sammanställs som separata moduler och utöka sin kärnfunktionalitet, och kan ge allt från serversidan programmeringsspråk stöd till autentiseringsmekanism. Virtuell hosting ä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 programmet. Det finns enlisted nedan –
- en av funktionerna i denna open source webbapplikation är att vem som helst kan göra installatör enligt sin egen miljö. Detta har tillåtit olika leverantörer som Debian, Red Hat,FreeBSD, Suse etc. för att anpassa filplatsen och konfigurationen av apache med hänsyn till andra installerade applikationer och bas OS.
- 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 & fungerar för alla operativsystem.
apache webbserver ä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 kompileras som dynamiska Delade objekt (DSO är en objektfil som kan delas av flera appar medan de körs) som finns separat från apache-huvudfilen. DSO-metoden rekommenderas starkt, det gör uppgiften att lägga till/ta bort/uppdatera moduler från serverns konfiguration mycket enkel.
installera Apache: Linux Platform
På Red Hat eller rpm-baserade system
Om du använder en rpm (RedHat Package Manager är ett verktyg för att installera program på Linux-system) baserad Linux-distribution dvs. Red Hat, Fedora, CentOs, Suse, du kan installera det här programmet genom att antingen leverantörsspecifik pakethanterare eller direkt bygga rpm-filen från den tillgängliga källan tarball.
Du kan installera Apache via Standardpakethanteraren tillgänglig på alla Red Hat – baserade distributioner som CentOs, Red Hat och Fedora.
# yum install httpd
apache source tarball kan konverteras till en rpm-fil med följande kommando.
# rpmbuild -tb httpd-2.4.x.tar.bz2
det är obligatoriskt att ha-devel package 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.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
Efter installationen startar servern inte automatiskt, för att starta tjänsten måste du använda något av följande kommando på Fedora, CentOs eller Red Hat.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
installera Apache från källan
installera apache från källan kräver att –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.
cd /usr/local/src gzip -d httpd-2.2.26.tar.gz tar xvf httpd-2.2.26.tar httpd-2.2.26
För att se alla konfigurationsalternativ tillgängliga för Apache, kan du använda ./ konfigurera – hjälp alternativ. Det vanligaste konfigurationsalternativet är-prefix = {install directory name}.
./configure --help./configure –prefix=/usr/local/apache –enable-so make make install
ovanstående exempel visar kompileringen av Apache i katalogen /usr/local/apache med DSO-kapacitet. Alternativet-enable-so kan ladda nödvändiga moduler till apache vid körning via DSO-mekanismen snarare än att kräva en omkompilering.
När installationen är klar kan du bläddra på standardsidan för webbservrar 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
service iptables spara
Du kan se Standard Apache2 välkomstskärmen genom att bläddra din server 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 server maskin och apache programvara för varje webbplats. Detta kan uppnås med hjälp av begreppet virtuell värd eller VHost.
varje domän som du vill vara värd på din webbserver kommer att ha en separat post i Apache konfigurationsfil.
typer av Apache Virtualhost
- Namnbaserad virtuell värd
- Adressbaserad eller IP-baserad virtuell värd och.
Namnbaserad virtuell värd
namnbaserad virtuell värd 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 där du ska ta emot Apache-förfrågningarna för alla önskade webbplatser. Du kan göra detta med namevirutalhost-direktivet inom Apache-konfigurationen, dvs httpd.conf / apache2.conf-fil.
Apache virtuell värd exempel:
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 lägga till så många virtuella värdar, enligt dina krav. Du kan kontrollera dina webbkonfigurationsfiler med:
#httpd –tSyntax OK
om konfigurationsfilen har någon fel syntax, kommer det att kasta ett fel
# 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-baserad virtuell värd
för att konfigurera IP-baserad virtuell värd behöver du mer än en IP-adress konfigurerad på din server. Så, antalet vhost apache beror påantal IP-adress konfigurerad på din server. Om din server har 10 IP-adresser kan du skapa 10 IP-baserade virtuella värdar.
i diagrammet ovan två webbplatser example1.com och example2.com tilldelades olika IP-adresser och använder IP-baserad 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>
vad Apache behöver för att köra Php-fil?
Kör Php-filer på Apache behöver mod_php aktiverat på din server. Det gör att Apache kan tolka .Php-filer. Den 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_phpis den äldsta PHP-hanteraren, det gör PHP till en del av Apache och kallar inte någon extern PHP-process. Den här modulen är installerad 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 som ska användas av olika konton på din server.
FastCGI dvs mod_fastcgi är en förlängning av mod_fcgid, där as mod_fcgi är ett högpresterande alternativ till CGI dvs mod_cgi . Det startar tillräckligt antal instanser av CGI för att hantera samtidiga webbförfrågningar. Den 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 ruby-filer på Apache behöver mod_ruby vara aktiverat. Apache kan också hantera ruby-filer via FastCGI. Det är möjligt att använda flera versioner av ruby med hjälp av mod_fcgid dvs FastCGI.
Du kan också installera Apache passenger och konfigurera Apache för att använda den för att betjäna ruby-sidor.
(Phusion Passenger även känd som” passenger”ä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.gztar zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6/ ./configure.rb --with-apr-includes=/usr/include/apr-1makemake install
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ägg till följande rad.
LoadModule ruby_module moduler / mod_ruby.så
Om du vill aktivera eller inaktivera dessa moduler måste du redigera Apache-konfigurationsfilen och kommentera eller Avkommentera dessa moduler, om webbservern redan är kompilerad med dessa moduler.
hur man säkrar Apache webbserver
att säkra din webbserver är mycket viktigt, det betyder att andra bara kan se den avsedda informationen & skydda dina data och begränsa åtkomsten.
dessa är vanliga saker som förbättrar din Apache webbservrar säkerhet.
1) dölja Apache version och OS information:
Apache visar sin version och namnet på operativsystemet i fel som visas i nedan skärmdump.
en hacker kan använda denna information för att starta en attack med hjälp av allmänt tillgängliga sårbarheter i den specifika versionen av servern eller operativsystemet.
för att förhindra Apache webserverfromdisplaying denna information, måste vi ändra
”server signatur” alternativet finns i Apache konfigurationsfilen. Som standard är det ”på”, Vi måste ställa in det”av”.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
Vi har också satt” ServerTokens Prod ” som talar om för webbservern att returnera endast apache och undertrycka OS större och mindre version
När du har ändrat konfigurationsfilen, måste du starta om / ladda din apache webbserver för att göra det effektivt.
service httpd restart
2) Inaktivera kataloglistning
om din dokumentrotkatalog inte har en indexfil, kommer din apache-webbserver som standard att visa allt innehåll i dokumentrotkatalogen.
den här funktionen kan stängas av för en specifik katalog genom” alternativdirektivet ” tillgängligt i Apache-konfigurationsfilen.
<Directory /var/www/html> Options -Indexes</Directory>
3) Inaktivera onödiga moduler
det är bra att inaktivera alla onödiga moduler som inte används. Du kan se Lista över aktiverade modulen finns i din Apache konfigurationsfil –
#httpd –Mperl_module (shared)php5_module (shared)proxy_ajp_module (shared)python_module (shared)ssl_module (shared)
många av de listade modulerna kan inaktiveras likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, eftersom de knappast används av någon produktion webbservrar.
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 restart
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 webbserver konfigurationsfil.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
När du begränsar acess utanför web root directoy kommer du inte att kunna komma åt någon fil som finns på 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. överbelastning) måste du aktivera modulen mod_evasive. Det är en tredjepartsmodul som upptäcker Dos-attack och förhindrar att attacken gör så mycket skada som den skulle göra om den lämnades för att köra sin kurs. Det kan laddas ner här.
ladda ner ovanstående fil
6) använd 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änsande begärningsstorlek
Apache har ingen begränsning av den totala storleken på http-begäran som kan leda till en DoS-attack. Du kan begränsa begäranstorleken 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 ditt krav.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
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 i Apache konfigurationsfil 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.
<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>
två typer av Apache loggformat
- gemensamt loggformat
- kombinerat loggformat.
Du kan aktivera dem genom att redigera Apache-konfigurationsfilen, dvs apache2.conf (Debian / ubuntu) eller httpd.conf (rpm-baserade system) fil
gemensamt loggformat
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
gemensam logg genererad av Apache
client denied by server configuration: /export/home/live/ap/htdocs/test
kombinerat loggformat
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
Här,
- %h är fjärrvärden
- %l är användarens identitet bestämd av identd
- %u är användarnamnet bestämt av HTTP-autentisering
- %t är den tid servern slutförde behandlingen av begäran.
- %r är begäran 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 på klienten (i byte)
- Referer är sidan som länkade till denna URL.
- User-agent är webbläsarens identifieringssträng.
kombinerad logg genererad 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)"
Anpassad logg skapar separat loggfil för varje virtuell värd på din server. Det måste anges i avsnittet virtuell värd i konfigurationsfilen.
Du kan se nedan nämnda virtuella värdkonfiguration, genererad logg kommer att anpassas för den virtuella värden och formatet kommer att kombineras.
konfigurera din allra första produktion Web Sever
1. För att ha en löpande 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 på den.
3. Det måste ha alla moduler som krävs för att köra webbsidor. Om en webbserver bearbetar PHP-sidor måste den ha PHP-modulen aktiverad.
- Det måste också ha ett bra antivirusprogram konfigurerat och kört för att säkra webbservern från skadlig kod eller virusattacker. Du behöver också mekanism för att uppdatera den konfigurerade antivirus / anti malware program på regelbunden basis utan någon manuell ingripande för att få maximal nytta av dem.
- Om du har hundratals domäner som ska vara värd på din webbserver måste du implementera begränsningar för filsystemkvoten för varje domän, antal databaser som varje domän kan skapa, antal e-postkonton per domän etc.
- 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ändarrättigheter så att han inte skadar viktiga filer & bryt hela servern. Apache tillhandahåller inte någon sådan funktionalitet och behöver olika tredjepartsapplikationer, anpassning av OS för att uppnå detta.
- Om du lägger till en ny domän på din webbserver behöver den redigera hundratals konfigurationsfiler för att aktivera alla funktioner för den tillagda domänen.
- Om en av de värd domäner kräver annan PHP inställning än resten av domänerna, genomföra detta i core Apache webbserver är mycket komplex och behöver anpassning av din webbserver i stor utsträckning.
- en produktionswebbserver behöver en brandvägg för att blockera oönskad trafik som kan orsaka hög belastning på din server. Implementera IPTABLE regler med kommandoraden är mycket komplex. Det behöver expertis core Linux / Unix miljö för att skriva effektiva brandväggsregler för att blockera oönskad trafik. IPTABLE är baserad på netfilter modul; det är en OS-nivå brandvägg som tillåter en administratör att skapa regler för inkommande/utgående trafik på servern.
- en produktionswebbserver kräver flera olika applikationer som e-post, FTP för filöverföring, domännamnssystem för parkerade domäner. Att hantera alla dessa applikationer på ett core Linux / Unix-system kräver expertis om respektive teknik.
så kan man säga att hantera en webbserver för flera domäner är mycket komplex uppgift och kräver redigering hundratals konfigurationsfil, anpassa varje program för att uppfylla det önskade resultatet. Felsökning av eventuella 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 masshostingtjänster som är lätta att använda och konfigurera. cPanel har minskat de tekniska hindren för inträde i värd-och webbserverhantering. Det gör komplex uppgift enklare, det ger många användbara och lättanvä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 om din webbserver, dvs. apache på vanlig Linux-plattform måste du manuellt välja / söka efter den modul som krävs. cPanel tillhandahåller Easyapache-funktionalitet som är en skriptbaserad webbserverkompileringsmetod.
det ger dig inte bara webbtjänster utan även Post, DNS, FTP och många fler tjänster som krävs för din webbapplikation.
en uppgift som behöver expertis på core Linux / Unix – baserad hosting 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 ditt dokument rot med antivirus och skapa databaser är lätt att slutföra med cPanel.
det ger många skript som fixar, installerar och felsöker vanliga administrativa uppgifter.
det ger en säkerhetskopiering och återställning funktionalitet 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, andhas en mycket stor gemenskap av användare där du kan diskutera och få lösning på dina problem.
Så kan man säga att cPanel är en bästa applikation för att hantera din webbserver med nödvändiga funktioner. Det ger dig, lättanvänt gränssnitt för att hantera din domän och en mekanism för att undvika komplexitet att hantera kärn webbserver.
det finns många konkurrerande produkter till cPanel som Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel etc.