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.

Konfigurációs file-ok

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:
  1. 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.
  2. local átirányítás :
    pl : ErrorDocument 404 /missing.html
    Ekkor a helyi /missing.html fog betöltôdni
  3. 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