Apache Virtual Host 2.2.x

Apache er en af de førende webservers i hele verden, den kan konfigureres på mange måder, og et plus er virtual hosts.

I denne artikel vil jeg gennemgå virtual host filerne og fortælle kort om de enkelte opsætninger, denne artikel er til version 2.2.x af apache.

Min Konfiguration

Jeg havde lidt i tankerne at jeg vil præsentere dig for min standart konfiguration, og så lidt længere nede forklare om hvad den gør, jeg har dog fjernet CGI og dokumentationen fra konfigurationen, disse er der per standart.

<VirtualHost *:80>
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Konfigurationen Forklaret

Der er en del der skal forklares og jeg vil også komme ind på subdomæner og andre domæner, per standart definition, så er denne konfigurations fil blot en der fanger alle forespørgsler som ikke er fanget af en anden konfigurations fil.

Til at starte med definerer vi en virtual host samt at det er alle (*) på port 80, dette er for at lytte efter indkomne forespørgsler og det ser sådan ud.

<VirtualHost *:80>
</VirtualHost>

Det skal lige nævnes at alt i mellem de to VirtualHost tags, er definitionen på en virtual host.

ServerAdmin skal efterfølges af en e-mail adresse, som er en e-mail adresse på server administratoren, som er vist her under.

ServerAdmin webmaster@localhost

Da der ikke er meget ved at skrive til localhost, så bør denne ændres til en anden e-mail adresse.

ServerName og ServerAlias er til at binde en specifik adresse til denne virtual host, et eksempel er givet her under.

ServerName example.com
ServerAlias www.example.com

Her sætter vi domænet example.com, som har et alias ved navn www.example.com

DocumentRoot er stien til dine PHP eller HTML filer, per standart er denne sat til "/var/www", denne kan ændres til et andet ønsket bibliotek.

DocumentRoot /var/www

Lidt Om Directory

Directory tags er til de forskellige biblioteker der nu skulle være indvolveret, man kan hermed definere flere, hvis man har en tendens til at lægge, eksempelvis javascript filer i et andet bibliotek, end der hvor DocumentRoot er, man kan også definere rettigheder her.

<Directory />
</Directory>
# Eller
<Directory /var/www/>
</Directory>

Man kan som sagt definere et hvilket som helst bibliotek som man ønsker, bare husk at det er den komplette sti som skal bruges.

Lad os kigge lidt nærmere på et Directory tag.

<Directory /var/www/>
	Options Indexes FollowSymLinks MultiViews
	AllowOverride None
	Order allow,deny
	allow from all
</Directory>

Options er indstillinger der bliver slået til, for eksempel at tillade Indexes hvis der ikke bliver fundet noget i en mappe (eksempelvis: index.html eller index.php), hvis der er en specifik fil der mangler, så for man en 404 fil ikke fundet fejl.

AllowOverride kan sættes til None eller All, de er de vigtigeste indstillinger, None vil ikke tillade .htaccess filer, hvor imod All tillader det.

Order allow,deny er adgangs kontrol, man kan eksempelvis specificere allow from 127.0.0.1 som er localhost. Man kan også bruge deny from all, disse skal specificeres på hver sin linje, se eksempel her under.

Order allow,deny
allow from 127.0.0.1
deny from all

Logs

Logs er et arkiv over fejl eller adgang, der er disse to logs, ErrorLog og CustomLog er adgangs loggen og det er den der er den vigtigeste, den fortæller en del om dine besøgende, lad os kigge lidt nærmere på dem.

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

LogLevel definerer hvor meget der skal logges, jeg plejer at have den på warn.

CustomLog er sat til combined, da denne indstilling er den bedste for log analyse software, så som AWStats.