Kom igang raskt - følg punktene:
Sørg for at maskinen bruker Store. Se egen dokumentasjon: http://www.usit.uio.no/it/unix/store/
Legg inn profilen usit-httpd i
filen /etc/usit/sw-localcopy ved å
legge inn en en linje med følgende:
@usit-httpd
Profilen skal inneholde de følgende Store-pakkene:
apache2.2 db4 expat j2sdk openldap sasl2 mod_perl2 mod_php5 curl libidn libjpeg libpng libxml2 libxslt mysql-lib pgsql-lib usit-visuell-profil
Kjør /local/sbin/storeapp for å hente ned programvaren (eller vent til dagen etter)
Initier Apache2.2 med følgende kommando:
root@maskin.uio.no# /local/etc/init.d/httpd init
Dette skal opprette nødvendige filer og kataloger, samt starte Apache2.2 med defaultkonfigurasjonen.
Editer /etc/httpd.conf mtp
ServerAdmin og ServerName
Hvis serveren skal bruke UiO profiler, så må de
eventuelle profiler legges inn i filen
/site/opt/usit-visuell-profil/uioprofil.conf.
For mer info, se eget punkt om
UHTML.
Apache skal ha startet automatisk ved initiering, så man bør nå restarte for at den skal få med seg eventuelle endringer du har gjort i konfigurasjonen:
root@maskin.uio.no# /local/etc/init.d/httpd restart
![]() | Obs |
|---|---|
Før du starter bør du lese gjennom hele migreringsveiledningen. |
Se gammel dokumentasjon her: http://www.usit.uio.no/it/unix/store/apache.html.
Migrering fra gammel Apache1.3 (eller den uoffisielle Apache2.0-disten) gjøres slik punktvis:
Ta backupkopi av dine gamle konfigurasjonsfiler:
root@maskin.uio.no# tar zcvf /etc/httpd.conf-backup.tgz /etc/httpd.conf*
Følg installasjonsveiledningen over (ADVARSEL - den nye Apache2.2-servern blir startet med default-config; les videre for å vite hva du må gjøre).
Det som vil skje er at de gamle konfigurasjonsfilene som overlapper mellom den nye Apache2.2-installasjonen blir døpt om:
/etc/httpd.conf -> /etc/httpd.conf.old-Apache1.3/etc/php.ini -> /etc/php.ini.old-Apache1.3Og nye, re-inititialiserte lokale configfiler opprettes:
/etc/httpd.conf/etc/httpd.conf.modules/etc/php.ini (Hvis PHP5-modulen er
installert; se eget punkt om PHP.)
Merk: UHTML aktiveres automatisk hvis mod_perl2-pakka er
installert, og hvis du har hentet ned profilen
@usit-httpd så er den det. Hvis du ikke
skal bruke UHTML på serveren så må du kommentere ut de
relevante linjene rundt uhtml2.inc i
/etc/httpd.conf. Disse skal være klart
merket med UHTML hvis de finnes.
Eventuelle filer fra eldre installasjoner av UHTML (visuell-profil) forblir urørt, inkludert cronjobben for å oppdatere profilene. Se forøvrig eget punkt om UHTML.
Hvis du fulgte installasjonsveiledningen skal du
allerede ha oppdatert ServerAdmin- og ServerAdmin-direktivene
i /etc/httpd.conf hvis de trengte
oppdatering.
Den potensielt største jobben følger - du må nå porte
din gamle Apache1.3-konfigurasjon til den nye
/etc/httpd.conf-fila. Den gamle configen
skal altså finnes som
/etc/httpd.conf.old-Apache1.3
Det er en del relevante syntaktiske endringer mellom
konfigurasjonsfilene til Apache1.3 og Apache2.2. Av denne
grunn kan man ikke alltid direkte benytte sin gamle lokale
konfigurasjonsfil (/etc/httpd.conf).
Hvorvidt man kan det eller ikke er ofte avhengig av hvor mange
lokale tilpasninger man har gjort. Eksempelvis så laster
Apache1.3 inn moduler først med LoadModules-direktivet, og
senere med AddModules, mens Apache2.2 bruker kun
LoadModules-direktivet.
Det er dessverre ikke så lett å dokumentere hvordan man gjør en slik porting, så vi må dessverre vise dere til eksisterende dokumentasjon. En kan naturligvis kontakte oss på www-drift@usit.uio.no hvis man løper opp i problemer. Noen råd på veien er:
/local/opt/apache2.2/conf
Default dataområde er flyttet fra:
/site/opt/apache-ssl/htdocs
til:
/site/opt/apache2.2/htdocs
Du trenger enten å oppdatere stien til dette i din
/etc/httpd.conf, eller så trenger du å
flytte datene til den nye katalogen.
Det er også tilrettelagt for at man kan opprette et tilsvarende katalogtre for VirtualHosts, som i den gamle disten, under følgende katalog (se eget punkt om tilpasning av Apache2.2 for mer informasjon):
/site/opt/apache2.2/virtual
SSL: Hvis du har benyttet ssl-sertifikater for å
aktivere HTTPS til din gamle Apache1.3-server må du berge
SSL-sertifikatene (.crt/.pem) og
privatnøklene (.key). Disse er i
default-oppsettet til Apache1.3-disten lagt til å finnes under
følgende kataloger:
/site/opt/apache-ssl/conf/ssl.{crt,key}/
For å porte SSL-configen sin til Apache2.2-disten bør en ta utgangspunkt i den SSL-konfigurasjonen som følger som en egen fil i Apache2.2-disten:
/local/opt/apache2.2/conf/extra/httpd-ssl.conf
Kopier den til et lokalt område (f.eks. under
/site/opt/apache2.2/conf/), modifiser den
til å passe din konfigurasjon og så inkluder den fra din
lokale /etc/httpd.conf, gjerne en plass
langt nede, med:
# Include local SSL-config (make sure the path is correct): Include /site/opt/apache2.2/conf/httpd-ssl.conf
PHP: Hvis du har brukt PHP i Apache1.3 tidligere så vil
du ha en lokal PHP-konfigurasjonsfil
(/etc/php.ini). Denne har som nevnt blitt
omdøpt, og en ny (default-) fil har blitt lagt opp. Denne er
basert på at i Apache2.2-disten brukes PHP5 (forrige baserte
seg på PHP4), og eventuelle lokale tilpasninger du gjorde i
forrige fil må du gjenskape i den nye fila. Se eget punkt om
PHP for mer informasjon.
Du bør kommentere ut/fjerne gamle cronjobber for loggrotering av eldre Apache-installasjoner fra /etc/crontab (linux) eller med crontab -e (solaris).
Til slutt kan du (hvis du vil) rydde vekk de gamle configfilene som du finner:
/etc/httpd.conf.pre/etc/httpd.conf.addmodules/etc/httpd.conf.loadmodules/etc/httpd.conf.old-Apache1.3/etc/php.ini.old-Apache1.3Merk: hvis du har hatt Apache2.0-installert tidligere i
stedet for Apache1.3 så vil filene være døpt
.old-Apache2.0.
Du kan vurdere om du vil pakke ned og eventuelt fjerne det gamle dataområdet da det ikke lenger vil brukes Apache2.2 (med mindre du selv har oppdatert konfigurasjonen for å benytte det):
/site/opt/apache-ssl
Når du har kjørt Apache2.2 en stund kan du fjerne den
gamle Apache-installasjonen med å fjerne
@usit-webserver fra
/etc/usit/sw-localcopy og så
kjøre:
root@maskin.uio.no# /local/sbin/storeapp -d
Endringer i katalogstrukturen fra tidligere Apache-versjoner i Store og frem til Apache2.2:
| Apache1.3 | Apache2.0 | Apache2.2 | Beskrivelse |
|---|---|---|---|
/local/opt/apache-ssl | /local/opt/apache2 | /local/opt/apache2.2 | Rotkatalog til Apache-serveren |
/site/opt/apache-ssl/htdocs | /site/opt/apache2/htdocs | /site/opt/apache2.2/htdocs | Datakatalog |
/site/opt/apache-ssl/cgi-bin | /site/opt/apache2/cgi-bin | /site/opt/apache2.2/cgi-bin | Katalog for CGI-skript |
/site/opt/apache-ssl/logs | /site/opt/apache2/logs | /site/opt/apache2.2/logs | Katalog for loggfiler, lockfiler mm |
/var/run/httpd.pid | /var/run/httpd.pid | /var/run/usit-httpd.pid | PID-fil; inneholder prosess-ID'en til Apache |
N/A | /site/opt/apache2/logs/accept.lock | /var/run/usit-httpd-accept.lock | Låsefil for serialiseringsoperasjoner (fillåsing) |
Kort fortalt:
root@maskin.uio.no# /local/etc/init.d/httpd {init|start|stop|restart|graceful|status|
fullstatus|configtest|help|check}
der de forskjellige kommandoene betyr følgende:
initstartstoprestartgracefulstatusfullstatusconfigtesthelpcheckTil forskjell fra tidligere versjoner av Apache fra Store
så har ikke Apache2.2 en startssl-opsjon for
å aktivere en SSL-konfigurasjon i servern. Dette er fordi
Apache2.2 har en noe endret konfigurasjonsfilosofi fra tidligere
versjoner. Hvis man aktiverer SSL-konfigurasjon for sin server så
bruker man altså bare den samme
startssl-opsjonen for å starte httpd.
For at Apache skal starte automatisk ved boot må filen
/etc/usit/http.server finnes. Den kan lages
slik:
root@maskin.uio.no# touch /etc/usit/http.server
![]() | Obs |
|---|---|
Hvis man bruker SSL-sertifikater
( |
SSL-enablet server: For at httpd skal
starte med SSL-enablet må taste inn en SSL-passphrase fordi
privatnøkkelen ofte er kryptert. Ved boot vil ikke få dette
spørsmålet om SSL-passphrase, så servern vil ikke starte. Ettersom
Apache2.2 ikke støtter startssl-opsjonen for
å eksplisitt slå på SSL-funksjonaliteten i httpd vil en eventuell
SSL-konfigurasjon typisk være enablet hele tiden, dvs når man
kaller init-skriptet med start-opsjonen. Ved
boot vil derfor en eventuell SSL-konfigurasjon slås på, og hvis
privatnøkkelen er kryptert vil den ikke starte ved boot. Det
eneste reelle alternativet er at man fjerner krypteringen på
privatnøkkelen - da vil man ikke lenger bli spurt om
SSL-passphrase ved start av httpd, og den vil da kunne starte ved
boot også.
Dette er ikke en anbefalt løsning, men hvis man fjerner
krypteringen på privatnøkkelen må man være veldig påpasselig med å
sikre nøkkelen: den må være eid av root, og
bør kun være lesbar for root. Vi anbefaler
følgende for å sette fornuftige rettigheter på en ukryptert
SSL-privatnøkkel:
root@maskin.uio.no#chown root:root /path/to/ssl-privatekey.keyroot@maskin.uio.no#chmod 400 /path/to/ssl-privatekey.key
Oversikten viser utvalgte kataloger og filer som kan være relevante for en tjeneradministrator, det er ikke en uttømmende liste. Se neste punkt for mer utfyllende informasjon om de mest relevante konfigurasjonsfilene.
| Katalog/fil | Beskrivelse | |
|---|---|---|
/etc/httpd.conf | Lokal konfigurasjonsfil; her gjør du de lokale konfigurasjonsendringene dine | |
/etc/httpd.conf.modules | Lokal konfigurasjonsfil for lasting av installerte 3.partsmoduler (som mod_perl og PHP) | |
/etc/php.ini | Local konfigurasjonsfil for PHP; kun tilgjengelig når PHP5-modulen er installert | |
/local/opt/apache2.2 | Sentral rotkatalog til Apache-installasjonen | |
/local/opt/apache2.2/conf | Sentrale filer til httpds defaultkonfigurasjon | |
/local/opt/apache2.2/modules | Sentral katalog for lastbare moduler | |
/site/opt/apache2.2/htdocs | Lokal datakatalog; default plassering for dine HTML-filer mm | |
/site/opt/apache2.2/cgi-bin | Lokal katalog for CGI-skript | |
/site/opt/apache2.2/logs | Lokal katalog for loggfiler, lockfiler mm | |
/site/opt/usit-visuell-profil | Lokal rotkatalog for UHTML maler og konfigurasjonsfil | |
/site/opt/usit-visuell-profil/uioprofil.conf | Local UHTML-konfigurasjonsfil; for mer info se eget punkt om UHTML | |
/var/run/usit-httpd.pid | PID-fil; inneholder prosess-ID'en til httpd | |
/var/run/usit-httpd-accept.lock | Låsefil for serialiseringsoperasjoner (fillåsing) |
Konfigurasjonsfilen til Apache2.2 er distribuert via
Store, og dermed kan ikke modifiseres på den enkelte maskin.
For at webserven så skal kunne tilpasses av den lokale
administrator inkluderes to lokale filer inn i den sentrale
konfigurasjonsfilen
(/local/opt/apache2.2/conf/httpd.conf):
/etc/httpd.conf/etc/httpd.conf.modulesI tillegg til kommer konfigurasjonsfiler for tilleggsmoduler skilt ut i egne Store-pakker, f.eks. UHTML eller PHP. Se deres egne punkter for beskrivelse.
| Filnavn | Beskrivelse |
|---|---|
/etc/httpd.conf |
Dette er den filen som man kommer til å modifisere mest, hvis man i det heletatt trenger å gjøre noe utover den initielle endringen. Det er her man hovedsaklig bør gjøre sine lokale endringer. Filen inkluderes helt i slutten på den distribuerte httpd.conf-filen, og brukes for ting som skal spesifiseres etter direktivene i den distede httpd.conf. |
/etc/httpd.conf.modules |
Denne filen inkluderes inn i den distribuerte
httpd.conf-fila etter seksjonene for LoadModule, hhv.
Denne gjør at man kan laste ekstra moduler inn i
Apache. Bl.a. lastes mod_perl og PHP på denne måten. Når man
benytter profilen Det er kun hvis man selv bygger en 3.partsmodul til Apache der man eventuelt trenger å modifisere på denne filen. Ellers bør man la automagien oppdatere denne når man legger til støttede moduler. |
Default datakatalog (htdocs) har følgende path:
/site/opt/apache2.2/htdocs
Denne stien er konfigurert opp i den sentrale
konfigurasjonsfilen til Apache
(/local/opt/apache2.2/conf/httpd.conf). Den
kan overstyres i din lokale
/etc/httpd.conf.
Når man initierer webserveren så må katalogen
/site/ være tilgjengelig, ellers feiler
initieringen. Denne katalogen kan med fordel være en symlink til
en annen partisjon der man legger alle dataene til webserveren.
God skikk er å opprette partisjonen
/<institusjon>/<maskinnavn>/site
og så lage en symlink til denne under rotkatalogen. Eksempelvis
/site -> /usit/caesar/site, for
USIT-maskinen caesar.uio.no.
Default loggkatalogen (logs) har følgende path:
/site/opt/apache2.2/logs
Her finner man loggfilene for alle henvendelsene til serveren og de feilmeldingene som kommer fra servern. I tillegg kommer det en loggfil for alle meldinger fra SSL hvis serveren er startet for å bruke HTTPS. Filene er døpt det følgende:
access_log (henvendelser)error_log (feilmeldinger)ssl_engine_log (SSL feilmeldinger)ssl_request_log (SSL henvendelser)![]() | Obs |
|---|---|
Hvis du enabler SSL så sørg for at kun root har skrivetilgang til logs-katalogen. |
Skriptet
/local/opt/apache2.2/bin/httpd-logrotate er
skrevet for å gjøre loggrotering basert på katalogstrukeren til
Apache fra Store (se over). I sin default-modus er skriptet
beregnet på månedlig loggrotasjon, og bør derfor kalles av en
cronjobb som går ett minutt over midnatt den første i hver
måned. Ved initialisering av Apache settes en slik månedlig
rotasjon opp automatisk:
root@maskin.uio.no# /local/etc/init.d/httpd init
Skriptet støtter også ukentlig og daglig rotasjon. Cronjobben må eventuelt tilpasses en slik type rotasjon. Det følgende er forslag til cronjobber for å gjøre en hhv månedlig, ukentlig eller daglig loggrotasjon:
# 1. Example - monthly Apache2.2 log rotation: 1 0 1 * * /local/opt/apache2.2/bin/httpd-logrotate # 2. Example - weekly Apache2.2 log rotation: 1 0 * * 1 /local/opt/apache2.2/bin/httpd-logrotate -w # 3. Example - daily Apache2.2 log rotation: 1 0 * * * /local/opt/apache2.2/bin/httpd-logrotate -d
Rotering foregår ved at loggfilene (f.eks.
access_log) flyttes til en underkatalog av
loggkatalogen (default:
/site/opt/apache2.2/logs/old), Apache
restartes for å begynne å logge til ny fil, og så pakkes den
gamle filen ned med gzip. Den nedpakkede
filen får et datostempel for hvilken måneds logg den inneholder,
typisk access_log.2007-01.gz for januar
2007.
Skriptet tar også høyde for å kunne rotere logger for virtuelle grensesnitt med egne loggfiler man måtte ha konfigurert opp, såfremt de bruker følgende katalogstruktur:
/site/opt/apache2.2/virtual/<virtualhost>/logs
der <virtualhost> kan være navnet på grensesnittet (f.eks. www.foo.uio.no). Skriptet roterer isåfall loggene på samme måte som beskrevet over; flytter filene til old-katalogen (nå relativ til .../<virtualhost>/logs/), restarter Apache og pakker ned de gamle loggfilene.
For at websidene skal kunne bruke UiO-profil må
maskinen ha Store-pakken
usit-visuell-profil. Denne er derfor
inkludert i profilen @usit-httpd. Bruker du
ikke denne profilen må du hente ned pakken manuelt (se egen
dokumentasjon for dette: http://www.usit.uio.no/it/unix/store/programmer.html#PROGRAM-ADD).
For å bruke UHTML må du også ha mod_perl installert (følger med i
profilen @usit-httpd). Ved å
(re-)initialisere Apache-installasjonen
(/local/opt/init.d/httpd init) vil man få
lagt til den nødvendige konfigurasjonen i din lokale
/etc/httpd.conf. Du kan også legge til det
følgende manuelt:
# Include UHTML config:
<IfModule perl_module>
Include /local/opt/usit-visuell-profil/apacheconf/uhtml2.inc
</IfModule>
Hvis du ønsker å tilpasse UHTML-installasjonen, f.eks.
hvis du skal ha en VirtualHost uten UiO-profil, bør du lese den
følgende fila for hjelp (finnes på servern når du har installert
usit-visuell-profil):
/local/opt/usit-visuell-profil/apacheconf/uhtml2.inc
Hentingen av UiO-profilene er todelt, der en del er
distribuert via den overnenvte Store-pakken
usit-visuell-profil, som inneholder noen få
bilder, CSS-filer og Perlmoduler.
Den andre delen hentes ned fra nattlig med en cronjobb fra serveren rica.uio.no. Denne cronjobben settes opp på den lokale webserveren under initieringen av webserveren (/local/opt/init.d/httpd init). Serveradministrator må selv bestemmer selv hvilke profiler som hentes ned ved å legge de til i følgende konfigurasjonsfil:
/site/opt/usit-visuell-profil/uioprofil.conf
Denne filen skal inneholde en liste med profiler (et profilnavn per linje) som serveradmin ønsker å hente ned. Cronjobben kjøres en gang i døgnet, men skulle man trenge en ny profil med en gang kan man kjøre importskriptet manuelt på følgende måte:
root@maskin.uio.no# /local/opt/usit-visuell-profil/bin/hent_uioprofil
For å se hvilke profiler som er tilgjengelig, se http://wo.uio.no/as/WebObjects/metaredigering.woa/wo/ShowOrgUnit.wo
Se eget avsnitt om Tredjepartsmoduler til Apache2.2.
Apache2.2-disten er forsøkt tilrettelagt for at en i stor
grad skal kunne tilpasse konfigurasjonen til sine egne behov
lokalt. Roten til tilpasningsevnene er init-skriptet
(/local/etc/init.d/httpd). I tillegg til å
støtte den gamle Apache-disten er
det tilrettelagt for at lokal administrator kan overstyre de
fleste stier og filnavn. Dette gjøres ved at skriptet sourcer to
lokale filer, hvis de finnes, i følgende rekkefølge:
/site/etc/default/http.server/etc/usit/http.serverVed å legge variable som skriptet benytter inn i en, eller begge, disse filene kan man overstyre skriptvariablene og dermed endre skriptets oppførsel. Det er den siste verdien som blir gjeldende, og rekkefølgen overstyringen går er følgende:
/site/etc/default/http.server (som kan
bli overstyrt av...)
/etc/usit/http.serverBegge filene er lokale for den maskina som webservern er
installert på. Grunnen til at vi har to mulige overstyringsfiler
er at i noen miljøer benytter man egne skript for å diste (f.eks.
med rsync) kataloger under
/site mellom flere servere. En kan da ta
utgangspunkt i defaultverdiene i skriptet, og så overstyre noen
ting for alle serverne sine med en
/site/etc/default/http.server, og så gjøre
lokale overstyringer igjen på den enkelte maskinen med verdier i
/etc/usit/http.server.
En annen grunn er at
/etc/usit/http.server også brukes for å
starte Apache2.2 ved boot.
Det er ikke alle tilfeller der en kanskje ønsker å starte Apache
ved boot, så derfor kan man bruke annen fil til dette å overstyre
konfigurasjonen lokalt.
![]() | Obs |
|---|---|
Hvis man bruker en helt egen konfigurasjonsfil for Apache vil man ikke få med seg endringer som skjer i den sentrale installasjonen. |
Kopier den sentrale konfigurasjonsfilen
(/local/opt/apache2.2/conf/httpd.conf)
til en plass under /site, og så kan man
overstyre stien til Apaches konfigurasjonsfil med å sette
følgende variabel i en av overstyringsfilene:
# Use local Apache-conf: APACHE_CONFIG=/site/etc/www.foo.uio.no-httpd.conf
Dette kan være veldig nyttig dersom man har behov for å gjøre store endringer i konfigurasjonen, f.eks. hvis man ønsker å tune Apache mtp hvilke moduler den laster e.l.
Overstyr stien til httpd-binæren
med å sette følgende variabel i en av
overstyringsfilene:
# Override path to httpd-binary: HTTPD=/usr/local/apache/bin/httpd
Kan være nyttig hvis man ønsker å teste egne/andre Apache-installasjoner.
Init-skriptet tar høyde for noen spesialvariable for endre på oppførselen sin. Dette er flagg som har satt en implisitt default-verdi, og som overstyres med en annen verdi i en av de lokale filene. De er beskrevet nedenfor:
| Variabel | Mulige verdier | Defaultverdi | Beskrivelse |
|---|---|---|---|
START_APACHE | yes, no | yes | Settes til 'no' for forhindre at skriptet skal starte Apache. Nyttig i installasjoner med flere maskiner som deler konfigurasjon, der ikke alle skal kjøre Apache. |
START_OLD_APACHE13 | yes, no | no | Settes til 'yes' for at skriptet skal starte Apache1.3 fra en gammel installasjon (hvis både Apache2.2 og 1.3 er tilgjengelig). |
START_OLD_APACHE20 | yes, no | no | Settes til 'yes' for at skriptet skal starte Apache2.0 fra en gammel installasjon (hvis både Apache2.2 og 2.0 er tilgjengelig). |
Har man behov/ønsker om flere slike flagg, meld fra til www-drift@usit.
Apache2.2 er tilrettelagt på samme måte som den gamle Apache1.3-disten for å kjøre flere webgrensesnitt i såkalte VirtualHosts. Hvis du ønsker å dele opp din serverkonfigurasjon i VirtualHosts anbefaler vi at lager en katalog per VirtualHost under følgende katalog:
/site/opt/apache2.2/virtual/<virtualhost>
der <virtualhost> kan være navngitt hva som helst,
men vi anbefaler et navn som reflekterer webgrensesnittet
(f.eks. "www.foo.uio.no"). Under den overnevnte katalogen kan du
legge dine egne htdocs/-,
cgi-bin/- og
conf/-kataloger for det spesifike
webgrensesnittet.
Hvis en ønsker å ha egne logger for VirtualHostene, så vil loggrotasjonsskriptet rotere loggene dine på samme måte som de primære loggfilene hvis de ligger i følgende katalog:
/site/opt/apache2.2/virtual/<virtualhost>/logs
Se eget punkt om loggrotasjon for mer informasjon.
![]() | Tips |
|---|---|
Loggrotasjonsskriptet bryr seg ikke om at
|
Per 2007-06-04 er Apache2.2 i Store bygget opp rundt følgende:
Dette skal være en oversikt over hvilke pakker som trengs for å sette opp en Apacheserver ved å bruke det som er tilgjengelig i Store.
For å få "alt":
@usit-httpdLegg til gruppen @usit-httpd i
/etc/usit/sw-localcopy og kjør
/local/sbin/storeapp for å installere de
nødvendige pakkene. For mer informasjon, les installasjonsveiledningen.
(Pakkene i dette avsnittet kan installeres på vanlig måte for Store-pakker; se egen dokumentasjon for mer informasjon.)
For "bare" webserveren - Apache2.2 med avhengigheter:
apache2.2db4expatlibiconvopensslopenldapsasl2zlibTillegg: få støtte for mod_perl (Forutsetter: apache2.2 m/avhengigheter listet over):
mod_perl2perl5Tillegg: få støtte for PHP v5.x (Forutsetter: apache2.2 m/avhengigheter listet over):
mod_php5curllibjpeglibpnglibxml2libxsltmysql-libpgsql-lib(evt. også oracle-client10.2)Tillegg: få støtte for UiO profil (UHTML) (Forutsetter: apache2.2 m/avhengigheter, samt mod_perl2-pakkene):
usit-visuell-profilrsynccoreutilsHTML-Parser.pmmod_perl benyttes for å kjøre persistente Perl-skript i Apache.
For å bruke mod_perl må du ha Apache2.2 med avhengigheter installert, og så må du installere de følgende to pakkene:
mod_perl perl5
Modulen skal automatisk lastes inn i Apache etter
installasjon ved å re-initiere Apache med
/local/etc/init.d/httpd init, men man kan
også manuelt legge til det følgende i
/etc/httpd.conf.modules, og deretter
restarte Apache:
LoadModule perl_module modules/mod_perl.so
mod_perl benyttes av UHTML.
For mer informasjon om mod_perl, se egen dokumentasjon på: http://perl.apache.org/
I Apache2.2-disten har vi tatt steget over på PHP5. Det er ikke tenkt laget offisiell støtte for tidligere versjoner av PHP, så hvis du har behov for PHP4 eller tidligere må du lage det selv.
For å bruke mod_php5 (Store-pakkenavn) må du ha Apache2.2 med avhengigheter installert, og så må du installere de følgende pakkene (php+avhengigheter):
mod_php5 curl libjpeg libpng libxml2 libxslt mysql-lib pgsql-lib
Modulen skal automatisk lastes inn i Apache etter
installasjon ved å re-initiere Apache med
/local/etc/init.d/httpd init, men man kan
også manuelt legge til det følgende i
/etc/httpd.conf.modules, og restarte
Apache:
LoadModule php5_module modules/libphp5.so
PHP5-modulen er pr. 2007-06-04 basert på PHP v5.2.2 og har innkompilert støtte for den følgende tredjepartsfunksjonalitet:
MySQL (v4.1.x)PostgreSQL (v8.1.x)Oracle (v10.2)GDcurlexpatlibiconvlibjpeglibpnglibxml2libxsltopensslzlibFor å oppdatere PHP-konfigurasjonen modifiserer du på
/etc/php.ini og restarter Apache.
![]() | Obs |
|---|---|
Default |
Da oracles klientinstallasjon i Store
(oracle-client10.2) er relativt stor (ca
650MB for Oracle10.2-klienten) ønsker vi ikke å pålegge alle
som skal ha PHP-støtte å hente de ned. Derfor er
Oracle-støtten kompilert inn som en ekstensjon (extension) i
PHP. Dette medfører at Oracle-funksjonene ikke kommer inn av
seg selv, man må utføre følgende steg:
Installer Oracle-klienten
(oracle-client10.2) slik:
root@maskin.uio.no# /local/sbin/storeapp -a oracle-client10.2
Oppdater /etc/php.ini for en av
to strategier:
(Anbefalt!) Statisk: for å laste ekstensjonen i php.ini og tilgjengeliggjøre Oracle-funksjonene for alle skript på servern:
; Sette katalogen der de lastbare ekstensjonene finnes: ;extension_dir = extension_dir = /local/opt/apache2.2/php/lib/php/extensions/no-debug-non-zts-20060613 ; Laste Oracle-ekstensjonen: extension=oci8.so
Vi anbefaler denne løsningen da det ikke involverer å skru av safe_mode.
Dynamisk: for å kunne laste Oracle-ekstensjonen dynamisk i hvert enkelt skript
; For aa kunne bruke dl()-funksjonen maa man skru av safe_mode: ;safe_mode = On safe_mode = Off ; Sette katalogen der de lastbare ekstensjonene finnes: ;extension_dir = extension_dir = /local/opt/apache2.2/php/lib/php/extensions/no-debug-non-zts-20060613 ; Skru paa dl()-funksjonen: ;enable_dl = Off enable_dl = On
For å laste Oracle-ekstensjonen i skriptet sitt trenger man altså noe kode som ser slik ut:
<?php
// Husk aa sette ORACLE_HOME hvis den ikke allerede er satt:
// Oracle-client10.2
//PutEnv("ORACLE_HOME=/local/opt/oraclient10.2/product/10.2.0");
// Laste ekstensjonen om den ikke er lastet:
if (!extension_loaded('oci8')) {
dl('oci8.so');
echo "Loaded OCI8 extension. Whohoo! <br>";
}
// ...
?>
En eventuell grunn til at man skulle ønske denne løsnigen er hvis man ikke ønsker å ha Oracle-funksjonene tilgjengelig for alle skript/brukere. Denne løsningen er dog ikke anbefalt da man må slå av safe_mode.
Sett områdevariable for Oracle
Man vil strengt tatt kun trenge å sette områdevariabelen ORACLE_HOME for at Oracle-ekstensjonen skal finne bibliotekene den trenger. Det er også anbefalt å sette noen fler, så det er laget en fil man kan source for å sette det man trenger:
/local/opt/oraclient10.2/.oraprofile
Dette kan gjøres ved å legge til de følgende to linjene:
# Source Oracle-environment: source /local/opt/oraclient10.2/.oraprofile
... inn i en av de to følgende configfilene som
sources av init-skriptet
(/local/etc/init.d/httpd):
/site/etc/default/http.server # Denne katalogen må opprettes manuelt
/etc/usit/http.server # Hvis denne filen finnes vil Apache starte
# automatisk ved boot
Apache må restartes (merk! stop+start, ikke restart) for at de nye områdevariablene skal bli tilgjengelige.
Alternativt til å automatisk sette områdevariablene
kan man gjøre det manuelt før start av Apache, eller legge
det i fx .bashrc e.l. for brukeren
man kjører Apache som.
Hvis man vil kan man også kun sette ORACLE_HOME på tilsvarende måte, da med følgende i bash:
# Set ORACLE_HOME ORACLE_HOME=/local/opt/oraclient10.2/product/10.2.0 export ORACLE_HOME
eller ved å sette det i PHP-skriptet sitt:
<?php
// Set ORACLE_HOME
PutEnv("ORACLE_HOME=/local/opt/oraclient10.2/product/10.2.0");
// ...
?>
For mer informasjon om PHP, se PHPs egen dokumentasjon på http://no.php.net/
Videre følger moduler for spesielle behov. De er ikke
nødvendige for den vanlige webservern. De følger ikke med i noen
profiler (som f.eks. @usit-httpd) og må
eksplisitt hentes ned.
Installer mod_caucho fra Store for å kunne snakke med en Resin applikasjonstjener fra Apache med følgende kommando:
root@maskin.uio.no# storeapp -a mod_caucho
Modulen lastes inn i Apache2.2 ved å legge til det
følgende i /etc/httpd.conf.modules, og
deretter restarte Apache:
LoadModule caucho_module modules/mod_caucho.so
Dette kan gjøres automatisk med en re-initialisering av Apache (/local/opt/init.d/httpd init).
Dokumentasjon om Resin finnes på Cauchos hjemmeside: http://www.caucho.com/
Andre ting som har noe med Apache i Store å gjøre.
Apache2.2 har god støtte for å gjøre autentisering og
autorisasjon mot LDAP. Dette er basert på en utvidelse til
modulen for HTTP Basic authentication
(mod_auth_basic), og blir tilgjengelig ved
å laste modulene mod_ldap og
mod_authnz_ldap (begge er aktivert per
default).
![]() | Obs |
|---|---|
For å benytte denne funksjonaliteten til å autentisere vanlige UiO-brukere stilles det ett absolutt krav: det må gjøres over HTTPS, altså over kryptert HTTP. Det er ikke tillatt å autentisere UiO-brukere over vanlig, ukryptert HTTP ettersom en brukers passord vil gå i klartekst mellom browser og webserver. |
Før man kan begynne å autentisere brukere mot
ldap.uio.no må man konfigurere LDAP-modulen
(mod_ldap). Ettersom LDAP-servern til UiO
benytter et selvsignert sertifikat må man ha lagret dette
CA-sertifkatet (CA-sertifikatet kan fås ved henvendelse til
www-drift@usit) på sin egen server slik at
LDAP-autentiseringsmodulen kjenner igjen serversertifikatet.
Dette gjøres med å legge til følgende konfigurasjonsblokk i
/etc/httpd.conf:
# LDAP settings
<IfModule ldap_module>
# Defaultverdier, kun nødvendig for tuning:
LDAPSharedCacheSize 200000
LDAPCacheEntries 1024
LDAPCacheTTL 600
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 600
LDAPConnectionTimeout 10
# Påkrevet verifisering av SSL-sertifikatet:
LDAPVerifyServerCert On
# Spesifisert sti til lagret CA-sertifikat for ldap.uio.no:
LDAPTrustedGlobalCert CA_BASE64 /site/opt/apache2.2/conf/w3cacert.pem
</IfModule>
Det er flere måter å autentisere og autorisere brukere med LDAP. En kan autorisere alle brukere som har et gyldig brukernavn, eller de som er medlem av en spesifisert (nett-,fil-)gruppe. Man kan også autorisere på bakgrunn av diverse LDAP-attributter som er tilgjengelig for den registrerte brukeren mm. Les Apaches egen dokumentasjon om mod_authnz_ldap for nødvendig informasjon.
Se egen dokumentasjon for LDAP-katalogen for informasjon om struktur og innhold, samt kontaktpunkt for eventuelle spørsmål.
Se også følgende eksempler for tips:
# AuthLDAP test - alle gyldige brukere:
<IfModule authnz_ldap_module>
<IfModule authz_user_module>
<Location /ldap>
AuthType Basic
AuthName "Authenticate with your LDAP-user!"
AuthBasicProvider ldap
# Autentisering mot users-treet i ldap.uio.no:
AuthLDAPURL ldap://ldap.uio.no/cn=users,cn=system,dc=uio,dc=no TLS
# Alt. 1: gyldige brukere - merk: "valid-user" krever også at
# modulen 'mod_authz_user' er lastet
AuthzLDAPAuthoritative off
require valid-user
</Location>
</IfModule>
</IfModule>
# AuthLDAP test - spesifikke brukere
<IfModule authnz_ldap_module>
<Location /ldap>
AuthType Basic
AuthName "Authenticate with your LDAP-user!"
AuthBasicProvider ldap
# Autentisering mot users-treet i ldap.uio.no:
AuthLDAPURL ldap://ldap.uio.no/cn=users,cn=system,dc=uio,dc=no TLS
# Alt. 2: spesifiserte brukere
AuthzLDAPAuthoritative on
require ldap-user brukernavn1 brukernavn2 brukernavn3
</Location>
</IfModule>
En kan autorisere på bakgrunn av medlemsskap i både fil- og nettgrupper. En må eventuelt bytte ut "filegroups" med "netgroups" i require-strengen over.
# AuthLDAP test - medlemmer av spesifisert (fil-)gruppe
<IfModule authnz_ldap_module>
<Location /ldap>
AuthType Basic
AuthName "Authenticate with your LDAP-user!"
AuthBasicProvider ldap
# Autentisering mot users-treet i ldap.uio.no:
AuthLDAPURL ldap://ldap.uio.no/cn=users,cn=system,dc=uio,dc=no TLS
# Alt. 3: fil-/nettgrupper
AuthzLDAPAuthoritative on
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off
require ldap-group cn=filgruppe1,cn=filegroups,cn=system,dc=uio,dc=no
</Location>
</IfModule>
# AuthLDAP test - attributter
<IfModule authnz_ldap_module>
<Location /ldap>
AuthType Basic
AuthName "Authenticate with your LDAP-user!"
AuthBasicProvider ldap
# Autentisering mot users-treet i ldap.uio.no:
AuthLDAPURL ldap://ldap.uio.no/cn=users,cn=system,dc=uio,dc=no TLS
# Alt. 4: autorisasjon med attributter, f.eks. alle ansatte:
AuthzLDAPAuthoritative on
require ldap-attribute eduPersonAffiliation=staff
</Location>
</IfModule>
users-treet og
people-treet i LDAP-katalogen inneholder
forskjellig informasjon. people-treet
inneholder informasjon om personer med en
sterk knytning til UiO (tilsatte, studenter), mens
users-treet inneholder informasjon om
alle brukere (inkl. midlertidig brukere,
systemkonti o.l.). En kan bruke begge trærne for autentisering
og autorisasjon, men de er altså ikke identiske.
For mer informasjon om strukturen til LDAP-katalogen vises det til egen dokumentasjon.
# AuthLDAP test - people-treet
<IfModule authnz_ldap_module>
<Location /ldap>
AuthType Basic
AuthName "Authenticate with your LDAP-user!"
AuthBasicProvider ldap
# Auth mot people-treet:
AuthLDAPURL ldap://ldap.uio.no/cn=people,dc=uio,dc=no TLS
# Autoriser kun de spesifiserte brukerne:
AuthzLDAPAuthoritative on
require ldap-user brukernavn1 brukernavn2 brukernavn3
</Location>
</IfModule>
![]() | Obs |
|---|---|
Denne informasjonen er uttdatert ettersom den er kopiert verbatim fra dokumentasjonen til den gamle Apache1.3-disten. |
USITs opplegg for generering av webstatistikk på lokale webtjenere baserer seg på Webalizer og startes fra en cronjobb etter at loggfilene til Apache er rotert. Det er gjort klart for to forskjellige oppsett; et enkelt for de som kun har et domene de ønsker å generere statistikk for og et litt mer avansert for de som har flere VirtualHosts og ønsker statistikk for flere at disse og/eller ønsker å generere statistikk for flere forskjellige sett med URI'er.
Uansett om du ønsker den enkle eller avanserte løsningen, må dette utføres:
Legg til gruppen @usit-webalizer (i
/etc/usit/sw-localcopy). Kjør
/local/sbin/storeapp for å installere
hvis den ikke fantes fra før. Nå skal du blant annet ha fått
Webalizer-binæren i
/local/bin/webalizer.
Hvis du ønsker den enkle løsningen, må du utføre disse stegene:
/local/etc/webalizer.conf.sample til
/etc/webalizer.conf og tilpass den
til ditt behov (konfigurasjonsfila er selvdokumenterende og
vil ikke bli kommentert her). Tips: for å slippe unødig
output fra Webalizer til ønsket driftsliste, sett 'Quiet
yes' eventuelt 'ReallyQuiet yes'.
/local/bin/wa-wrapper-simple
for eksempel den andre hver måned (klokka 20.30):
# genererer webstatistikk den andre hver maaned kl. 20.30 30 20 2 * * /local/bin/wa-wrapper-simple 2>&1 | mail -s "webalizer output" driftsliste@domain.uio.noErstatt 'driftsliste@domain.uio.no' med din driftsliste hvor du ønsker å få output/errors fra Webalizer. Dette scriptet forutsetter at du har de gamle loggfilene til apache i katalogen
/site/opt/apache2.2/logs/old/, og
statistikken blir lagret i
/site/opt/apache-ssl/htdocs/stats/usage/ (bytt
ut apache-ssl med apache2 hvis du bruker Apache2).
Hvis webserveren har flere enn en virtualhost som det er ønskelig å generere webstatistikk for, må disse stegene utføres:
/local/etc/webalizer.conf.sample til
/etc/webalizer.conf og tilpass den
til ditt behov (konfigurasjonsfila er selvdokumenterende og
vil ikke bli kommentert her). Mest sansynlig er det ønskelig
å sette 'Incremental=yes' ettersom man ikke er garantert at
alle loggdataene for en måned ligger i samme loggfil (vær
obs på at data i loggfiler som er eldre enn det som allerede
er prosessert ikke vil bli tatt med). Tips: for å slippe
unødig output fra Webalizer til root, sett 'Quiet yes'
eller/og 'ReallyQuiet yes'.
/local/etc/wa-wrapper.conf.sample til
/etc/wa-wrapper.conf og tilpass den
til ditt behov. Det skal være en linje per statistikksett
som opprettes, og det er viktig å passe på at id'ene som
benyttes er unike gjennom hele fila. Denne
konfigurasjonsfila, som er ment å være selvdokumenterende,
skal inneholde informasjon om hostname, evt. plassering av
webalizer.conf (man kan oppgi flere),
plassering av gamle loggfiler (skal være katalogen der de
roterte loggfilene ligger), plassering av statistikkdata,
begrensninger i URL'er som skal behandles og hvorvidt det er
snakk om det SSL-grensesnitt (https://) eller ikke. Hvis det
er noen uklarheter i forbindelse med syntax/innhold, ta
kontakt med www-drift@usit.
/local/bin/wa-wrapper
for eksempel den andre hver måned (klokka 20.30):
# genererer webstatistikk den andre hver maaned kl. 20.30 30 20 2 * * /local/bin/wa-wrapper -m 2>&1 | mail -s "webalizer output" driftsliste@domain.uio.noErstatt 'driftsliste@domain.uio.no' med din driftsliste hvor du ønsker å få output/errors fra Webalizer. Per default antar wa-wrapper at loggene roteres ukentlig, og vil ikke finne loggfilene sine. Hvis loggene roteres månedlig (som er standard-oppsettet for loggroteringen som følger med Apache i store), må wa-wrapper gis opsjonen -m (som eksempelet over).
root@maskin.uio.no# /local/bin/wa-wrapper -h
usage: wa-wrapper [options]
options:
-h, --help show this help message and exit
-d, --dry-run do not run webalizer/trackhist
-l, --listids list all ID's in configfile
-m, --monthly the webserver-logs are rotated monthly (you may not mix
this option with --week, --month or --year)
-w, --weekly the webserver-logs are rotated weekly (default) (you
may not mix this option with --week, --month or --year)
-v, --verbose verbose output
--id=ID run webalizer for ID (run on all if not present)
--week=WEEK run webalizer on logfiles from WEEK
--month=MONTH run webalizer on logfiles from MONTH
--year=YEAR run webalizer on logfiles from YEAR
--conffile=CONFFILE use this CONFFILE
--logfile=LOGFILE run webalizer on LOGFILE
--include-url=PARTOFURL
include entries with PARTOFURL
--exclude-url=PARTOFURL
exclude entries with PARTOFURL
--outdir=OUTDIR this is the directory where webalizer store it's data
--th-bin=THBIN use trackhist binary THBIN
--wa-bin=WABIN use webalizer binary WABIN
--wa-cfg=WACFG run webalizer with this WACFG file
--wa-opt=WAOPT run webalizer with the WAOPT option (quote with "" if
the optionstring includes spaces)
Ved spørsmål, kontakt www-drift@usit.
Mer overflødig informasjon om denne tjenesten er tilgjengelig via produktkatalogen for webtjenester: http://www.usit.uio.no/it/web/produktkatalog/.
SSI er ikke aktivert per default da dette gjør
prosesseringen av HTML-filene tyngre, og derav serveren tregere
(hvor mye tregere er naturligvis relativt til hardware og
trafikkmengde). Vil man bruke SSI for å inkludere filer (eks.:
<!--#include
virtual="include.html"-->) o.l. inn i HTML-filene
sine er følgende metoder man kan bruke:
Bruk UiO profil. UHTML-håndteringen sørger for at det fungerer.
Legg til følgende i
/etc/httpd.conf:
#----- For SSI -----
AddType text/html .shtml
AddHandler server-parsed .shtml
<Directory "/site/opt/apache2.2/htdocs">
Options +Includes
</Directory>
#----- For SSI -----
Bytt eventuelt ut .shtml med
.html hvis det er ønskelig at det
fungerer for alle html-filer.
Se Apache-dokumentasjonen for mer info: http://httpd.apache.org/docs/2.2/mod/mod_include.html