Apache Návody pro Začátečníky
Co je Apache?
Apache je pozoruhodný kus aplikačního softwaru. Jedná se o nejrozšířenější webovou serverovou aplikaci na světě s více než 50% podílem na komerčním trhu s webovými servery. Apache je nejrozšířenější aplikace webového serveru v unixových operačních systémech, ale může být použita téměř na všech platformách, jako jsou Windows, OS X, OS / 2 atd. Slovo, Apache, byl převzat z názvu indiánského kmene ‚Apache‘, známý pro své dovednosti v boji a strategii tvorby.
jedná se o modulární procesní webovou serverovou aplikaci, která vytváří nové vlákno s každým současným připojením. To podporuje množství funkcí, mnoho z nich jsou sestaveny jako samostatné moduly a rozšířit své základní funkce, a může poskytnout vše, co z straně serveru programovací jazyk, podpora autentizačního mechanismu. Virtuální hosting je jedna taková funkce, která umožňuje jednomu webovému serveru Apache obsluhovat řadu různých webů.
Jak nainstalovat Apache
Existuje mnoho způsobů, jak instalaci balíčku nebo aplikace. Tam jsou zařazeny pod –
- Jednou z funkcí tohoto open source webové aplikace je, že někdo může udělat instalační jako za své vlastní prostředí. To umožnilo různým prodejcům, jako je Debian, Red Hat, FreeBSD, Suse atd. přizpůsobení umístění souboru a konfigurace apache s přihlédnutím k dalším nainstalovaným aplikacím a základnímu OS.
- kromě instalace z instalátoru založeného na dodavateli je vždy možnost sestavení a instalace ze zdrojového kódu. Instalace Apache ze zdrojového souboru je nezávislá na platformě & funguje pro všechny OS.
webový server apache je modulární aplikace, kde si administrátor může vybrat požadovanou funkčnost a nainstalovat různé moduly podle svého požadavku.
všechny moduly lze zkompilovat jako dynamické Sdílené objekty (DSO je objektový soubor, který může být sdílen více aplikacemi během jejich provádění), který existuje odděleně od hlavního souboru apache. Přístup DSO je vysoce doporučen, velmi usnadňuje přidávání/odebírání / aktualizaci modulů z konfigurace serverů.
Instalovat Apache:Linux Platforma
Na Red Hat nebo rpm systémech založených na systému,
Pokud používáte rpm (RedHat Package Manager je nástroj pro instalaci aplikace na systémy Linux), založené distribuce Linuxu, tj. Red Hat, Fedora, CentOs, Suse, tuto aplikaci můžete nainstalovat buď správcem balíčků konkrétního dodavatele, nebo přímo vytvářením souboru rpm z dostupného zdrojového tarballu.
Apache můžete nainstalovat pomocí výchozího správce balíčků dostupného ve všech distribucích založených na Red Hat, jako jsou CentOs, Red Hat a Fedora.
# yum install httpd
zdrojový tarball apache lze převést na soubor rpm pomocí následujícího příkazu.
# rpmbuild -tb httpd-2.4.x.tar.bz2
pro vytvoření je nutné mít na serveru nainstalovaný balíček-devel .rpm soubor ze zdroje.
jakmile převedete zdrojový soubor na instalační program rpm, můžete použít následující příkaz k instalaci Apache.
# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm
Po instalaci se server nespustí automaticky, za účelem spuštění služby, budete muset použít některý z následujících příkazů na Fedora, CentOs nebo Red Hat.
# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start
nainstalujte Apache ze zdroje
Instalace apache ze zdroje vyžaduje instalaci balíčku –devel na váš server. .Nejnovější dostupnou verzi Apache najdete zde . Po stažení zdrojového souboru jej přesuňte do složky/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
Chcete-li zobrazit všechny možnosti konfigurace dostupné pro Apache, můžete použít ./ configure-možnost nápovědy. Nejběžnější možností konfigurace je-prefix={install directory name}.
./configure --help./configure –prefix=/usr/local/apache –enable-so make make install
výše uvedený příklad ukazuje, kompilace Apache v /usr/local/apache directory s DSO schopnosti. Volba-enable-so, může načíst požadované moduly apache v době běhu prostřednictvím mechanismu DSO spíše než vyžadovat rekompilaci.
po dokončení instalace můžete procházet výchozí stránku webových serverů pomocí svého oblíbeného prohlížeče. Pokud je na vašem serveru povolena brána firewall, musíte udělat výjimku pro port 80 ve firewallu operačního systému. K otevření portu 80 můžete použít následující příkaz.
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
služba iptables uložit
výchozí uvítací obrazovku Apache2 můžete zobrazit procházením IP adresy serveru.
co je virtuální hostitel?
webový server Apache může hostit více webových stránek na stejném serveru. Pro každou webovou stránku nepotřebujete samostatný serverový stroj a software apache. Toho lze dosáhnout pomocí konceptu Virtual Host nebo VHost.
každá doména, kterou chcete hostovat na vašem webovém serveru, bude mít samostatnou položku v konfiguračním souboru apache.
Druhy Apache Virtualhost
- Jméno založené Virtuální hostitel
- Adresa na bázi nebo na bázi IP virtuální hostitel a.
Jméno založené Virtuální Hostitel
Jméno založené virtuální hosting se používá k hostování více virtuálních serverů na jedné IP adresy.
aby bylo možné nakonfigurovat jméno založené virtuální hosting, musíte nastavit IP adresu, na které budete přijímat Apache žádosti pro všechny požadované webové stránky. Můžete to udělat pomocí směrnice NameVirutalHost v konfiguraci apache, tj.conf / apache2.soubor conf.
příklad virtuálního hostitele Apache:
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>
můžete přidat tolik virtuálních hostitelů, podle vašeho požadavku. Můžete zkontrolovat své webové konfigurační soubory:
#httpd –tSyntax OK
Pokud konfigurační soubor má nějaké špatné syntaxe, bude to házet chybu,
# 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-based Virtuálního hostitele
pro nastavení IP based virtuální hosting, budete potřebovat více než jednu IP adresu nakonfigurován na serveru. Takže počet vhost apache bude záviset napočet IP adresy nakonfigurované na vašem serveru. Pokud má váš server 10 IP adres, můžete vytvořit 10 virtuálních hostitelů založených na IP.
Ve výše uvedeném diagramu dvou webů example1.com a example2.com byly přiřazeny různé IPs a jsou pomocí IP-based virtual 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>
co Apache potřebuje ke spuštění Php souboru?
spuštění Php souborů na Apache potřebuje mod_php povoleno na vašem serveru. Umožňuje Apache interpretovat .Php soubory. Má PHP manipulátory, které interpretují Php kód v apache a odeslat HTML na váš webový server.
Pokud je na vašem serveru povolen mod_php, budete mít soubor s názvem php.conf in / etc/httpd / conf.d / adresář. Můžete také zkontrolovat pomocí:
httpd -M | grep "php5_module"
výstup bude podobný:
Php manipulátory v Apache
- mod_php
- CGI
- FastCGI
- suPHP
mod_phpis nejstarší PHP handler, to je PHP součástí apache a nevyžaduje žádné externí PHP proces. Tento modul je standardně nainstalován v každém úložišti distribuce Linuxu, takže povolení / zakázání tohoto modulu je velmi snadné.
Pokud používáte FastCGI jako obslužný program PHP, můžete nastavit více verzí PHP, které mají být používány různými účty na vašem serveru.
FastCGI tj. mod_fastcgi je rozšíření mod_fcgid, kde jako mod_fcgid je vysoký výkon alternativních CGI tj. mod_cgi . Spustí dostatečný počet instancí CGI pro zpracování souběžných webových požadavků. Používá také suexec k podpoře různých uživatelů s vlastními instancemi PHP a zlepšuje zabezpečení webu.
spuštění ruby souborů na Apache potřebuje mod_ruby, které mají být povoleny. Apache může také zpracovávat ruby soubory prostřednictvím FastCGI. Je možné použít více verzí ruby s pomocí mod_fcgid tj FastCGI.
můžete také nainstalovat Apache passenger a nakonfigurovat Apache tak, aby jej používal pro zobrazování stránek ruby.
(Phusion Passenger také známý jako „cestující“ je bezplatný webový server modulu, který je navržen pro integraci s Apache a Nginx )
Kroky k instalaci mod_ruby na vašem serveru –
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
Jak spustit Ruby s Apache
Musíme přidat mod_ruby modul do Apache konfigurace, tj. /etc/httpd/conf.d / ruby.conf a přidejte následující řádek.
LoadModule ruby_module modules / mod_ruby.takže
Pokud chcete povolit nebo zakázat tyto moduly, budete muset upravit konfigurační soubor apache a komentář, nebo odkomentujte tyto moduly, pokud webový server je již zkompilovaný s těmito moduly.
Jak Zabezpečit Webový Server Apache
Zajištění vaše webový server, je velmi důležité, to znamená, že umožňuje, aby ostatní viděli pouze určené informace & ochrana dat a omezení přístupu.
to jsou běžné věci, které zvyšují bezpečnost webových serverů Apache.
1) Skrytí verze Apache a informací o operačním systému:
Apache zobrazuje jeho verzi a název operačního systému v chybách, jak je znázorněno na obrázku níže.
hacker může tyto informace použít k útoku pomocí veřejně dostupných zranitelností v konkrétní verzi serveru nebo OS.
aby se zabránilo Apache webserverfromdisplaying tyto informace, musíme změnit
„server podpis“ možnost k dispozici v konfiguračním souboru apache. Ve výchozím nastavení je „zapnuto“, musíme jej nastavit „vypnuto“.
vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod
Máme také nastavit „ServerTokens Prod“, které říká, webový server vrátí pouze apache a potlačit OS hlavní a vedlejší verze,
Po úpravě konfiguračního souboru, budete muset restartovat/znovu načíst webový server apache, aby to bylo efektivní.
service httpd restart
2) Zakázat Výpis Adresáře
Pokud je váš dokument kořenový adresář nemá index souboru, ve výchozím nastavení apache web server zobrazí všechny obsah dokumentu kořenový adresář.
Tato funkce může být vypnout pro konkrétní adresáře přes „možnosti směrnice“ je k dispozici v konfiguračním souboru Apache.
<Directory /var/www/html> Options -Indexes</Directory>
3) Zakázání nepotřebných modulů
To je dobrá praxe, aby se vypnout všechny nepotřebné moduly, které nejsou v použití. Můžete vidět seznam povolen modul k dispozici ve vašem konfiguračním souboru apache –
#httpd –Mperl_module (shared)php5_module (shared)proxy_ajp_module (shared)python_module (shared)ssl_module (shared)
Mnoho z uvedených modulů lze vypnout likemod_imap, mod_include, mod_info, mod_userdir, mod_autoindex, jako jsou sotva používá jakoukoli výrobu webových serverů.
vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so
jakmile modul okomentujete, uložte soubor.
restartujte služby apache následujícím příkazem.
/etc/init.d/httpd restart
4) Omezení Přístupu k souborům mimo web root directory
Pokud chcete, aby se ujistil, že soubory, které je mimo web root adresáře nejsou přístupné, budete muset ujistěte se, že adresář je omezen na „Povolit“ a „Zakázat možnost“ v konfiguraci webového serveru soubor.
<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>
Jakmile jste omezit přístup mimo web root adresář, nebude schopen získat přístup libovolný soubor umístěn na jakékoliv jiné složky na vašem webovém serveru, budete mít 404 návratový kód.
5) Pomocí mod_evasive k vyvrácení DoS útok
Pokud chcete chránit váš webový server ze systému Dos (tj. Denial of Service) musíte povolit modul mod_evasive. Jedná se o modul třetí strany, který detekuje Dos útok a zabraňuje útoku dělat tolik škody, jako by to udělal, kdyby nechal běžet jeho průběh. Lze jej stáhnout zde.
ke Stažení Soubor výše
6) Pomocí mod_security pro zvýšení zabezpečení apache
Tento modul pracuje jako firewall pro Apache a umožňuje sledovat provoz v reálném čase. Zabraňuje také webovému serveru před útoky hrubou silou. Modul mod_security lze nainstalovat s výchozím správcem balíčků vaší distribuce.
7) Omezit velikost požadavku
Apache nemá žádné omezení na celkovou velikost http požadavku, který by mohl vést k DoS útoku. Velikost požadavku direktivy Apache „LimitRequestBody“ můžete omezit adresářovou značkou. Hodnotu lze nastavit od 0 do 2 GB (tj. 2147483647 bajtů) podle vašeho požadavku.
<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>
formát protokolu Apache
protokoly Apache poskytují podrobné informace, které pomáhají odhalit běžné problémy se serverem.
aby bylo možné vytvořit protokoly přístupu, musí být povolen mod_log_configmodule.
tři direktivy dostupné v konfiguračním souboru apache, tj.
- TransferLog: vytvoření souboru protokolu.
- LogFormat: zadání vlastního formátu.
- CustomLog: vytvoření a formátování souboru protokolu.
TransferLog směrnice je k dispozici v konfiguračním souboru apache a otáčí virtuální hostitele soubory protokolu dle nastavených parametrů.
<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>
dva typy formátu protokolu Apache
- společný formát protokolu
- kombinovaný formát protokolu.
můžete je povolit úpravou konfiguračního souboru apache, tj.conf (Debian/ubuntu) nebo httpd.conf (rpm based systems) file
Common Log Format
LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common
Common Log generované Apache
client denied by server configuration: /export/home/live/ap/htdocs/test
Kombinované Formát Protokolu
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined
Tady,
- %h je vzdálený hostitel
- %l je identita uživatele, určena identd
- %u je jméno uživatele, určuje HTTP autentizace
- %t je čas serveru dokončila zpracování požadavku.
- %r je řádek požadavku od klienta. („GET / HTTP/1.0“)
- %> s je stavový kód odeslaný ze serveru klientovi (500, 404 atd.)
- %b je velikost odpovědi na klienta (v bajtech)
- Referer je stránka, která je spojena s touto adresou URL.
- User-agent je identifikační řetězec prohlížeče.
kombinovaný protokol generovaný 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)"
vlastní protokol vytváří samostatný soubor protokolu pro každého virtuálního hostitele na vašem serveru. Musí být zadán v sekci virtuálního hostitele konfiguračního souboru.
můžete vidět níže uvedenou konfiguraci virtuálního hostitele, vygenerovaný protokol bude pro tohoto virtuálního hostitele vlastní a formát bude kombinován.
Konfigurovat svůj první Výrobní Web Sever
1. Chcete-li mít spuštěný produkční webový server, potřebujete vyhrazený uzel (fyzická/virtuální nebo cloudová instance) se systémem Linux/Unix, Windows, MacOS atd.
2. Webový Server musí mít přímé síťové připojení a na něm nakonfigurovanou adresu staticIP.
3. Musí mít všechny moduly potřebné pro spuštění webových stránek. Pokud webový server zpracovává stránky PHP, musí mít povolen modul PHP.
- také potřebuje mít dobrý Antivirový program nakonfigurován a spuštěn pro zabezpečení Webového Serveru před Malware nebo Virus útoky. Potřebujete také mechanismus pro pravidelnou aktualizaci nakonfigurované antivirové / anti malware aplikace bez jakéhokoli ručního zásahu, abyste z nich získali maximální užitek.
- Pokud máte stovky domén umístěn na webovém serveru, musíte mít k provedení omezení souborového systému kvót pro jednotlivé domény, počtu databází každou doménu můžete vytvořit, počet e-mailové účty na doméně, atd.
- Pokud byl váš webový server nastaven pro sdílené hostingové služby, musí být uživatelé na vašem webovém serveru omezeni. Sdílený hosting uživatel by měl mít nejméně oprávnění uživatele tak, že nemá poškodit důležité soubory & rozbít celý server. Apache neposkytuje žádné takové funkce a potřebuje různé aplikace třetích stran, přizpůsobení OS k dosažení tohoto cíle.
- Pokud jste přidání nové domény na váš webový server, je třeba editace stovky konfigurační soubor, který chcete povolit všechny funkce pro přidané domény.
- Pokud jeden z hostovaných domén vyžaduje různé PHP nastavení, než zbytek oblastech, provádění této v jádru Apache web server je velmi komplexní a vyžaduje přizpůsobení webového serveru ve velké míře.
- produkční webový server potřebuje firewall blokovat nežádoucí provoz, který by mohl způsobit vysoké zatížení na serveru. Implementace pravidel IPTABLE pomocí příkazového řádku je velmi složitá. Potřebuje odborné znalosti jádra Linux / Unix prostředí psát efektivní pravidla brány firewall pro blokování nežádoucího provozu. IPTABLE je založen na modulu netfilter; jedná se o firewall na úrovni OS, který umožňuje správci vytvářet pravidla pro příchozí / odchozí provoz na serveru.
- produkční webový server vyžaduje několik různých aplikací, jako je E-mail, FTP pro nahrávání souborů, systém názvů domén pro zaparkované domény. Správa všech těchto aplikací v jádrovém systému Linux / Unix vyžaduje odborné znalosti o příslušných technologiích.
takže lze říci, že správa webového serveru pro více domén je velmi složitý úkol a vyžaduje úpravu stovek konfiguračních souborů, přizpůsobení každé aplikace pro splnění požadovaného výsledku. Odstraňování problémů s jakoukoli konfigurací miss bude pro začátečníky velmi obtížné.
řešení využívající Cpanel nebo podobný software
Cpanel poskytuje grafický způsob správy webového serveru. Je určen k poskytování hromadných hostingových služeb, které se snadno používají a konfigurují. cPanel snížil technické překážky vstupu do hostingu a správy webových serverů. Usnadňuje komplexní úkol, poskytuje mnoho užitečných a snadno použitelných webových rozhraní, která provádějí běžné úkoly správy systému potřebné k provozu webového serveru.
cPanel sestavuje svou vlastní verzi software.
Pokud máte překompilovat váš webový server, tj. apache na normální platformě Linux musíte ručně vybrat / vyhledat požadovaný modul. cPanel poskytuje funkce Easyapache, což je metoda kompilace webového serveru založená na skriptech.
To poskytuje nejen webové služby, ale také e-Mail, DNS, FTP a mnoho dalších služeb, které je nutné pro vaše webové aplikace.
úkol, který potřebuje odborné znalosti na jádro Linux/Unix based hosting, jako je instalace SSLs, recompiling Apache s různými moduly PHP, aktualizace Webu, Zabezpečení, konfigurace efektivní IPTABLE pravidel, Přidání ftp uživatele, vytvářet e-mailové účty pro každou doménu, skenování dokumentu kořen s antivirus a vytváření databází jsou snadno kompletní s cPanel.
poskytuje mnoho skriptů, které opravují, instalují a odstraňují běžné administrativní úkoly.
poskytuje funkci zálohování a obnovení, což eliminuje potřebu ručního kopírování souborů do záložního úložiště. Pokud zálohujete svou doménu, cPanel vytvoří soubor tar, který bude obsahovat kořenovou složku dokumentu, e-mailové účty a e-maily, ftp účty, databáze, záznamy DNS a další aplikace.
poskytuje také robustní dokumentaci a má velmi velkou komunitu uživatelů, kde můžete diskutovat a získat řešení vašich problémů.
takže lze říci, že cPanel je nejlepší aplikace pro správu webového serveru s požadovanými funkcemi. Poskytuje vám snadno použitelné rozhraní pro správu vaší domény a mechanismus, který zabraňuje složitosti správy základního webového serveru.
existuje mnoho konkurenčních produktů cPanel jako Plesk, ISPConfig, Ajenti, Kloxo, Open Panel, Zpanel atd.