Wat zijn LAMP- en LEMP-stacks?
LAMP en LEMP noemen de vier softwareonderdelen waarmee een gewone website wordt geserveerd: Linux, een webserver, een database en PHP. De A in LAMP staat voor Apache en de E in LEMP voor Nginx (uitgesproken als "engine-x", vandaar de E). In beide stacks is de database MySQL of MariaDB en de programmeertaal PHP.
PHP-applicaties zoals WordPress, WooCommerce en Joomla draaien op deze stack. WordPress.org raadt Apache of Nginx aan als webserver, dus beide vormen een solide basis. Welke je kiest, bepaalt niet of je applicatie werkt. Het verandert hoe je de instellingen schrijft.
Hoe werkt de stack?
| Laag | LAMP | LEMP | Rol |
|---|---|---|---|
| Besturingssysteem | Linux | Linux | De basis waarop alles draait |
| Webserver | Apache | Nginx | Beantwoordt verzoeken van browsers |
| Database | MySQL of MariaDB | MySQL of MariaDB | Slaat berichten, gebruikers en bestellingen op |
| Taal | PHP | PHP, via PHP-FPM | Bouwt de pagina |
Een verzoek loopt zo door de stack:
- De browser stuurt een verzoek naar je domein. Het komt aan op poort 80 of 443 van je server.
- De webserver ontvangt het verzoek. Gaat het om een afbeelding of een CSS-bestand, dan serveert hij het bestand zelf.
- Gaat het om een PHP-bestand, dan geeft de webserver het door aan PHP en voert PHP de code uit.
- PHP bevraagt zo nodig de database en bouwt de pagina. De webserver stuurt de pagina terug naar de browser.
Opent een pagina niet, controleer dan de lagen op volgorde: systemctl status nginx, systemctl status phpX.Y-fpm en systemctl status mariadb. X.Y staat voor je PHP-versie (8.3 op Ubuntu 24.04) en bij LAMP gebruik je apache2 in plaats van nginx. Waar iets niet draait, begint het probleem.
Wat is het verschil tussen LAMP en LEMP?
- Apache leest
.htaccess-bestanden en Nginx niet. Bij Nginx gaan regels in de serverconfiguratie. - Nginx voert PHP niet in zichzelf uit. Het geeft verzoeken door aan een aparte dienst die PHP-FPM heet. Apache kan PHP in zichzelf of via PHP-FPM uitvoeren.
- De configuratiemappen verschillen. Op Ubuntu gebruikt Apache
/etc/apache2en Nginx/etc/nginx. - Geheugengebruik wordt meer bepaald door het aantal PHP-FPM-workers en de database-instellingen dan door de keuze van webserver.
- Geen van beide is duidelijk beter. Beide worden veel gebruikt, dus de gids die je volgt en je gewoonten beslissen.
MySQL of MariaDB?
MariaDB is een open-sourcedatabase die van MySQL is afgesplitst, en hun opdrachten en clients zijn grotendeels compatibel. De officiële vereistenpagina van WordPress accepteert beide, dus bekijk daar de actuele minimumversies. Op Ubuntu installeert het pakket mariadb-server met één opdracht. Volgens de documentatie van MariaDB gebruikt het rootaccount sinds versie 10.4 standaard unix_socket-authenticatie. Voer op de server gewoon sudo mariadb uit. Een rootwachtwoord is niet nodig.
LEMP opzetten op Ubuntu
Deze stappen zijn voor Ubuntu en Debian. Verbind eerst via SSH met de server. De voorbeelden gebruiken example.com als domeinnaam, vervang die dus door die van jou.
- Ververs de pakketlijst:
sudo apt update - Installeer de pakketten:
sudo apt install nginx mariadb-server php-fpm php-mysql. De geïnstalleerde versies zijn die uit de pakketrepository. - Beveilig de database:
sudo mariadb-secure-installation. Antwoord ja op het verwijderen van anonieme gebruikers, het verwijderen van de testdatabase en het niet toestaan van root-login op afstand. - Maak de map voor de site aan:
sudo mkdir -p /var/www/example - Open een bestand met
sudo nano /etc/nginx/sites-available/exampleen plak deze regel:server { listen 80; server_name example.com www.example.com; root /var/www/example; index index.php index.html; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/phpX.Y-fpm.sock; } } ls /run/php/toont de echte naam van de socket. Schrijf die in plaats vanphpX.Y-fpm.sock.- Schakel de site in:
sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/ - Test en pas de configuratie toe:
sudo nginx -ten daarnasudo systemctl reload nginx - Gebruik je ufw, open dan poort 80 en 443:
sudo ufw allow 80/tcpensudo ufw allow 443/tcp. Zorg dat de SSH-poort (22) openstaat.
Schrijf een testbestand om te testen of PHP werkt:
echo '<?php phpinfo();' | sudo tee /var/www/example/info.php
Wijst het domein nog niet naar de server, test dan vanaf de server zelf met curl -H 'Host: example.com' http://127.0.0.1/info.php. Verwijder het bestand zodra je ziet dat het werkt: sudo rm /var/www/example/info.php. Die pagina toont de gegevens van je server aan iedereen.
Een database voor je applicatie
Open de databaseshell met sudo mariadb en maak voor elke applicatie een aparte database en gebruiker aan. Kies zelf een sterk wachtwoord:
CREATE DATABASE exampledb CHARACTER SET utf8mb4;
CREATE USER 'exampleuser'@'localhost' IDENTIFIED BY 'a-strong-password';
GRANT ALL ON exampledb.* TO 'exampleuser'@'localhost';
Deze drie waarden (database, gebruiker, wachtwoord) vul je in op het installatiescherm van WordPress. Vervang voor werkende permalinks in WordPress =404 in de Nginx-regel door /index.php?$args.
Wat verandert er bij LAMP?
Voor de Apache-stack installeer je de pakketten zo:
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql
Je definieert de site onder /etc/apache2/sites-available en zet hem aan met sudo a2ensite example. Voer voor permalinks sudo a2enmod rewrite uit en herstart Apache met sudo systemctl restart apache2. Om .htaccess-bestanden te laten werken, moet je AllowOverride All instellen voor de map van de site. Je kunt Apache ook met PHP-FPM draaien, wat past bij het eventgestuurde model event. De databasestappen zijn hetzelfde als bij LEMP.
Na de installatie
- Voeg een HTTPS-certificaat toe. Let's Encrypt is gratis en Certbot werkt met zowel Nginx als Apache.
- Stel de eigenaar in van de mappen waar de webserver naar moet kunnen schrijven. Op Ubuntu en Debian draait de webserver als gebruiker
www-data:sudo chown -R www-data:www-data /var/www/example. - Installeer regelmatig updates met
sudo apt update && sudo apt upgrade. Na de installatie zijn updates van het besturingssysteem en de software jouw verantwoordelijkheid. - Maak met
mariadb-dumpapart een back-up van de database. De dagelijkse back-up van de server is bij de prijs inbegrepen, maar je moet van belangrijke gegevens nog steeds zelf een extra kopie bewaren.
Wil je de stack kant-en-klaar gebruiken, bestel dan met de optie LAMP of LEMP van Seturack en hij installeert zichzelf. Heb je alleen WordPress nodig, dan is de optie WordPress VPS genoeg: de installatie duurt ongeveer 4-5 minuten en het adres en wachtwoord verschijnen in het paneel.
Reacties0
Nog geen reacties
Deel als eerste uw gedachten.
Meld u aan of registreer u om een reactie te plaatsen.