Webserver

Fra Debianguiden
Skift til: Navigation, Søgning

Webserverens primære formål er at servicere filer, som regel HTML dokumenter til klienter via http protokollen - det som vi oplever som 'At surfe på nettet'. Udviklingen af webserveren har gjort at den er blevet mere integreret med andre services som f.eks. databaseservere gennem forskellige kodesprog som også gør dynamisk indhold let at arbejde med. Men webservere bruges i mange forskellige forbindelser bl.a. når man opdatere sit Debian system med apt-get via internettet (http protokollen), bliver man serviceret af en webserver. De mange forskellige behov har gjort at der er udviklet flere webservere der hverisær forsøger at dække behovene, da det er umuligt at have et produkt som er bedst til det alt.

Installation og opsætning af Apache

Apache webserveren er meget udbredt og er kendt for sin stabilitet, brede funktionalitet og konfigurerbarhed. Linux, Apache, MySQL og PHP danner tilsammen et meget kraffuldt værktøj til at servicere webapplikationer også kendt som LAMP. Læs MySQL for opsætning af MySQL.

Apache installeres med følgende:

debian:~# aptitude install apache

Ved at indtaste serverens ip adresse i en internet browser kan man se en HTML testside, såfremt installationen er forløbet uden fejl.

Virtual Hosts med Apache (vhosts)

Virtual Hosts er en feature, der giver dig mulighed for at benytte din Apache webserver med flere værtsnavne (hostnames) og kun en IP. Siden HTTP/1.1 blev indført, har alle browsere sendt en ekstra header med i deres forespørgsler til webservere: 'Host'-headeren. Her i angives der det pågældende hostname man forespørger. Derved kan webserveren finde ud af i hvilken mappe, den skal lede efter de forespurgte filer.

Til at starte med skal vi definere hvilken IP og port, der skal lyttes på. Dette klares med kommandoen 'NameVirtualHost'. Dette skal være det IP dit netkort har - dvs. at hvis du sidder bag en router, skal du ikke bruge dit globale IP, men derimod det interne. Åbn filen '/etc/apache/httpd.conf' i en editor og tilføj noget lignende:

NameVirtualHost 192.168.1.2:80

Derudover skal du sørge for, at værtsnavnet svarer til din interne IP fra den box, du vil køre webserver på. Dette kan du let klare i filen '/etc/hosts'. Tilføj følgende i den:

192.168.1.2    example.com
192.168.1.2    *.example.com

Nu skal vi til at fortælle Apache hvilke værtsnavn vi vil bruge, og hvilke mapper de skal pege på:

<VirtualHost 192.168.1.2:80>
DocumentRoot /home/user/public_html/
ServerName example.com
ServerAlias www.example.com
</VirtualHost>

'DocumentRoot' fortæller Apache hvilken mappe der skal danne roden for dette værtsnavn. I dette tilfælde '/home/user/public_html/'. Du skal huske på også at definere adgangsrettigheder til den mappe du vælger. Dette gøres med en <'Directory'>-blok. I vores tilfælde er det ikke et problem da det er defineret i forvejen.

'ServerName' er det værtsnavn der relaterer til 'DocumentRoot'. 'ServerAlias' bruges hvis du ønsker mere end et værtsnavn associeret. 'ServerAlias' efterfølges af en række mellemrums-separerede værtsnavne. Der kan også laves "stjerne-alias": *.example.com (kan dog ikke bruges med 'ServerName').

Skulle du ønske at have en specifik logfil for denne Virtual Host alene kan det ret nemt klares. Eksempel:

<VirtualHost 192.168.1.2:80>
DocumentRoot /home/user/public_html/
ServerName example.com
ServerAlias www.example.com
TransferLog /home/user/logs/access.log
ErrorLog /home/user/logs/error.log
</VirtualHost>

'TransferLog' bruges til access.log. Mens 'ErrorLog' bruges til error.log - til at logge serverfejl.

