Een webserver opzetten

Een veel gebruikte en populaire term is 'LAMP' server, waarmee een server bedoeld wordt waar Linux, Apache, MySQL en PHP, Perl en/of Python beschikbaar zijn.

Ubuntu heeft hiervoor een speciale server installatie CD.

De server installatie plaatst geen grafische interface. Er wordt gewerkt met een terminalscherm.[[BR]]

Installeren in een bestaand Ubuntu systeem

Aan een bestaand Ubuntu 6.06 LTS (Dapper Drake) systeem kunnen de 'LAMP' pakketten achteraf worden toegevoegd. Deze pakketten bevinden zich in de main pakketbron. Het zijn de volgende pakketten:

apache2 php5-mysql libapache2-mod-php5 mysql-server

In Ubuntu 7.10 (Gutsy Gibbon) kunnen de extra pakketten worden toegevoegd met behulp van het programma tasksel:

sudo tasksel

Kies voor de LAMP server optie. Aanvinken met de spatiebalk en druk op de *binnenste* Entertoets.

Installeer de speciale server versie

De verdere procedure gaat uit van een installatie van de speciale Ubuntu server CD-ROM.

Download de server install CD-ROM via http://www.ubuntu.com/download/

Start de computer op van de CD-ROM en kies in het installatiemenu voor een LAMP server.

De installatie is vergelijkbaar met een andere Ubuntu installatie en begint met de keuze voor de gewenste taal, land en toetsenbord.

Via DHCP wordt zo mogelijk een netwerkverbinding gemaakt. Als dit mislukt kan het ip-adres, netwerkmasker, gateway en naamserveradressen voor de netwerkverbinding handmatig worden ingesteld.

Tijdens de installatie moet de computer een naam worden gegeven (hostnaam) en de harde schijf wordt, eventueel automatisch, gepartitioneerd.

Er wordt om één gebruikersnaam gevraagd. Deze gebruikersnaam kan na de installatie worden gebruikt voor het uitvoeren van onderhoudstaken. Denk aan een veilig wachtwoord!

Vervolgens worden de standaard pakketten geïnstalleerd en wordt er een (grub) opstartmenu gemaakt. Als er op een andere partitie nog een besturingssysteem wordt gevonden zal deze in het opstartmenu geplaatst worden.

Gebruik de volgende 2 opdrachten om de laatste updates van internet te halen en aan te brengen:

sudo apt-get update
sudo apt-get upgrade

Herhaal deze opdrachten regelmatig.

Apache webserver

Standaard toont de webserver de (html)pagina's uit de map /var/www. Om bestanden in deze map te kunnen plaatsen kan je met de volgende terminal opdracht eigenaar worden van de webserver bestanden.

sudo chown -R $USER:$USER /var/www

Je kan de webserver pagina's nu wijzigen zonder gebruik te maken van sudo.

MySQL root wachtwoord

Er is geen wachtwoord voor de MySQL gebruikersnaam root. Dit is NIET hetzelfde als de Ubuntu root. Stel een MySQL root wachtwoord in:

mysqladmin -u root password nieuwwachtwoord
mysqladmin -h localhost -u root -p password nieuwwachtwoord

Netwerk

Voor een server heeft een vast netwerkadres de voorkeur. Pas hiervoor /etc/network/interfaces aan.

Voor het bewerken van bestanden kan bijvoorbeeld gebruik gemaakt worden van de editorprogramma's vim, pico of nano.

In dit voorbeeld gebruik ik voor het interne netwerk 192.168.1.x ip-adressen.Voor de server gebruik ik ip-adres 192.168.1.2 en 192.168.1.1 is het ip-adres van mijn internet-router die ook domeinnaamserver (dns) is.

Bewerk het bestand /etc/network/interfaces en schakel de regel voor het gebruik van dhcp uit:

# iface eth0 inet dhcp

Voeg de volgende regels toe:

iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1

Plaats het adres van de DNS server in het bestand /etc/resolv.conf:

nameserver 192.168.1.1

Herstart het systeem:

sudo reboot

Extras

ssh

