web analytics

LAMP-webserver installeren in Ubuntu/Mint

Print Friendly, PDF & Email

Wat is een webserver

Simpel gezegd is een webserver een PC met een set van computerprogramma’s die via een netwerk (het Internet) HTTP verzoeken ontvangen en na verwerking van de verzoeken een HTML document terug sturen naar de cliënt.

(c) ruslanspivak.com

Wat is een LAMP server

Een LAMP-server is een webserver die bestaat uit de volgende specifieke software:

  • Linux
  • Apache
  • MySQL
  • Php

Linux

Iedere PC moet een besturingssysteem hebben. De meeste webserver in de wereld draaien Linux als besturingssysteem, maar je kan ook webservers hebben die draaien op Microsoft, Unix, …

Apache


Apache HTTP Server is een opensourcewebserver voor Windows, macOS, Linux en andere Unix-achtige besturingssystemen. Apache HTTP Server wordt ook wel Apache of httpd genoemd.

MySQL


MySQLis een propriëtair opensource-managementsysteem voor relationele databases (RDBMS). SQL is de taal die wordt gebruikt om een database van dit systeem op te bouwen, te bevragen en te onderhouden.

PhP


PHP is een scripttaal die bedoeld is om op webservers dynamische webpagina’s te creëren.

Wat kan een LAMP-server doen?

Aangezien een LAMP server een webserver is dankzij Apache, zal een LAMP-server in zijn allersimpelste vorm de ontvangen HTTP-requests bekijken en de gevraagde HTML pagina terugsturen.

Door in de instellingen van Apache aan te geven dat er een scripttaal aanwezig is op dezelfde server (PhP) zal Apache het HTTP-verzoek niet direct verwerken, maar wachten tot PhP zijn deel van de taak gedaan heeft. PhP zal in het ontvangen verzoek kijken naar specifieke PHP instructies en deze uitvoeren. Dat uitvoeren kan gaan van een simpele tekst opmaken, tot een onderliggende databank (MySQL) op te roepen en deze specifieke SQL-opdrachten te laten uitvoeren.

Het resultaat van deze SQL-queries wordt dan door PhP verwerkt en vervolgens via Apache teruggestuurd naar de client in zuivere HTML.

Een LAMP-server houdt zich niet bezig met de lay-out van de HTML-pagina. Hoe de pagina op je browser getoond wordt is de taak van de browser zelf die de HTML-code met behulp van CSS zal opmaken en aanbieden. Browsers die zich niet houden aan de W3C-standaarden kunnen daardoor soms vreemde opmaak vertonen.

Alle websites die je bezoekt maken gebruik van webserver software, een scripttaal en een databank. Daar waar LAMP een Linux-based openbronsoftware oplossing is, vind je in een 100% Microsoft omgeving een Microsoft Server, IIS (Internet Information Server) als webserver, ASP.NET als scripttaal en Microsoft SQL-server Express als RDBMS. Zie https://www.microsoft.com/web/platform/server.aspx voor meer info.

Andere varianten

  • Naast LAMP op een Linux platform, kan je ook Apache, PhP en MySQL draaien onder Windows. Het geheel heet dan WAMP en hier kan je meer erover weten.
  • Een derde variant is XAMPPXAMPP maakt gebruik van Apache, MariaDB, PHP en Perl

Lamp server installeren

Wanneer we een LAMP-server willen installeren op onze  Mint of Ubuntu dan doen we er best aan om te zorgen dat ons werkstation up to date is

$ sudo apt-get update 
$ sudo apt-get upgrade

Eens dat in orde is, gaan we aan de rit.

Een LAMP-server installeren kan op twee manieren.

  • Via tasksel
  • De individuele onderdelen installeren

Installatie via tasksel

Allereerst moet je het programma tasksel installeren

$ sudo apt install tasksel

Je start dan tasksel op vanuit een terminal

$ sudo tasksel

In het venstertje selecteer je ‘Lamp-server’ en je klikt op OK

Er worden wachtwoorden gevraagd voor de MySQL en de Apache software. Noteer deze want zonder deze wachtwoorden kan je je Lamp-server niet beheren.

Individuele onderdelen installeren.

Wanneer je de individuele onderdelen één na één installeert heb je een beter idee van hoe zo’n LAMP-server opgemaakt is. Het is ook de methode die ik verkies, want als je op een distro komt zonder de mogelijkheid om tasksel te installeren, dan moet je het wel manueel doen.

1. Installatie apache webserver

$ sudo apt install apache2 apache2-utils

We moeten maken dat Apache2 start bij het booten en ook de service opstart:

$ sudo systemctl enable apache2
$ sudo systemctl start apache2

Om te testen of Apache2 nu effectief draait, open je je browser en surf je naar het server-adres van je werkstation. Aangezien we alles lokaal draaien kunnen we gebruik maken van de volgende adressen:

  • 127.0.01
  • localhost

