Apache HTTP Server
	Kedže sme si Apache HTTP Server predstavili v prvom dieli našeho seriálu, nebudeme sa jeho opisom ďalej zaoberať a prejdeme rovno na inštaláciu. Taktiež sa už nebudeme zaoberať inštaláciou MySQL serveru, nakoľko ten už máme po prvom dieli seriálu nainštalovaný.
	Dnešný diel môžme spokojne nazvať ako ,,Jemný úvod do Apache a oboznámenie sa s jeho štruktúrou.'' Ako sami uvidíte, obsahovo tento diel nie je rozsiahly, no ponúka základné vedomosti a postupy, na ktoré budeme nadväzovať v nasledujúcich častiach, ktoré budú o to rozsiahlejšie.
	Poďme však ku samotnej inštalácii. Inštaláciu Apache HTTP Serveru  prevedieme následovne:
	Debian: 
	# aptitude install apache2
	Arch Linux:
	# pacman -S apache
	Fedora:
	# yum install httpd
	Týmto by sme mali Apache nainštalovaný a bežiaci. Jeho činnosť si môžeme overiť:
	
		root@debian:/var/www# netstat -tap  | grep apache2
	
		tcp6       0      0 [::]:www                [::]:*                  LISTEN      17172/apache2   
	
	
	V nasledujúcom zozname nájdete v poradí: Koreňový web adresár, Adresu konfiguračného súboru a príkaz na základné riadenie Apache serveru
	
	Debian: 
	1. /var/www/
	2. /etc/apache2/apache2.conf
	3. /etc/init.d/apache2 start|stop|restart
	
	Arch Linux:
	1. /srv/www/
	2. /etc/httpd/conf/httpd.conf
	3.  /etc/rc.d/httpd start|stop|restart
	
	Fedora:
	1. /srv/http/
	2. /etc/httpd/conf/httpd.conf
	3.  /etc/init.d/httpd start|stop|restart
	
	Je vhodné, aby ste si tak ako sme to robili v predchádzajúcom dieli nastavili prístupové práva vytvorením novej používateľskej skupiny. Nakoľko sme sa tejto téme dostatočne podrobne venovali pri nastavovani Lighttpd a postup je rovnaký, budeme pokračovať a považovať túto časť za zvládnutú a vykonanú.
	Taktiež odporúčam vykonať zálohu pôvodného konfiguračného súboru, aby sme sa k nemu mohli kedykoľvek v prípade kolízie vrátiť. Nie je nič horšie ako nefunkčný server bez záložného správneho konfiguračného súboru.
	Každý používateľ "adminom"
	Aj v dnešnej dobe sa v množstve firiem stretávame s potrebou sieťového zdielania určitých prvkov/súborov medzi zamestnancami, no typickejším príkladom bol/je univerzitný život, kde každá/každý študentka/študent mala/mal na serveri prístupné používateľské konto s možnosťou hostovať súbory na verejných sieťach. Zabezpečil sa tak priestor pre študentov na ich sebarealizáciu sa ale zároveň sa im tak poskytol priestor pre prispievanie svojimi prácami ku vývoju vedy a techniky. Najčastejšie sa zdielala zložka /home/*/public_html na adrese http://server/~*/. Vo všetkých spomenutých distribúciách je to pomerne jednoduché.
	Debian
	
		root@debian:/var/www# cd /etc/apache2/mods-enabled/
		
# Overíme si, či už modul userdir nie je načítaný
		root@debian:/etc/apache2/mods-enabled# ls -laF | grep userdir
		
# Vytvoríme symbolické odkazy, čím aktivujeme činnosť modulov
		root@debian:/etc/apache2/mods-enabled# ln -s ../mods-available/userdir.conf 
		root@debian:/etc/apache2/mods-enabled# ln -s ../mods-available/userdir.load
		
# Znova overíme správne zavedenie modulov
		root@debian:/etc/apache2/mods-enabled# ls -laF | grep userdir
		lrwxrwxrwx 1 root root   30 Feb 18 15:19 userdir.conf -> ../mods-available/userdir.conf
		lrwxrwxrwx 1 root root   30 Feb 18 15:19 userdir.load -> ../mods-available/userdir.load
		