Met ssh kan een verbinding gemaakt worden voor beheer op afstand. Installeer de ssh-server:

sudo apt-get install ssh

Het scherm en toetsenbord kunnen nu van de server af! Via de ssh toegang kan vanaf een ander Ubuntu werkstation een terminal op de server gestart worden met de opdracht ssh ip-adres of kunnen bestanden gekopieerd worden via de koppeling ssh://ip-adres in bijvoorbeeld Nautilus of Konqueror.

Vanaf een Windows werkstation kan een verbinding gemaakt worden met het bekende PuTTY

Zorg ervoor dat je goede wachtwoorden gebruikt om misbruik van de ssh toegang te voorkomen!

https

In https staat de letter S voor Secure, beveiligd. Door het gebruik van een certificaat is het mogelijk om een beveiligde verbinding te maken met de LAMP-server.

Voor testdoeleinden is het mogelijk een "zelf ondertekend" certificaat te gebruiken. Hieraan zijn GEEN kosten verbonden.

Het voordeel is dat door het gebruik van een certificaat de verbinding wordt "versleuteld".

Maak een certificaat dat 10 jaar (3650 dagen) geldig blijft met de opdracht:

sudo apache2-ssl-certificate -days 3650

Door deze opdracht worden een aantal vragen gesteld. Beantwoord deze zoals je wilt.

In Ubuntu 7.04 (Feisty Fawn) is apache2-ssl-certificate in sommige gevallen niet aanwezig. Er komt dan een foutmelding "command not found". Een alternatief is dan om een certificaat te maken met make-ssl-cert:

sudo apt-get install ssl-cert
sudo mkdir /etc/apache2/ssl
sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem 

Om de ssl module toe te voegen aan de apache configuratie gebruik je de volgende opdracht:

sudo a2enmod ssl

Maak een zogenaamde "virtual host" aan voor beveiligde verbindigen via https:

sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/https
sudo ln -s /etc/apache2/sites-available/https /etc/apache2/sites-enabled/https

Configureer vervolgens de standaard virtuele host (=normale webserver) om alleen nog maar naar onbeveiligde verbinding (over poortnummer 80) te luisteren. Voeg in /etc/apache2/sites-available/default poortnummer 80 toe in de eerste 2 regels:

NameVirtualHost *:80
<VirtualHost *:80>

Aan de configuratie van de beveiligde verbinding in /etc/apache2/sites-available/https moet poortnummer 443 worden toegevoegd EN het zojuist gemaakte certificaat. De eerste regels zien er dan zo uit:

NameVirtualHost *:443
<VirtualHost *:443>
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.pem

Pas nu je /etc/apache2/ports.conf aan zodat hij er zo uitziet :

Listen 80
Listen 443

Maar als je wilt dat Apache alleen op je eigen machine werkt en dus niet benaderd kan worden van buiten af moet je je /etc/apache2/ports.conf er zo laten uitzien :

Listen 127.0.0.1:80
Listen 127.0.0.1:443

Neem de nieuwe configuratie in gebruik:

sudo a2ensite https 

Herstart de webserver om een versleutelde verbinding via https te maken!

sudo /etc/init.d/apache2 force-reload

FTP server

Standaard is er geen FTP server geinstalleerd. Deze is eenvoudig toe te voegen bijvoorbeeld met het pakket vsftpd:

sudo apt-get install vsftpd

De server is opgezet voor het anoniem (anonymous) downloaden van bestanden uit de map /home/ftp.

Pas eventueel /etc/vsftpd.conf aan voor het gebruik van Ubuntu gebruikersnamen met wachtwoorden en voor het eventueel uploaden van bestanden. Pas op, het gebruik van FTP over internet is niet veilig.

Een handleiding om een FTP server op te zetten staat ook in de documentatie.

Links

Voor de Engelstalige server documentatie https://help.ubuntu.com/pdf/ubuntu/C/serverguide.pdf

Voor hulp bij het werken met de terminal https://wiki.ubuntu.com/NlTerminalHowto



Laatste wijziging door Johan van Dijk op 17 November 2007 14:57