PHP

Apache har et hav af udvidelses moduler. Blandt de mest kendte er skriptsproget PHP. Følgende beskriver hvordan du får PHP til at køre sammen med Apache webserveren. PHP består af en masse moduler men hovedmodulet ligger i pakken php4. Hvis man f. eks. vil integrere PHP med MySQL skal man installere pakken php4-mysql.

debian:~# aptitude install php4 php4-mysql libapache-mod-php4

Dette installerer pakkerne med deres standard opsætning. For at få Apache til at indlæse php, skal følgende linje tilføjes til /etc/apache/modules.conf:

LoadModule php4_module /usr/lib/apache/1.3/libphp4.so

Derefter kører man en '/etc/init.d/apache restart' og hvis det gik godt bør der stå noget i retning af:

Apache/1.3.24 (Unix) Debian/GNU PHP/4.1.2 configured -- resuming normal operations

i /var/log/apache/error.log. Et sidste skridt for at få PHP til at køre, er at man skal fjerne udkommentering (havelågen, #) på følgende linjer i /etc/apache/httpd.conf:

#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps

Hvis du vil teste om PHP virker på din nye webserver, kan du lave en fil med følgende indhold:

<?php phpinfo(); ?>

i /var/www/index.php. Åbn nu filen i din browser (http://localhost/index.php) - du bør nu kunne se at PHP4 kører og også har loadet sit MySQL-modul.

Men inden du lader verden og omegn muntre sig med php-scripts på din server så check lige følgende link ud:

http://www.debian-administration.org/articles/138

Statistik over dine domæner

Webalizer er et statistik program til din Apache webserver. Udfra logfilerne, beregner webalizer besøgsstatistikken for dit website, heriblandt antal besøgende, hvilke browsere der bliver brugt, hvilke tidsrum der er besøgende m.m.

Installation og opsætning af Webalizer

debian:~# aptitude install webalizer

Så skulle webalizer være installeret. Herefter kan du begynde at sætte din webalizer op.

Konfigurationsfilen er som standard /etc/webalizer.conf som du skal modificere en lille smule, brug din editor til at redigere den. Se evt. editorer.

Du skal i din /etc/webalizer.conf sætte nogle få ting, før det virker. Der er yderligere ting som kan justeres efter behov. Men du skal sætte, LogFile, OutputDir, HostName og du skal hvis du har php sider som index sider på dit website, skal du tilføje "PageType php". LogFile sættes til det dir hvor dine apache log-filer er placeret. Og din OutputDir sættes til hvor du vil have dine outputfil placeret f.eks. /www/domain.dk/webalizer/ og HostName sættes til domænet f.eks. domain.dk

Du skal også rette lidt i din /etc/apache/httpd.conf Det der skal sættes i din /etc/apache/httpd.conf er HostnameLookups skal sættes til "On", for at webalizer kan identificere hvem brugerne er, laver den så et hostnamelookup. CustomLog skal sættes til "/var/log/apache/access.log", for at webalizer ved hvilken log fil, den skal beregne statistikken udfra.

Nu webalizer være konfiguret til at køre du kan tjekke det ved at køre webalizer.

debian:~# webalizer

Hvis du skulle udbyde flere domæner og flere brugere skal have adgang til webalizer kan du blot lave en konfigurationsfil for hvert domæne. Hvis du har flere domæner kan du i mappen /etc/webalizer ligge konfigurationsfilerne til f.eks. domain1.dk og domain2.dk og så køre det via kommandoen:

debian:~#/etc/cron.daily/webalizer

/etc/cron.daily/webalizer er et script der gør at webalizer bliver kørt en gang i døgnet.

Du kan nu tilgå statistikken via f.eks. http://domian.dk/webalizer/ hvor du i eksemplet satte /www/domain.dk/webalizer/ som output dir.

Du skulle nu have en fuldt funktionel statistik for dit website.