# Reštartujeme apache
		root@debian:/etc/apache2/mods-enabled# apachectl restart
	
	Otestovať to môžme veľmi jednoducho, a to vytvorením už spomínanej zložky a následným sieťovým testom
	
		monika@debian:~$ mkdir public_html
		monika@debian:~$ cd public_html/
		monika@debian:~/public_html$ cat >> index.html << EOF
		> <h1>Stránka Moniky!</h1>
		> EOF
		monika@debian:~/public_html$ 
	
	Teraz už môžeme overiť Monikinu účasť v sieti na adrese http://ip-serveru/~monika/
	
	Arch Linux
	Tu je to o niečo jednoduchšie, nakoľko Apache nainštalovaný na Arch Linuxe v základnej inštalácii podporuje ~/public_html zložky aj s ich umiestnením na sieti. Ak si však neželáte túto službu, zakážte ju. V prípade, že nepredpokladáte potrebu ~/public_html zložiek na serveri, zakážte túto službu a v prípade potreby ju povolte. Nenechávajte túto časť bez povšimnutia a dbajte na jej správne použitie.
Povolenie/blokovanie tejto služby sa nastavuje v konfiguračnom súbore pridaním/zakomentovaním riadku:
	
	Include conf/extra/httpd-userdir.conf
	
	
	Fedora
	Čo sa týka konfigurácie Fedory, tá nie je o nič zložitejšia. Otvorme /etc/httpd/conf.d/userdir.conf a zaistime, aby bol obsah tohto súboru približne takýto:
	
	<IfModule mod_userdir.c>
	
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    UserDir enabled
 
    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disabled" line above, and uncomment
    # the following line instead:
    #
    UserDir public_html
 
</IfModule>
 