Er wordt in de praktijk meestal gebruik gemaakt van localhost. Als de installatie correct is verlopen, verschijnt onderstaande pagina in je browser.

Noteer: The Apache default root directory is /var/www/html. Al je webbestanden zullen in deze map opgeslagen worden. Dat is een systeem map en dus heeft enkel root daar toegang toe.

2. Installatie MySQL Database Server

Die installeren we via het volgende commando:

$ sudo apt install mysql-client mysql-server

Gedurende de installatie zal je gevraagd worden om het root wachtwoord van de MySQL database. Kies een goed wachtwoord en druk op OK om de installatie verder te zetten.

Na de installatie is de database nog niet beveiligd. Om deze te beveiligen geef je onderstaand commando in:

$ sudo mysql_secure_installation

Eerst zal je gevraagd worden de ‘validate_password’ plug-in te installeren. Typ Y/Yes en druk op Enter. Kies ook de ‘default password strength level’.

Belangrijk, als je het root wachtwoord (dat je hierboven ingaf) niet wenst te veranderen, tik je N/No wanneer dat je gevraagd wordt.

Antwoord Y/Yes voor de rest van de vragen.

3. Installatie van PhP en extra modules

Tenslotte moeten we PHP en enkele extra modules om PhP met het web en de database servers te laten werken, installeren.

$ sudo apt install php7.0 php7.0-mysql libapache2-mod-php7.0 php7.0-cli php7.0-cgi php7.0-gd

Om te testen of PhP kan samenwerken met de webserver, gaan we een klein php-bestandje maken en het plaatsen in /var/www/html.
Open je teksteditor (Ubuntu – gedit / Mint 18 – xed of nano) als volgt:

$ sudo xed /var/www/html/info.php

en tik daar onderstaande code in, bewaar het bestandje en sluit de editor:

<?php phpinfo(); ?>

Vervolgens open je je browser en tik je het volgende adres in

http://localhost/info.php

en je ziet je PhP info scherm

Wie mag wat in /var/www/html

Wie is er eigenaar en wie kan nu schrijven in de map /var/www/html? Het is immers een submap van /var en daar kan enkel de root binnen.

Via het volgende commando kan je dat zien:

$ ls -ld /var/www/html

en voor de bestanden

De eigenaar is dus root en de groep root. Je moet de rechten dan als volgt lezen:

Voor de map:

d rwx r-x r-x
  • d Het is een directory
  • rwx : Eerste groep rechten zijn deze van de gebruiker, root dus. Die heeft alle rechten op die map
  • r-x : De leden van de groep root
  • r-x : Alle andere (wij dus, de gewone gebruiker)

Om als gewone gebruiker daar te kunnen in schrijven of wijzigen moet je naast bepaalde rechten ook de eigenaar aanpassen. Eens eigenaar kan je de rechten bijwerken zodat jij alleen (en root natuurlijk) daar toegang toe heeft.

Aangezien we op onze lokale PC werken en geen poorten openzetten naar de buitenwereld toe kan ik als volgt spelen:

  1. Ik word eigenaar van de folder /var/ww/html
  2. Ik geef de juiste rechten uit

Eigenaar worden:

$ sudo chown -R username:groupname directory

Mijn gebruikersnaam is alain en ik ben automatisch ook lid van de groep alain.

Zoals je ziet ben ik nu eigenaar. maar ik ben er nog niet.

Ik ga in die map nu eens een bestandje aanmaken en zien welke rechten er aan gegeven worden

Ik stel vast dat bij mijn test.txt bestandje de x (execute) vlag ontbreekt, terwijl de bestanden die voordien door root waren aangemaakt deze wel hebben. Met onderstaand commando zet ik alles goed..

Dat houdt in dat ik nu als gewone gebruiker html- , ccs-, php-bestanden kan aanmaken in die map, die door Apache en PhP verwerkt zullen worden.

Ik zou er toch wel aan denken om

mijn firewall aan te zetten, want we hebben tenslotte services draaien – lokaal weliswaar – en met rechten zitten spelen in mappen die voordien ‘root’-only waren.

Mijn guwf instellingen zijn:

En nu verder …

Wel, je hebt nu een draaiende LAMP-server. Je kan nu daarbinnen nu bv. WordPress installeren om het te leren kennen, of om een eigen thema aan te maken. Op die manier blijft je huidige website bij je webhoster verder draaien en kan je lekker thuis experimenteren.
Ben je creatief dan kan je zelf aan de rit gaan met HTML5-CSS3 en PhP-MySQL om je eigen webbased applicatie te schrijven.
Indien je vanaf de buitenwereld toegang zou willen hebben tot je lokale website, dan doe je er beter aan om bv. Ubuntu Server te installeren, je te verdiepen in Server Security, IP-tables leren om je firewall te activeren, een UPS aanschaffen om bij stroompanne je server gecontroleerd te laten afsluiten, enz…

 

829 totaal aantal vertoningen, 8 aantal vertoningen vandaag

Beoordeling

Geef een reactie

%d bloggers liken dit: