Hem >> Bloggar >> Teknikbloggen >> Skapa en virtuell värd i Apache

Skapa en virtuell värd i Apache

  • Posted on: 14 January 2015
  • By: Pontus

Det är inte ofta man bara har en webbplats på en webbserver utan normalfaller är att man har flera stycken. Lösningen på det är virtuella värdar.

Här ska vi skapa en virtuell i webbserver Apache som är installerad i Ubuntu 14.10.

Standard värden, alltså den webbsidan som kommer att visas om ingen annan är konfigurerad är hittar du i Ubuntu under /var/www/html. Det enklaste och mest logiska är att skapa en mapp för de andra webbsidorna under /var/www. Nu ska vi skapa en webbplats som heter www.example.com, först skapar vi katalogen.

cd /var/www

sudo mkdir www.example.com

Därefter skapar vi konfigurationsfilen. Jag använder editorn joe, men du kan självklart använda vilken du vill. 

cd /etc/apache2/sites-available/

sudo joe www.example.com.conf

I filen skriver vi följande, du får ju såklart byta ut example.com till vad du skall använda.

<VirtualHost *:80>

        ServerName www.example.com

        ServerAlias example.com

        ServerAdmin webmaster@example.com

        DocumentRoot /var/www/www.example.com

        ErrorLog ${APACHE_LOG_DIR}/www.example.com.error.log

        CustomLog ${APACHE_LOG_DIR}/www.example.com.access.log combined

</VirtualHost>

<virtualhost *:80> - här definierar vi att vi ska skapa en virtuell värd. * kan du ersätta med serverns ipnummer om du vill använda ett specifikt ip-nummer till webbsidan. :80 anger vilken port som webbsidan skall finnas på, använder du kryptering så ska det stå 443 där.

ServerName - anger vilken namn den nya webbplatsen har. Det är det som Apache använder för att hitta rätt webbplats när någon webbläsare begär en sida. Om webbservern inte hittar någon som matchar så kommer den att visa standard webbplatsen, alltså den som anges i 000-default.conf. 

ServerAlias - Ifall du vill ha flera adresser till samma till exempel med och utan www i början så kan du ange den ena som ett alias.

ServerAdmin - mailadress till den som administrerar webbservern.

DocumentRoot - var skall Apache hämta sidorna.

ErrorLog - anger var eventuella felmeddelanden ska loggas för den här webbplatsen.

CustomLog - här loggas alla objekt som webbservern skickar till besökare. Varenda bild och fil som skickas loggas här.

Ifall du använder ett ServerAlias och gör det möjligt att besöka webbplatsen både från example.com och www.example.com så är det rekommenderat att lägga in en 301-redirect till www adressen. Det gör du genom att lägga till följande Directory direktiv efter </virtualhost> i filen. 

Det som händer då är att alla som besöker example.com kommer automatisk att slussas vidare till www.example.com vilket anses som rekommenderat. Framförallt ur ett SEO perspektiv eftersom att sökmotorerna då bara har en site att indexera.

<Directory "/var/www/www.example.com">

Options FollowSymlinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^http://example.com$ [NC]

RewriteRule ^(.*)$http://www.example.com/$1 [R=301,L]

</Directory>

När vi har sparat och stängt filen måste vi lägga till webbplatsen och starta om Apache för göra den tillgänglig för besökare.

sudo a2ensite www.example.com

sudo service apache2 restart

Om vi inte får några felmeddelanden så är allt grönt och vi har nu en till webbplats på samma server. På det här sätter kan man i princip lägga till hur många webbplatser som helst.

Nu kanske du vill tillåta att man använder sig av .htaccess filer på den här webbplatsen du precis skapade.