<Directory /home/*/public_html>
        Options Indexes Includes FollowSymLinks
 
        AllowOverride All
        Allow from all
 
        Order deny,allow
</Directory>
	
	Konfigurácia samotného modulu Userdir nie je vôbec zložitá. V prípade, že potrebujeme povoliť používať public_html len niektorým používateľom, vytvoríme pravidlo:
	
		UserDir disabled
		UserDir enabled monika peter vlado
	
	Taktiež sa môže stať, že potrebujeme iba určitým používateľom používanie public_html zakázať. V tom prípade volíme:
	
	UserDir enabled
UserDir disabled peter
	
	
	Všetky tieto zmeny robíme v *.conf konfiguračných súboroch userdir modulu, ktorých adresy vyčítate pár riadkov vyššie.
	Nezabudnime pre aplikovanie zmeny reštartovať Apache server.
	
	
	CGI / Python / Perl
	
	Pristúpme však bližšie ku funkčnému serveru. Začnime podporou CGI skriptov.
	CGI skripty aj v dnešnej dobe nájdu uplatnenie aj napriek tomu, že ide o pomerne zanedbanú technológiu. Mnoho vecí Perl / Python a i. dokážu urobiť oveľa rýchlejšie a efektívnejšie ako samotné PHP a preto netreba na tieto možnosti zanevrieť. Veľkým problémom však ostáva nedostatočne kladený dôraz na bezpečnosť a preto odporúčam, aby ste volili cestu bezpečnejšiu, tj. ohradiť možnosť spúšťania CGI skriptov iba v zložke cgi-bin/. Vytvorenie podpory pre cgi skripty je samo o sebe jednoduché.
	Prvým krokom je inštalácia konkrétneho modulu, či už pre Perl alebo pre Python.
	Debian: 
	# aptitude install perl libapache2-mod-perl2 python libapache2-mod-python
	# apachectl restart
	
	Tým je inštalácia a zavedenie modulov kompletné. Pre overenie si môžme skontrolovať existenciu symbolických odkazov v zložke /etc/apache2/mods-enabled ( a samozrejme, v prípade potreby ich vytvoriť ). 
	
	root@debian:/etc/apache2/mods-enabled# ls -laF | egrep "python|perl|php"
	
lrwxrwxrwx 1 root root   27 Feb 18 15:15 perl.load -> ../mods-available/perl.load
lrwxrwxrwx 1 root root   27 Feb 19 12:15 php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root root   27 Feb 19 12:15 php5.load -> ../mods-available/php5.load
lrwxrwxrwx 1 root root   29 Feb 19 12:15 python.load -> ../mods-available/python.load
	
	Podľa všetkého by mala byť podpora v CGI skriptov v Arch Linuxe a Fedore nainštalovaná priamo s nainštalovaným Apache.
	Nasleduje editácia konfiguračného súboru na adrese:
	
	Debian: 
	/etc/apache2/sites-enabled/000-default
	
	Arch Linux:
	/etc/httpd/conf/httpd.conf
	
	Fedora:
	/etc/httpd/conf/httpd.conf
	
	Ak aj napriek bezpečnostným rizikám hodláme povoliť používanie CGI skriptov na celom web serveri a nie len v zložke cgi-bin/, postupujme podľa tejto predlohy: ( pridané riadky sú zvýraznené ) 
	
	        <Directory /var/www/>
	
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
                Options +ExecCGI
                AddHandler cgi-script cgi pl py
        </Directory>
	
	Ak sme však nedôverčiví a hodláme sa zaoberať bezpečnosťou, môžeme vytvoriť jednoduché pravidlo podľa predlohy. Použitie je napríklad takéto:
	
        <Directory /var/www/*/cgi-bin>
	
                Options +ExecCGI
                AddHandler cgi-script cgi pl py
        </Directory>
        <Directory /home/*/public_html/cgi-bin>
                Options +ExecCGI
                AddHandler cgi-script cgi pl py
        </Directory>
	
	Nasleduje reštart Apache Serveru a vytvorenie CGI skriptu pre test
	Perl
	
		#!/usr/bin/perl
	
		print "Content-Type: text/plain", "\n\n";
		print "Ahoj!!", "\n";
	
	Python
	
	#!/usr/bin/python
	print "Content-type: text/html\r\n\r\n"
	print "Ahoj!!!"
	
	
	Skript uložíme do koreňového adresára ( alebo do svojej public_html zložky ) a spúšťame na adrese. Týmto by bola podpora CGI skriptov vyriešená. Presuňme sa však ku podpore PHP, ktorá je často pre web adminov atraktívnejšia.
	PHP
	Inštalácia PHP je taktiež veľmi jednoduchá. Funguje ( tak isto ako ostatné časti ) na princípe zásuvného modulu pre Apache
	
	Debian: 
	# aptitude install php5 php5-mysql libapache2-mod-php5
	Arch Linux:
	# pacman -S php php-apache
	Fedora:
	# yum install php php-mysql
	
	Týmto by sme však dnešný diel o Apache skončili. Posledným krokom sme si nainštalovali do systému PHP5 a sme tak pripravení na jeho podrobnú konfiguráciu, ktorá nás čaká v dieli, ktorý výjde o pár dní. Téma ktorá nasleduje je veľmi obsiahla a preto je jednoduchšie rozdeliť to a venovať téme samotnú časť, ako vydať také množstvo informácii po kope. 
	Čo  nás ešte čaká k téme ,,Apache'':
	
- Podrobná konfigurácia PHP
- Nastavenie virtual hostov
- Mod_rewrite a jemný úvod do .htaccess
- SSL
- Java tomcat
- Logovanie a ošetrovanie
- Základné aj pokročilé bezpečnostné opatrenia
- Ochrana pred DDoS útokmi
- Suhosin
- a ďalšie...
Dúfam že sa vám aj dnešný "light" úvod do Apache páčil a verím v to, že sa stretneme v ďalších dieloch pokračovania, ktoré budú o to zaujímavejšie a pútavejšie.
Čo sme sa dnes naučili:
- Nainštalovať Apache HTTP server
- Sprístupniť používateľom ~/public_html zložku pre bežné úkony
- Rozbehať podporu CGI skriptov
- Nainštalovať PHP5 do systému
Za opravu ďakujem používateľovi KLFMANiK

a mozem sa spytat, preco nepouzivate /etc/init.d/apache2 start|stop|... ??? tam je zahrnute aj pouzitie /etc/default/apache2 a roznych premennych prostredia spolu s apache2ctl, ktore sa potom automaticky pouziju napr. po restarte, takze ja by odporucil pouzit presne to, co pouzije moj system, inac sa mi to iba pri pouziti apache2ctl bude spravat inac bez tych nastavenych premennych
apt-get install apache2 alebo si stiahnem z netu na stránke apache.org zdrojový kód tam dám:
./configure && make && make install
jediny rozdiel som zatial zbadal že sú inak pooznačované niektoré aj konfiguračné súbory
Je tam aj iný rozdiel?? a celkovo myslím aj iné balíky či je rozdiel medzi apt-get instal a vlastnou kompilaciou a nainštalovaním.
Mimochodom serial sa mi velmi paci a pokracuj ďalej som fanúšik
Kdezto debian balickovy system toto riesi akoze za teba.