Installáljunk
Elsônek editájuk a httpd.conf
file-t. Ez állítja be a server általános tulajdonságait; mint a port szám, a user aki alatt futni fog a server stb. A következô amit editálunk az a srm.conf
; ez állítja be a dokumentum fa root-ját, valamint speciális funkciókat mint belsô imagemap elemzô, stb. Végül az access.conf
kerül sorra , hogy beállítsuk a hozzáférések vezérlését.
Végül meghívjuk a httpd -f opcióval a teljes elérési útjával a httpd.conf file-nak.
/usr/local/etc/apache/src/httpd -f /usr/local/etc/apache/conf/httpd.conf
A servernek most futnia kell.
Alapértelmezés szerint az srm.conf
és az access.conf
helyét név alapján határozza meg. Ha más név alapján akarjuk hívni akkor használjuk az AccessConfig
és ResourceConfig
directivákat a httpd.conf
-ban.
A server három file-ból olvassa ki a konfigurációs utasításokat. A file-ok nevét a ServerRoot utasítással lehet beállítani, vagy a -d parancssori flaggel. Konvenció szerint a file-ok:
- conf/httpd.conf
- Utasításokat tartalmaz amelyek irányítják a server daemon mûködését. A file neve felülírható a -f parancssori opcóval.
- Ebben sorrendben a következô dolgokat kell beállítani:
SeverType
inetd
: kevésbé használt, nagyon leterheli a rendszert, viszont biztonsági megfontolásokból vannak akik ezt preferálják
standalone
: sokkal hatékonyabb mód,
Port
- Ezt a portot fogja figyelni a daemon. Ha a száma < 1023 akkor a servert a root userid-je alatt kell elindítani.
HostNameLookUps
- Ha be van kapcsolva akkor bejegyzi a kliensek nevét vagy IP számát.
User
- Ennek a usernek a nevében fog a server a kérésekre válaszolni. Lehet egy usrname, vagy #-al egy userid. Szoktak egy új usert létrehozni erre a célra , sok esetben
nobody
néven.
Group
- Ebben a csooprtban
ServerAdmin
- A serveradmin e-mail címe
ServerRoot
- A directory ahol a server config és log file-jai találhatóak. Gyakorlatilag az a directory ahol a server "él". Itt található a
conf/
és a /log
dir-k
BindAddress *
- A virtuális host-ok használata esetén az itt felsorolt IP címek alatt figyeli a serverhez irányuló kéréseket. Lehet egy számmal , vagy egy névvel megadni.
ErrorLog logs/error_log
- Ide jegyzi be az esetleges hibákat.
TransferLog log/access_log
- A transfer-rel kapcsolatos bejegyzásek
LogFormat
string
- Lehetôséget ad , hogy átformázzuk a log file szerkezetét. A mod_log_config.c modul tartalmazza, és nem fordítódik defaultnak.
- %h : Remote host
- %l : Remote logname
- %u : remote user
- %t : Time,
- %s : Státusz.
- %b : Ennyi byte-ot küldött
PidFile logs/httpd.pid
- A server id ejegyzi be a daemon pid-jét.
ScoreBoardFile logs/apache_status
- Ide jegyzi be a server a belsô process információkat.
ServerName
- Itt lehet beállítani a server hostname-jét. Ez elsôsorban URL átirányításoknál és virtuális hotsoknál szükséges ill. használható.
CacheNegotiatedDocs
-
Timeout
400
- Ennyi secundumot vár a server egy kérésre vagy a nyugtázásra.
KeepAlive
5
- Lehetôvé teszi a Keep-Alive support megvalósításását. Ez adja meg a maximálisan kezelhetô kérések számát.
KeepAliveTimeout
15
- ennyi sec-t vár egy subsequent request beérkezésére. Ha egyszer beérkezett a kérés akkor a Timeout lép életbe.
MaxSpareServers
15
- Maximum ennyi tétlen(idle) child server process lehet. Az idle process az amely nem kezel kéréseket. Ha t;obb van akkor a parent process megöli a felesleges processeket.
MinSpareServers
5
- Ugyanaz mint a fenti csak ez minimumban. Ha nincs meg a minimum akkor a parent elkezd kreálni processeket. Soha nem jó ha túl nagy ez a paraméter.
StartServers
5
- Induláskor ennyi child server process kreálódik.
MaxClients
150
- Egyszerre ennyi request-et tud kezelni, és maximum ennyi child servrer process kreálható.
MaxRequestPerChild
30
- Egy child server process maximum ennyi darab kérést tud egyszerre kezelni. Ha ennél több kérés van a child server megszûnik.
ProxyRequest On
- #-ben van, Akkor kell kivenni belôle ha proxy serverként akarjuk mûködtetni a serverünket.
- Biztosítani a Cache az elôzô esetre az alábbiakat is ki kell venni a megjegyzésbôl
CacheRoot
CacheSize 5
CacheGcInterval 4
CacheMaxExpire 24
CacheLastModifiedFactor 0.1
CacheDefaultExpire 1
Nocache
Listen
[IP address:] port number
- Lehetôvé hogy egynél több porton vagy IP címen figyeljen a server, a default hogy válaszol a kérésekre minden IP címen, de csak a megadott porton.
- Végül a virtuális hosttal kapcsolatos dolgokat kell beállítani, persze csak ha használjuk ezt a lehetôséget:
<VirtualHost host.foo.com>
ServerAdmin webmaster@host.foo.com
DocumentRoot
ServerName host.foo.com
ErrorLog
TransferLog
</VirtualHost
>
-
- conf/srm.conf
- Tartalmazza a leírásokat azokról a dokumentumokról amelyeket a server a clienseknek szolgáltat. Valamint azokat a server beállításokat amleyek a requestek kiszolgálását, a végeredmények formáját meghatározzák A file neve a ResourceConfig paranccsal definiálható át.
DocumentRoot
- Az a directory ahoonnan a httpd szolgáltataja a file-okat.
UserDir public_html
- A user-ek home directory-ja. Ezt fogják hozzáfûzni a ha egy ~user request érkezik.
Directory_index
index.html
- File vagy file-ok nevei amelyek elôre megírt HTML dokumentumokat tartalmaznak. Ha több ilyen van akkor space-szel kell ôket elválasztva felsorolni
FancyIndexing
on
-
AddIconByEncoding
icon mime-encoding mime-encoding..
AddiconByType
icon mime-type mime-type..
AddIcon
icon name name name ...
- Ezek a direktívák állítják be, hogy milyen icon jelenjen meg egy file mellett. Az mindhárom esetben az icon vagy egy relativ URL az iconhoz, vagy (alttext,url). Az alttext egy betûszó a nem grafikus browserekhez.
- Például :
- AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
- AddIconByType (TXT,/icons/text.gif) text/*
- AddIcon /icons/binary.gif .bin .exe
DefaultIcon
/icons/unknown.gif
- Azokhoz a file-okhoz amelyekhez nincs explicit icon definiálva.
AddDescription
description file file
- Egy rövidke lis megjegyzést fûzhetünk minden server által generált file-hoz, amelynek a neve egyezik a file-névvel, ami lehet egy kiterjesztés is.
ReadmeName
filename
HeaderName
filename
- Az adott directoy-ban az index lista végére ill. elejére teszi be a filename.html-t, vagy ha ilyet nem talál akkor a filename-t keresi mint text file-t.
IndexIgnore
file file
- Az itt felsorolt file-ok nem lesznek megjelenítva ha kilistázunk egy directory-t. A file lehet egy név, egy részleges név , egy wildcard karakteres név. A lista defaultként tartalmazza a '.'
- Például : IndexIgnore README .htaccess *~
AccessFileName
.htaccess
- Annak a file-nak a neve amelyet minden directory-ban az access control konfigurációt tartalmazza. Abban az esetben nem olvassa csak el ha :
<directory />
Alloverride None
</directory>
-
DefaultType
- Azt adja meg, hogy ha egy file-nak nincs meghatározható tipusa a MIME mapping alapján akkor ezt veszi defaultnak. Például: van egy aldir. images/ és abban .gi file-ok , akkor DefalutType images/gif azt eredményezi , hogy ha egy file-nak ebben az aldir-ban nincs meg a .gif kiterjesztése akkor automatikusan annak veszi a server.
AddEncodig
mime-enc extension extension
- Azt eredményezi, hogy a felsorolt extensionnal rendelkezô file-ok a mime-encodingnak megfelelôen lesznek azonosítva. Mire jó ez? Arra, hogy egyes browserek menetközben tudnak kitömöríteni ez alapján.
- Pl: AddEncoding x-compress Z, akkor uncompress fog használni minden .Z végû file-hoz.
AddLanguage
mime-lang extension extension
- pl:
AddEncoding x-compress Z
AddLanguage en .en
AddLanguage fr .fr
- Ekkor az xxx.en.Z dokument úgy lesz kezelva mint egy comressált English dokumentum.
LanguagePriority
- Ez egy precedenciát ad meg hogy milyen sorrendben oldja fel a kötéseket.
ReDirect
url-path url
- Megmondja a client-nek , hogy próbálkozzon a dokumentum elérésével az új URL címen. Pl:Redirect /service http://foo2.bar.com/service
- Akkor egy kérés ami a http://myserver/service/foo.txt akarja elérni a http://foo2.bar.com/service/foo.txt URL irányul át.
Alias
url-path directory-filename
- Lehetôvé teszi , hogy a local filesystemben is tartsunk dokumantumokat, ne csak a DocumentRoot alatt.
- Pl: Alias /image /ftp/pub/image
- Akkor egy kérés http://myserver/image/foo.gif a k;ovetkezô filet fogja szolgáltatni /ftp/pub/image/foo.gif.
-
ScriptAliases
url-path directory-filename
- Ugyanaz a viselkedése mint az Alias-nak csak ez scriptekre érvényes.
- pl : ScriptAlias /cgi-bin/ /web/cgi-bin
- Akkor http://myserver/cgi-bin/foo kérés /web/cgi-bin/foo scriptet fogja indítani.
AddType
mime-type extension ...
- Egy új mime tipus hozható így létre.
- pl : AddType image/gif GIF
- Így nem kell átdefiniálni a TypesConfig file-t.
AddHandler
handler-name extension
- Azt eredményezi, hogy az adott extension-nal rendelkezô file-okat a hendler-name handler fogja kezelni
- pl : AddHandler cgi-script cgi
- Akkor minden .cgi kiterjesztésû file CGI-scriptként lesz kezelve.
Action
mime-type cgi-script
- Ha egy kérés érkezik a mime-type tipusú file-ra, akkor a cgi-scriptet aktivizáljuk.
- pl:AddHandler foot-action foot
- Action foot-action /cgi-bin/footer
MetaDir
Metasuffix
- A CERN HTTPD meta file szemantikát emulálja. A MetaDir azt a directory-t adja meg amelyben a meta információk file-jai vannak. Ez általában egy 'rejtett' subdirectory. A neve '.' -al kezdôdik.
- A MetaSuffix azt a file név kiterjesztést adja meg amelyben a meta információk tárolódnak.
-
ErrorDocument
Error-code document
- Lehetôség van arra , hogy egy adott hiba esetén a mi általunk definiált hibaüzenet jelenjen meg.
- Háromféle hibakezelés lehetséges ezzel a módszerrel:
- plain text : Ekkor egy elôre meghatározott hibaüzenet jelenik meg.
pl : ErrorDocument 500 "The server made a boo boo.
Ebben a (") jel azt jelenti, hogy ez egy text.
- local átirányítás :
pl : ErrorDocument 404 /missing.html
Ekkor a helyi /missing.html fog betöltôdni
- külsô átirányítás :
pl : ErrorDocument 402 http://other.server.com/subscription_info.html
- conf/access.conf
- A dokumentumok elérését szabályozó utasításokat tarttalmaz.Ez a file azokat a server beállításokat tartalmazza amelyek szabályozzák, hogy mely szolgáltatásokat milyen körülmények között érhetünk el. A file neve az AccessConfig utasítással értelmezhetô át. Itt lehet megadni, hogy mely directory-kat akarunk password-el védeni , melyeket teszünk nem hozzáférhetôvé.
<Directory
dir-name> ...</Directory>
- Arra szolgál , hogy egységbe zárja azokat a direktívákat amalyek az adott directory-ra ill. az összes aldirectorykra érvényesek. Elsôsorban az access.conf file-ban jelenhet meg, de persze a többi config file-ban is felhasználható. Nem lóghat át ill. nem jelenhet meg a
<Limit>
szekcióban.
<Limit
method method> ... </Limit>
- A felsorolt access method-okra a közbezárt elérési direktívák lesznek érvényesek.
- Például :
<Limit GET POST>
require valid-user
</Limit>
<Location
URL path> ... </Location>
- Access control-t tesz lehetôvé az adott URL-nek. A URL path formátuma /directory/ legyen. A <DIrectory> section után kell következnie.
- Példa :
<Location /status>
SetHandler server-status
-
order deny,allow
deny from all
allow from .foo.com
-
</Location>
Options
options options
- Szabályozza , hogy mely extra szolgáltatások érhetôek el az adott Directory-ban.
- Példa :
- <Directory [documentroot] >
- Options Indexes FollowSymlinks
- </Directory>
- Azt eredményezi, hogy ha nincs index.html az [documentroot]-ban akkor ad egy directory listát és követi a szimbólikus linkeket az adott directory-ban.
AllowOverride
override override
- Ha a server talál egy .htaccess file-t az adott dir-ban akkor tudnia kell, hogy az ott felsorolt utasítások felülbírálhatják-e a már elôzôleg tett beállïtásokat. Ha az override
None
akkor a server nem olvassa el a .htaccess-t
- Példa :
<Directory [Documentroot]>
Options Indexes FollowSymlinks
AllowOverride None
</Directory>
.
allow from
host host
- CSak azok a host-ok érhetik el az adott direktory-t amelyek a fel vannak sorolva a host-ok között. Tipikusan a <Limit> szekcióban használandó.
- A host lehet :
- all
- Ekkor minden host kap access-t
- A (partial) domain-name
- Az a host, vagy hostok kapnak access melyeknek a neve vagy a nevének a domain része egyezik.
- A full IP address
- Az adott IP address-szel rendelkezô host kap accesst.
- A partial IP address
- Az IP cím 1-tôl 3 byte-ig terjedô része, subnetting esetén.
-
- allow from .ncsa.uiuc.com
- Ekkor a hostok a fenti domain névvel mind kapnak access-t a directory-ra.
deny from
host host ...
- Azt sorolja fel , hogy mely hostok nem kaphatnak access jogot az adott directory-ra. Hasonlóan az elôzôhöz ez is a <Limit> szekcióban használandó.
- A host az elôzôben leírt szerint értendô.
- Pl: deny from 16
- Akkor a specifikált network nem kaphat eccess jogokat.
order
ordering
- Ez határozza meg , hogy az allow és deny direktívák hogyan , milyen sorrendben értékelôdjenek ki.
- Példa :
<Directory [Documentroot]>
Options Indexes FollowSymlinks
AllowOverride None
order allow, deny
</Directory>
- Vagyis az
allow
direktíva a deny
elôtt értékelôdik ki.
- lehet még az ordering :
- deny, allow
- Elsônek a
deny
, majd utána az allow
értékelôdik ki.
- mutual-failure
- Csak azok a hostok kapnak elérési jogot az adott direktory-ra amelyek szrepelnek az
allow
listában és nem szerepelnek a deny
listában
-
require
entity-name entity
- Ez állítja be , hogy mely userek érhetnek el egy dir-t.
- entity-name entity lehet:t:
- user userid userid...
- Csak a nevezett userek kaphatnak access jogokat
- group group-name group-name..
- Csak az adott csoportoknak lehet access joga
- valid-user
- Minden valid-user elérheti a dir-t.
- Ha a
<Limit>
szekcióban jelenik meg akkor csak az adott method-ra érvényes, egyébként minden access methodra.
-
- Egy példa ennek presentálására :
AuthType Basic
AuthName somedomain
AuthUserFile /web/users
AuthGroupFile /web/groups
Limit <GET POST>
require group admin
</Limit
>
- AuthName auth-domain
- This directive sets the name of the authorization realm for a directory.
- AuthType type
- Ez adja meg , hogy a user azonosítás mely tipusát használjuk egy adott dir-ra. Jelenleg még csak a
Basic
mûködik.
-
- mod_auth
- Ez a modul szóveges file-okon alapuló user azonosítást tesz lehetôvé.
- Defaultként fordítódik.
- Direktívák:
- AuthGroupFile filename
- Ez a file fogja tartalmazni a user gropuokat amelyek kaphatnak access-t. Egy sora : mygroup: bob joe anne.
- Nagy méretû file esetén nem szerencsés alkalmazni . Ekkor az AuthDBMGroupFile jobb hatásfokkal alkalmazható.
- A filename abszolút path-al kell megadni.
- AuthUserFile filename
- Ez a file tattalmazza a userek neveit és a hoozzájuk tartozó password-t. Nagy file esetén az AuthDBMUserFile gyorsabb lesz.
- Egy sor tartalmazza a user nevét majd kettôspont után a crypt()-tel titkosított password következik.
- mod_auth_msql
- Ez is default-ként fordítódik. Lehetôvé teszi , hogy public domain mSQL adatbázis file-okat használjunk user azonosításra.
- Példa :
<directory /web/docs/private>
Auth_MSQLhost localhost vagy ehelyett
Auth_MSQLhost datab.machine.your.org
Auth_MSQLdatabase www
Auth_MSQLpwd_table user_records
Auth_MSQLuid_field User_id
Auth_MSQLpwd_field Cpasswd
Auth_MSQL_nopasswd off
Auth_MSQL_Authorative on
Auth_MSQL_EncryptedPasswords on
AuthName example mSQL realm
AuthType basic
</directory>
<Limit get post head>
order deny, allow
allow from all
require valid-user
require group has_paid
</limit>
-
- mod_auth_dbm
- A user azonosításra DBM file-okat használ. Nem fordítódik defaultként.
- Néhány száz azonosítandó user, vagy csoport fölött a sima text file azonosítás nagyon hosszú idôt vesz igénybe. Ekkor ezt érdemes használni.
- A DBM file-ok nem text állományok, 'es nem vihetôk 'at egyik platformról a másikra csak úgy.
- A direktívák :
- AuthDBMGroupFile filename
- A filename file adja a user csoportok azonosítását. Egy sora egy user és utána felsorolva a csoprotok ahova tartozik.
- AuthDBMUserFile filename
- A userek azonosítására szolgáló file.
-
- A kettô összekombinálható :
- AuthDBMGroupFile /www/userbase
- AuthDBMUserFile /www/userbase
- Ekkor egyetlen DBM file fog azonosítani. A kulcs a username lesz , és a következô formátumban tartalmaz bejegyzéseket :
Unix Crypted Password : List of Groups [ : (ignored) ]
- mod_auth_db
- A user azonosïtásra Berkley DB file-okat használ. Ez is egy opcionális modul.
- AuthDBGroupFile filename
-
- AuthDBUserFilename filename
-
- Anonymous access controll
- A mod_auth_anon modulban található, és default-ként fordítódik.
- Az anonymous ftp site-okhoz hasonló viselkedést tesz lehetôvé. Vagyis lesz egy 'magic' userid 'anonymous' és a hozzá tartozó password az e-mail cím.
- Egy példán keresztül a mûködése :
Anonymous anonymous guest www test welcome
-
Anonymous_MustGiveEmail on
Anonymous_VerifyEmail on
Anonymous_NoUserId off
Anonymous_LogEmail on
-
AuthName Use 'anonymous' & Email address for guest entry
AuthType basic
-
conf/mime.types
Tartalmazza a default mime tipusokat. Ezt a file-t szerkeszteni nem igazán ajánlott, helyette inkább az AddType direktíva használandó új mime tipusok hozzáadására.
Azonban nem kell feltétlenül ragaaszkodni ezekhez a név konvenciókhoz.
Log file-ok
pid file
A daemon indulásakor elmenti a szülô httpd process id -t a logs/httpd.pid
file-ba. Ez a file név át definiálható a PidFile utasítással. A process id -t az adminisztrátor használja újraindítani és lelôni a daemon-t.
-
-
Error log
A server ide írja be az hibaüzeneteit, a neve logs/error_log
. A file neve átállítható az ErrorLog utasítással. A különbözô virtual host-oknak különbözô error log-ok állíthatók be.
-
-
Transfer log
A server bejegyez minden request-et egy transfer file-ba. A neve: logs/access_log
. A file neve a TransferLog utasítással értelmezhetô át. A virtuákis host-okra itt is érvényes, hogy különbözô transfer bejegyzések állíthatók be.
Cookie log
mod_cookies.c-ben található. Nem fordítódik defaultként.
CookieLog
filename: adja meg a log file helyét.
Agent_log
mod_log_agent.c-ben található.
AgentLog logs/agent_log