Apache oktatóanyagok kezdőknek
mi az Apache?
Apache egy figyelemre méltó darab alkalmazás szoftver. Ez a legszélesebb körben használt webszerver alkalmazás a világon, több mint 50% – os részesedéssel a kereskedelmi webszerver piacon. Az Apache a legszélesebb körben használt webszerver alkalmazás Unix-szerű operációs rendszerekben, de szinte minden platformon használható, például Windows, OS X, OS/2 stb. Az Apache szó az amerikai indián törzs Apacs nevéből származik, amely híres a hadviselésben és a stratégia készítésben való jártasságáról.
Ez egy moduláris, folyamat – alapú webszerver alkalmazás, amely létrehoz egy új szál minden egyidejű kapcsolat. Számos funkciót támogat; sok közülük külön modulként van összeállítva, és kiterjeszti alapvető funkcióit, és mindent biztosít a szerver oldali programozási nyelv támogatásától a hitelesítési mechanizmusig. A virtuális tárhely az egyik olyan szolgáltatás, amely lehetővé teszi egyetlen Apache webszerver számára, hogy számos különböző webhelyet kiszolgáljon.
az Apache telepítése
a csomag vagy alkalmazás telepítésének számos módja van. Vannak besorozott alábbi –
- az egyik jellemzője ennek a nyílt forráskódú webes alkalmazás, hogy bárki lehet, hogy telepítő, mint egy saját környezetben. Ez lehetővé tette a különböző gyártók, mint a Debian, Red Hat, FreeBSD, Suse stb. az apache fájl helyének és konfigurációjának testreszabása, figyelembe véve a többi telepített alkalmazást és az alap operációs rendszert.
- eltekintve attól, hogy a gyártó alapú telepítőtől telepíti, mindig lehetőség van a forráskódból történő felépítésre és telepítésre. Az Apache telepítése a forrásfájlból platformfüggetlen & minden operációs rendszeren működik.
az apache webszerver egy moduláris alkalmazás, ahol a rendszergazda kiválaszthatja a szükséges funkciókat, és különböző modulokat telepíthet a saját igényei szerint.
az összes modul dinamikus megosztott objektumként fordítható (a DSO egy objektumfájl, amelyet több alkalmazás is megoszthat, miközben végrehajtják őket), amely a fő apache fájltól külön létezik. A DSO megközelítés erősen ajánlott, nagyon egyszerűvé teszi a modulok hozzáadását/eltávolítását/frissítését a kiszolgálók konfigurációjából.
telepítse az Apache-t: Linux Platform
Red Hat vagy rpm alapú rendszereken
Ha rpm-et használ (a RedHat Package Manager egy segédprogram az alkalmazás telepítéséhez Linux rendszereken) alapú Linux disztribúció, azaz. Red Hat, Fedora, CentOs, Suse, telepítheti ezt az alkalmazást akár szállító specifikus csomagkezelő vagy közvetlenül épület az rpm fájlt a rendelkezésre álló forrás tarball.
telepítheti az Apache-t az alapértelmezett Csomagkezelőn keresztül, amely minden Red Hat alapú disztribúción elérhető, mint például a CentOs, a Red Hat és A Fedora.
# yum install httpd
az apache forrás tarball a következő paranccsal konvertálható rpm fájlba.
# rpmbuild -tb httpd-2.4.x.tar.bz2
a létrehozáshoz kötelező a-devel csomag telepítése a szerverre .rpm fájl a forrásból.
miután a forrásfájlt rpm telepítővé konvertálta, a következő parancsot használhatja az Apache telepítéséhez.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
a telepítés után a kiszolgáló nem indul el automatikusan, a szolgáltatás elindításához a következő parancsok bármelyikét kell használnia A Fedora, CentOs vagy Red Hat rendszeren.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
telepítse az Apache –t a forrásból
az apache telepítése a forrásból szükséges a-devel csomag telepítése a szerverre. .Az Apache legújabb elérhető verzióját itt töltheti le . Miután letöltötte a forrásfájlt, helyezze át a /usr/local/src mappába.
cd /usr/local/src gzip -d httpd-2.2.26.tar.gz tar xvf httpd-2.2.26.tar httpd-2.2.26
az Apache összes konfigurációs opciójának megtekintéséhez használhatja ./ configure-Súgó opciót. A leggyakoribb konfigurációs lehetőség a-prefix={könyvtárnév telepítése}.
./configure --help./configure –prefix=/usr/local/apache –enable-so make make install
a fenti példa az Apache fordítását mutatja be a /usr/local/apache könyvtárban a DSO képességgel. Az-enable-so opció betöltheti a szükséges modulokat az apache-ba futási időben a DSO mechanizmuson keresztül, ahelyett, hogy újrafordítást igényelne.
a telepítés befejezése után böngészhet a webszerverek alapértelmezett oldalán kedvenc böngészőjével. Ha a tűzfal engedélyezve van a kiszolgálón, akkor kivételt kell tennie az operációs rendszer tűzfalának 80-as portjára. A 80-as port megnyitásához a következő parancsot használhatja.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
szolgáltatás iptables Mentés
Az alapértelmezett Apache2 üdvözlő képernyőt a kiszolgáló IP-címének böngészésével láthatja.
mi a virtuális gazdagép?
egy Apache webkiszolgáló több webhelyet is tárolhat ugyanazon a kiszolgálón. Nincs szükség külön szerver gépre és apache szoftverre minden weboldalhoz. Ez a virtuális gazdagép vagy a VHost fogalmával érhető el.
bármely domain, amelyet a webkiszolgálón szeretne tárolni, külön bejegyzéssel rendelkezik az apache konfigurációs fájlban.
az Apache Virtualhost típusai
- Névalapú virtuális gazdagép
- Címalapú vagy IP alapú virtuális gazdagép és.
név alapú virtuális gazdagép
a név alapú virtuális tárhely több virtuális webhely egyetlen IP-címen történő tárolására szolgál.
a név alapú virtuális tárhely konfigurálásához be kell állítania az IP-címet, amelyen az Apache kéréseket megkapja az összes kívánt webhelyhez. Ezt megteheti NameVirutalHost irányelv az apache konfigurációban, azaz httpd.conf / apache2.conf fájl.
Apache virtuális gazdagép példa:
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>
annyi virtuális gazdagépet adhat hozzá, mint az Ön igényei szerint. A webkonfigurációs fájlokat a következőkkel ellenőrizheti:
#httpd –tSyntax OK
Ha a konfigurációs fájlnak Rossz szintaxisa van, hibát fog dobni
# 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-alapú virtuális gazdagép
az IP-alapú virtuális tárhely beállításához egynél több IP-címre van szükség a kiszolgálón konfigurálva. Tehát a vhost apache száma függa kiszolgálón konfigurált IP-cím száma. Ha a szerver 10 IP-címmel rendelkezik, 10 IP-alapú virtuális gazdagépet hozhat létre.
a fenti ábrán két weboldal example1.com és example2.com különböző IP-ket rendeltek hozzá, és IP-alapú virtuális tárhelyet használnak.
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>
milyen Apache kell futtatni Php fájlt?
Php fájlok futtatásához az Apache-on engedélyeznie kell a mod_php-t a kiszolgálón. Ez lehetővé teszi az Apache számára, hogy értelmezze .Php fájlok. Php kezelőkkel rendelkezik, amelyek értelmezik a Php kódot az apache-ban, és HTML-t küldenek a webszerverre.
Ha a mod_php engedélyezve van a szerveren, akkor lesz egy php nevű fájl.conf az /etc/httpd/conf állományban.d / könyvtár. Azt is ellenőrizheti, hogy:
httpd -M | grep "php5_module"
a kimenet hasonló lesz:
Php kezelők az Apache
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpis a legrégebbi PHP kezelő, a PHP-t az Apache részévé teszi, és nem hív semmilyen külső php folyamatot. Ez a modul alapértelmezés szerint telepítve van minden Linux disztribúciós adattárban, így a modul engedélyezése/letiltása nagyon egyszerű.
Ha a FastCGI-t használja PHP kezelőként, beállíthatja, hogy a PHP több verzióját használja a szerver különböző fiókjai.
FastCGI azaz mod_fastcgi egy kiterjesztése mod_fcgid, ahol a mod_fcgid egy nagy teljesítményű alternatívája CGI azaz mod_cgi . Elegendő számú CGI-példányt indít el az egyidejű webes kérések kezeléséhez. A suexec-et arra is használja, hogy támogassa a különböző felhasználókat saját PHP-példányaikkal, és javítsa a webes biztonságot.
a ruby fájlok Apache-on történő futtatásához engedélyezni kell a mod_ruby-t. Az Apache ruby fájlokat is képes kezelni a FastCGI – n keresztül. Lehetőség van arra, hogy több változata ruby segítségével mod_fcgid azaz FastCGI.
telepítheti az apache utast is, és beállíthatja az Apache-t, hogy ruby oldalak kiszolgálására használja.
(Phusion utas is ismert, mint “utas”egy ingyenes webszerver modul, amely célja, hogy integrálja az Apache és Nginx )
lépéseket telepíteni mod_ruby a szerveren –
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
hogyan kell futtatni Ruby Apache
hozzá kell adnunk a mod_ruby modul az Apache konfiguráció azaz /etc/httpd/conf.d / ruby.add hozzá a következő sort.
LoadModule ruby_module modulok / mod_ruby.tehát
Ha engedélyezni vagy letiltani szeretné ezeket a modulokat, akkor szerkesztenie kell az apache konfigurációs fájlt, és kommentálnia vagy kommentálnia kell ezeket a modulokat, ha a webszerver már össze van fordítva ezekkel a modulokkal.
hogyan kell biztosítani az Apache webszervert
a webkiszolgáló biztosítása nagyon fontos, ez azt jelenti, hogy másoknak csak a kívánt információkat látják & az adatok védelme és a hozzáférés korlátozása.
ezek gyakori dolgok, amelyek növelik az Apache webszerverek biztonságát.
1) Az Apache verziójának és operációs rendszerének elrejtése:
az Apache hibásan jeleníti meg az operációs rendszer verzióját és nevét, amint az az alábbi képernyőképen látható.
egy hacker használhatja ezeket az információkat, hogy támadást indítson a kiszolgáló vagy az operációs rendszer adott verziójának nyilvánosan elérhető biztonsági réseivel.
annak érdekében, hogy megakadályozzuk az Apache webserverfrom ezen információk megjelenítését, módosítanunk kell az apache konfigurációs fájlban elérhető
“szerver aláírás” opciót. Alapértelmezés szerint “be” van, “ki”kell állítanunk.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
beállítottuk a” ServerTokens Prod ” – ot is, amely azt mondja a webszervernek, hogy csak az apache-t adja vissza, és elnyomja az operációs rendszer major és minor verzióját
a konfigurációs fájl módosítása után újra kell indítania/újratöltenie az apache webszervert, hogy hatékony legyen.
service httpd restart
2) tiltsa le a könyvtárlistát
Ha a dokumentum gyökérkönyvtárában nincs indexfájl, alapértelmezés szerint az apache webszerver megjeleníti a dokumentum gyökérkönyvtárának összes tartalmát.
ezt a funkciót ki lehet kapcsolni egy adott könyvtárban az Apache konfigurációs fájlban elérhető “opciók irányelv” segítségével.
<Directory /var/www/html> Options -Indexes</Directory>
3) a felesleges modulok letiltása
jó gyakorlat az összes felesleges modul letiltása, amely nincs használatban. Az Apache konfigurációs fájljában elérhető engedélyezett modulok listája látható –
#httpd –Mperl_module (shared)php5_module (shared)proxy_ajp_module (shared)python_module (shared)ssl_module (shared)
a felsorolt modulok közül sok letiltható likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, mivel ezeket alig használják termelési webszerverek.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
miután kommentálta a modult, mentse el a fájlt.
indítsa újra az apache szolgáltatásokat a következő paranccsal.
/etc/init.d/httpd restart
4) a webes gyökérkönyvtáron kívüli fájlokhoz való hozzáférés korlátozása
Ha meg szeretné győződni arról, hogy a webes gyökérkönyvtáron kívüli fájlok nem érhetők el, akkor meg kell győződnie arról, hogy a könyvtár a webkiszolgáló konfigurációs fájljában az” Engedélyezés “és a” megtagadás ” opcióval van korlátozva.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
miután korlátozta a hozzáférést a webes gyökér directoy-n kívül, nem fog tudni hozzáférni a webkiszolgáló bármely más mappájában található fájlhoz, 404 visszatérési kódot kap.
5) A mod_evasive használata a DoS támadás megcáfolásához
Ha szeretné megvédeni a webszervert a DOS-tól (azaz a Szolgáltatásmegtagadástól), engedélyeznie kell a mod_evasive modult. Ez egy harmadik féltől származó modul, amely érzékeli a Dos támadást, és megakadályozza, hogy a támadás annyi kárt okozzon, mint amennyit a futás során hagyna. Itt lehet letölteni.
töltse le a fenti fájlt
6) a mod_security használata az apache biztonságának fokozásához
Ez a modul tűzfalként működik az Apache számára, és lehetővé teszi a forgalom valós idejű nyomon követését. Ezenkívül megakadályozza a webszervert a brute force támadásoktól. A mod_security modul telepíthető a disztribúció alapértelmezett csomagkezelőjével.
7) a kérés méretének korlátozása
az Apache nem korlátozza a http kérés teljes méretét, ami DoS támadáshoz vezethet. A könyvtárcímkével korlátozhatja az Apache “LimitRequestBody” irányelv kérésének méretét. Az érték lehet állítani semmit 0-2 GB (azaz 2147483647 bájt), mint egy a követelmény.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
Apache Log Format
Apache naplók részletes információkat, amelyek segítenek felismerni a gyakori problémák szerver.
hozzáférési naplók létrehozásához engedélyezni kell a mod_log_configmodule funkciót.
három irányelv érhető el az apache konfigurációs fájlban, azaz
- TransferLog: naplófájl létrehozása.
- LogFormat: egyéni formátum megadása.
- CustomLog: naplófájl létrehozása és formázása.
a TransferLog direktíva az apache konfigurációs fájlban érhető el, és a beállított paraméterek szerint forgatja a virtuális gazdagép naplófájljait.
<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>
kétféle Apache Log formátum
- közös Log formátum
- kombinált Log formátum.
engedélyezheti őket az apache konfigurációs fájl, azaz az apache2 szerkesztésével.conf (Debian / ubuntu) vagy httpd.conf (rpm alapú rendszerek) fájl
közös napló formátum
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
az Apache által generált közös napló
client denied by server configuration: /export/home/live/ap/htdocs/test
kombinált napló formátum
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
itt,
- %h a távoli gazdagép
- %l a felhasználó azonosítója, amelyet az identd határoz meg
- %u a HTTP hitelesítés által meghatározott felhasználónév
- %t az az idő, amikor a kiszolgáló befejezte a kérés feldolgozását.
- %r az ügyfél kéréssora. (“GET/HTTP/1.0”)
- %>s a kiszolgálóról az Ügyfélnek küldött állapotkód (500, 404 stb.)
- %b az ügyfélre adott válasz mérete (bájtban)
- Referer az az oldal, amely ehhez az URL-hez kapcsolódik.
- a User-agent a böngésző azonosító karakterlánca.
az Apache által generált kombinált napló:
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)"
Az egyéni napló külön naplófájlt hoz létre a szerver minden virtuális Gazdagépéhez. Meg kell adni a konfigurációs fájl virtuális gazdagép szakaszában.
az alábbiakban látható a virtuális gazdagép konfigurációja, a generált napló egyedi lesz az adott virtuális gazdagéphez, és a formátum kombinálódik.
állítsa be az első gyártási Web Sever
1. Annak érdekében, hogy futó termelési webszerver legyen, szüksége van egy dedikált csomópontra (fizikai/virtuális vagy felhő példány), amely Linux/Unix, Windows, MacOS stb.
2. A webkiszolgálónak közvetlen hálózati kapcsolattal és staticIP címmel kell rendelkeznie.
3. Szüksége van a weboldalak futtatásához szükséges összes modulra. Ha egy webkiszolgáló feldolgozza a PHP oldalakat, akkor engedélyeznie kell a PHP modult.
- szüksége van egy jó víruskereső alkalmazásra is, amely konfigurálva és futva biztosítja a webszervert a rosszindulatú programok vagy vírus támadások ellen. Azt is meg kell mechanizmus, hogy frissítse a konfigurált antivírus/anti malware alkalmazás rendszeresen nélkül kézi beavatkozás annak érdekében, hogy a maximális hasznot belőlük.
- ha több száz domaint kell tárolnia a webkiszolgálón, akkor be kell vezetnie az egyes tartományok fájlrendszer-kvótájának korlátozásait, az egyes tartományok által létrehozható adatbázisok számát, az e-mail fiókok számát domainenként stb.
- Ha a webkiszolgálót megosztott tárhelyszolgáltatásokra állította be, a webkiszolgálón lévő felhasználókat korlátozni kell. A Megosztott tárhely-felhasználónak a legkevesebb felhasználói jogosultsággal kell rendelkeznie, hogy ne károsítsa a fontos fájlokat & törje meg az egész szervert. Az Apache nem nyújt ilyen funkciókat, és ehhez különböző harmadik féltől származó alkalmazásokra van szüksége, az operációs rendszer testreszabására.
- ha új tartományt ad hozzá a webkiszolgálóhoz, több száz konfigurációs fájl szerkesztésére van szükség a hozzáadott tartomány összes funkciójának engedélyezéséhez.
- Ha az egyik hosztolt tartomány más PHP beállítást igényel, mint a többi tartomány, ennek megvalósítása a core Apache webszerverben nagyon összetett, és nagy mértékben testreszabhatja a webszervert.
- a termelési webkiszolgálónak tűzfalra van szüksége a nem kívánt forgalom blokkolásához, amely nagy terhelést okozhat a kiszolgálón. Az IPTABLE szabályok parancssori végrehajtása nagyon összetett. Szüksége van szakértelemre a core Linux / Unix környezetben, hogy írjon hatékony tűzfal szabályokat blokkolja a nem kívánt forgalmat. IPTABLE alapul netfilter modul; ez egy OS szintű tűzfal, amely lehetővé teszi az adminisztrátor számára, hogy szabályokat hozzon létre a bejövő / kimenő forgalom a szerveren.
- a termelési webszerver több különböző alkalmazást igényel, mint például az E-Mail, az FTP a fájl feltöltéséhez, A Domain Névrendszer a parkolt domainekhez. Ezeknek az alkalmazásoknak az alapvető Linux/Unix rendszeren történő kezelése szakértelmet igényel a megfelelő technológiákkal kapcsolatban.
tehát azt mondhatjuk, hogy a webkiszolgáló kezelése több domainhez nagyon összetett feladat, és több száz konfigurációs fájl szerkesztését igényli, az egyes alkalmazások testreszabásával a kívánt eredmény eléréséhez. A hiányzó konfiguráció hibaelhárítása nagyon nehéz lesz a kezdők számára.
A megoldás segítségével Cpanel vagy hasonló szoftver
Cpanel nyújt grafikus módon kezeli a webszerver. Ez azt jelentette, hogy tömeges hosting szolgáltatások, amelyek könnyen használható és konfigurálható. a cPanel csökkentette a tárhely és a webszerver-kezelés technikai akadályait. Megkönnyíti az összetett feladatot, számos hasznos és könnyen használható webes felületet biztosít, amelyek a webszerver működtetéséhez szükséges általános rendszeradminisztrációs feladatokat látják el.
a cPanel saját szoftververziót állít össze.
Ha újra kell fordítania a webszervert, pl. apache normál Linux platformon manuálisan kell kiválasztania / keresnie a szükséges modult. cPanel nyújt Easyapache funkciót, amely egy script alapú webszerver összeállítási módszer.
nem csak webes szolgáltatásokat nyújt, hanem e-mailt, DNS-t, FTP-t és még sok más szolgáltatást, amely a webes alkalmazáshoz szükséges.
egy olyan feladat, amely szakértelmet igényel az alapvető Linux/Unix alapú tárhelyen, mint például az SSLs telepítése, az Apache újrafordítása különböző PHP modulokkal, a webes biztonság frissítése, a hatékony IPTABLE szabályok konfigurálása, FTP felhasználók hozzáadása, e-mail fiókok létrehozása az egyes tartományokhoz, a dokumentumgyökér víruskeresővel történő beolvasása és az adatbázisok létrehozása, könnyen kiegészíthető a cPanel segítségével.
sok szkriptet tartalmaz, amelyek javítják, telepítik és elhárítják a gyakori adminisztrációs feladatokat.
biztonsági mentési és visszaállítási funkciót biztosít, így nincs szükség a fájlok kézi másolására a biztonsági mentés tárolására. Ha biztonsági másolatot készít a domainről, a cPanel létrehoz egy tar fájlt, amely tartalmazza a dokumentum gyökérmappáját, e-mail fiókjait és leveleit, ftp-fiókjait, adatbázisait, DNS-rekordjait és egyéb alkalmazásait.
robusztus dokumentációt is nyújt, ésegy nagyon nagy felhasználói közösséggel rendelkezik, ahol megvitathatja és megoldhatja a problémáit.
tehát azt mondhatjuk, hogy a cPanel a legjobb alkalmazás a webszerver kezeléséhez a szükséges funkciókkal. Ez biztosítja az Ön számára, könnyen kezelhető felület kezelésére a domain és a mechanizmus, hogy elkerüljék bonyolultsága kezelése core webszerver.
sok versengő termék van a cPanel-hez, mint Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel stb.