Escolar Documentos
Profissional Documentos
Cultura Documentos
1/18
Apache
< Webszerver
Apache
A webszerverrl
A webszerver HTML oldalakat szolgl ki http protokollon keresztl. Alaprtelmezetten a 80-as porton.
Titkostott adattvitelre is kpes SSL vagy TLS felett, a 443-as porton (https protokoll).
Az Apache weboldala http://apache.org. Az Apache valjban egy alaptvny, amelynek nagyon sok
projektje van. A webszerver (httpd) csak az egyik projekt a sok kzl. A webszervert a foldalrl
kiindulva a kvetkez tvonalon lehet megtallni:
Project -> Project Listing -> Apache HTTP Server
Persze egyszeren azt is rhatjuk:
http://httpd.apache.org
A Debian GNU/Linux 6.x verzin, az apache2 csomagban a 2.2 verzij apache tallhat. Ennek
dokumentcija:
http://httpd.apache.org/docs/2.2/
Telepts
apt-get install apache2
Az apache weboldalrl letlthet a legjabb verzi is. 2012. mjusban ez a 2.4-es verzi.
A weblapok helye
Alaprtelmezetten a weblapok helye a kvetkez.
SzitWiki - http://szit.hu/
oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
/var/www
Ez persze megvltoztathat.
Vezrls
Vezrls initscriptekkel
/etc/init.d/apache2 stop
/etc/init.d/apache2 start
/etc/init.d/apache2 restart
/etc/init.d/apache2 reload
apache2ctl
Az apache az apache2ctl paranccsal is vezrelhet. A kvetkez parancsok adhatok:
start
stop
restart
fullstatus
status
graceful
graceful-stop
configtest
http://szit.hu/
2013/02/09 04:28
3/18
a2enmod, a2dismod
A modulok engedlyezse, tiltsa.
Hasznlata:
Engedlyezs:
a2enmod modulnv
Tilts:
a2dismod mdoulnv
Milyen modulok engedlyezhetk? Nzzk meg a mods-available knyvtr tartalmt:
ls /etc/apache2/mods-available
a2ensite, a2dissite
Site vagy virtualhost engedlyezse, tiltsa
a2ensite [site]
a2dissite [site]
Pldul az alaprtelmezett site lelltsa:
a2dissite default
Milyen sit-ok engedlyezhetk? Nzzk meg a sites-available knyvtr tartalmt:
ls /etc/apache2/sites-available
Milyen sit-ok vannak engedlyezve? Nzzk meg a sites-enabled knyvtr tartalmt:
ls /etc/apache2/sites-enabled
Bellts
Telepts utn a belltsok a kvetkez helyen tallhatk:
/etc/apache2/
Ezen bell jabb knyvtrakat s llomnyokat tallunk:
SzitWiki - http://szit.hu/
Apache
oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
conf.d
Ebben a knyvtrban elhelyezett llomnyok konfigurcis fjlknt beolvassra kerlnek.
mods-available
Ebben a knyvtrban az engedlyezhet modulok konfigurcis llomnyi vannak.
mods-enabled
Eebben a knyvtrban az elz knyvtrbl vannak szimbolikus linkek.
Ha itt megtallhat egy modulhoz egy szimbolikus link akkor az engedlyezve van.
sites-available
Hozzfrhet webhelyek belltsai
sites-enabled
Engedlyezett webhelyek (elz knyvtrbl szimbolikus link)
apache2.conf
ltalnos belltsok
envvars
Krnyezeti vltozk
httpd.conf
Sajt belltsink helye
magic
Kiterjesztsek kezelse
ports.conf
Hasznlt portok
Naplfjlok
A naplfjlok helye:
/var/log/apache2
Hromfle naplfjl van:
Hibanapl:
/var/log/apache2/error.log
Hozzfrsi napl:
/var/log/apach2/access.log
Alapbelltsok
A Debian GNU/Linux rendszeren telepl Apache2 azonnal hasznlhat.
A naplllomnyokban azonban hibazenet van, mert egy ikonfjlt vr, amelyet megjelent a
bngszk flein, ha az adott weblaphoz nincs semmi megadva. Alaprtelmezetten azt vrja, hogy
ksztsnk egy 1616-os ico kiterjeszts kpfjlt.
http://szit.hu/
2013/02/09 04:28
5/18
Apache
Apache azonosts
Az apache kpes weboldalak hozzfrst szablyozni azonostssal. Vagyis nem kell a
webmesternek megrni az azonostsi eljrst valamilyen nven, mert az alapbl a rendelkezsnkre
ll.
SzitWiki - http://szit.hu/
oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
Jelszfjl ltrehozsa
Az els felhasznlt gy vesszk fel:
htpasswd -c /etc/apache2/auth/pass joska
A -c kapcsol a jelsz fjl ltrehozsra ad utastst.
A futtats eredmnye:
htpasswd -c /etc/apache2/auth/pass joska
New password: titok
Re-type new password: titok
Adding password for user joska
A kvetkez felhasznlnl mr nem szksges a -c kapcsol:
htpasswd /etc/apache2/auth/pass mari
Ha hasznljuk mgis a -c kapcsolt, akkor fellrjuk a pass llomnyt tartalmt.
Bellts
Az apache konfigurcis llomnyban be kell lltanunk az azonostst:
<Directory /home/www/private>
AuthType Basic
AuthName "Vdett tartomny"
AuthUserFile /etc/apache2/auth/pass
Require valid-user
</Directory>
Tovbbi lehetsgek
Require valid-user
Require user userid [userid2]
Require group csoportnev [csportnev2]
Csoportfjl
http://szit.hu/
2013/02/09 04:28
7/18
Apache
A core modul
Options
Mindig alapbl betltd modul.
Lehetv teszi az Options s az AllowOverride belltsokat
Options kapcsol1 kapcsol2
Options ExecCGI FollowSymlinks Indexes SymlinksIfOwnerMatch
ExecCGI
CGI programok futtathatk
FollowSymlinks
Szimbolikus linkek kvetse
Location direktvban hatstalan
Indexes
Az autoindex modul hasznlatt engedlyezi, vagy tiltja
SymlinksIfOwnerMatch
A webkiszolgl kveti a szimbolikus linkeket, ha tulajdonos azonos
Location direktvban nem hasznlhat
AllowOverride
AllowOverride jog1 jog2
A knyvtrakban elhelyezett .htaccess fjlok mit rhatnak fell.
SzitWiki - http://szit.hu/
oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
None
A .htaccess llomny semmit sem brlhat fell
All
A .htaccess llomny minden fellbrlhat
Indexes
A knyvtrindexelshez kapcsold vezrlsek lehetsge (A Options Indexes nem tartozik ide!
Az az Options-al kell lltani)
Limit
Szablyozhat, melyik szmtgprl rhet el (access modul)
Options
fellbrlhatja a biztonsgi kapcsolkat
.htaccess hasznlata
A .htaccess akkor hasznljuk, ha egy knyvtrnak a belltsait nem kzpontilag akarjuk megoldani.
Ez jellemzen akkor van, ha azt egy msik rendszergazdra, vagy a webmesterre bzzuk
(tovbbiakban a webmesterre fogok hivatkozni).
A webmester ltrehoz ezen a nven egy llomnyt az adott knyvtrban, amiben elhelyezi a
belltsait. Hogy mi az amit bellthat mi hatrozzuk meg az AllowOverride belltssal kzpontilag.
Ha virtulis domainrl van sz, akkor szerkesszk a virtulis domain belltsait, ha sajt domainnk
akkor httpd.conf fjlt:
Szerkesszk a httpd.conf llomnyt:
mcedit /etc/apache2/http.conf
Az engedlyezst (mint azt fentebb mr csinltuk) Directory direktvk kztt hasznlhatjuk, pldul:
<Directory /var/www/info>
AllowOverride AuthConfig
</Directory>
Az AuthConfig teszi lehetv, hogy a webmester a .htaccess fjlban apache azonostst lltson be.
lljon itt egy lista miket szoktunk engedlyezni:
None
All
AuthConfig
Indexes
Limit
Options
Ha tbb lehetsget szeretnnk megadni, azt rjuk szkzkkel tagolva egyms utn:
<Directory /var/www/info>
AllowOverride AuthConfig Options Limits
http://szit.hu/
2013/02/09 04:28
9/18
Apache
</Directory>
Az authz_host modul
A authz_host modul a 2.0-s apacheban mg access modul nven szerepel!
Allow,Deny
Clja a hozzfrs szablyozsa.
Az Allow s a Deny direktvkkal szablyozhatjuk milyen hostrl vagy IP cmrl rhetik el az egyes
weboldalakat.
Allow from all
Allow from piros.and
Allow from 10.252.46.165
Deny from 10.252.46.165
Allow from 192.168.1.104 192.168.1.205
Minden szmtgp szmra: all
Deny from all
Allow from 192.168.5.0/255.255.255.0
Allow from 192.168.5.0/24
Allow from 10.1.0.0/255.255.0.0
Allow from 10.1.0.0/16
Allow from 2001:db8::a00:20ff:fea7:ccea
Allow from 2001:db8::a00:20ff:fea7:ccea/10
Order
Order sorrend
SzitWiki - http://szit.hu/
oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
Szigorbb
Alaprtelmezs szerint mindenkinek tiltott az elrs.
Order Allow,Deny
Elszr megnzzk az Allow rszt. Ha egyetlen Allow rsz sem illeszkedik akkor tilts.
Msodszor megnzzk a Deny rszt. Ha illeszkedik egy Deny-re akkor hiba volt engedlyezve, tiltva
lesz.
Enyhbb
Alaprtelmezs szerint minden gyfl jhet.
Order Deny,Allow
Elszr megnzzk a Deny rszt. Ha nincs illeszkeds akkor elrhet a knyvtr.
Msodszor megnzzk a Allow-ot. Ez fell rja a Deny rszt is, ha meg volt tiltva, de most szerepel az
Allow rszben, akkor hozzfrhet.
Hozzfrs plda
<Directory /pub>
Order Allow,Deny
Allow from piros.and
Deny from sarga.and
</Directory>
<Directory /pub>
Order Deny,Allow
Deny from 192.168.5.0/24
Allow from 192.168.5.3
</Directory>
A 192.168.5.0 hlzatbl nem jhet senki, csak a 192.168.5.3-as cmrl.
Virtualhost belltsa
http://szit.hu/
2013/02/09 04:28
11/18
Minimum
Hozzunk ltre pldul a piros.and domain szmra egy llomnyt:
mcedit /etc/apache2/sites-available/piros.and
Minimlis tartalma:
<VirtualHost *:80>
ServerAdmin webmaster@piros.and
ServerName piros.and
ServerAlias www.piros.and
DirectoryIndex index.html
DocumentRoot /home/virtual-web/piros.and/htdocs/
# CGI knyvtr
ScriptAlias /cgi-bin/ /home/virtual-web/piros.and/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Naplfjlok
ErrorLog /home/virtual-web/piros.and/logs/error.log
CustomLog /home/virtual-web/piros.and/logs/access.log combined
</VirtualHost>
Ez utn tltsk jra a konfigurcit:
/etc/init.d/apache2 reload
Ellenrizzk milyen hibk vannak:
tail /var/log/apache2/error.log
Engedlyezzk a domaint:
a2ensite piros.and
Ez utn tltsk jra a konfigurcit:
/etc/init.d/apache2 reload
Ellenrizzk a weblap elrhetsgt:
lynx http://piros.and
A website elrsvel kapcsolatos hibk ez utn itt:
SzitWiki - http://szit.hu/
Apache
ErrorLog
oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
/home/virtual-web/piros.and/logs/error.log
Ellenrz eszkzk
Bngsz
apt-get install lynx
A lynx egy karakteres bngsz.
Terhels
apt-get install apachetop
MySQL azonosts
apt-get install libapache2-mod-auth-mysql
a2enmod auth_mysql
mysql -u root -p
grant all on auth.* to auth_user@localhost identified by 'titok';
create database auth;
use auth;
CREATE TABLE `clients` (
`username` varchar(30) NOT NULL default '',
`passwd` varchar(25) NOT NULL default '',
`groups` varchar(25) NOT NULL default '',
PRIMARY KEY (`username`),
KEY `groups` (`groups`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
http://szit.hu/
2013/02/09 04:28
13/18
Apache
ASP
Nha a webmesterek ASP-t szeretnnek futtatni a webszervernkn. Ehhez Mono nev csomag
teleptsre van szksg:
apt-get install libapache2-mod-mono
SSL
Tanstvny elksztse
SzitWiki - http://szit.hu/
oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
2013/02/09 04:28
15/18
Apache
server.crt
SSL belltsa
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
CustomLog logs/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\"
%b"
Rewrite
A rewritingrl
Egy cmet, tvonalat jrarhatunk segtsgvel. Felhasznlsnak szmtalan mdja lehet, mi most
csak egy egyszer http https tirnytst fogunk megnzni a plda kedvrt.
tirnyts
Elszr engedlyezzk az trst:
RewriteEngine On
Ellenrizzk, hogy nincs HTTPS kapcsolat:
RewriteCond %{HTTPS} !=on
SzitWiki - http://szit.hu/
oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
httpd.conf
.htaccess
A .htaccess fjlban val hasznlathoz be kell lltani a httpd.conf fjlban a kvetkez tulajdonsgot:
AllowOverride
Esetleg az albbi sor helyettesthet:
RewriteCond %{HTTPS} !=on
ezzel:
RewriteCond %{HTTPS} off
Knyvtr megadsa
Either put the above solution in a .htaccess file in the directory to be affected, or put the URI prefix in
the regex itself.
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?secure/(.*) https://%{SERVER_NAME}/secure/ class="code apache"
[R,L]
Pldul:
http://zold.and/titkos/ https://zold.and/titkos/
Favicon plda
# REDIRECT FAVICON REQUESTS
<ifmodule mod_rewrite.c>
RewriteEngine on
http://szit.hu/
2013/02/09 04:28
17/18
Apache
tirnyts
Minden hivatkozst tirnytunk egy msik cmre. Lehet /etc/apache2/httpd.conf, vagy egy helyi
.htaccess fjlban.
Lehet Directory direktva kztt:
<Directory /var/www/ati>
RedirectMatch permanent ^(.*)$ http://masikdomain.valahol
</Directory>
Lehet Location direktva kztt:
<Location /ati>
RedirectMatch permanent ^(.*)$ http://masikdomain.valahol
</Location>
A kvetkez pldban ha a blog knyvtr vagy annak egy alknyvtrrra hivatkozik valaki, akkor
tirnyts trtnik:
RedirectMatch 301 ^/blog/.*$ http://domain.tld/target.html
Ha csak a blog knyvtrra szeretnnk:
RedirectMatch 301 ^/blog/$ http://domain.tld/target.html
Esetleg csak domainnel:
RedirectMatch 301 ^/blog/$ http://domain.tld/
Ms varicik, amelyekben benne van az ideiglenes (302) s a tarts (301) tirnyts:
# Tarts tirnyts
RedirectMatch 301 ^/blog/.*$ http://domain.tld/target.html
# Ideiglenes tirnyits:
RedirectMatch 302 ^/blog/.*$ http://domain.tld/target.html
Likewise, you may also write:
# This is a permanent redirect RedirectMatch permanent ^/blog/.*$ http://domain.tld/target.html #
This is a temporary redirect RedirectMatch temp ^/blog/.*$ http://domain.tld/target.html
SzitWiki - http://szit.hu/
oktatas:linux:webszerver:apache http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
Irodalom
Linkek
http://httpd.apache.org/docs/2.2/howto/auth.html
http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html
http://www.howtoforge.com/mod_auth_mysql_apache2_debian
http://modauthmysql.sourceforge.net/CONFIGURE
http://www.akadia.com/services/ssh_test_certificate.html (SSL)
From:
http://szit.hu/ - SzitWiki
Permanent link:
http://szit.hu/doku.php?id=oktatas:linux:webszerver:apache
Last update: 2012/09/12 21:41
http://szit.hu/