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.