Nginx met PHP en MySQL (LEMP Stack) installeren op Ubuntu 18.04

Nginx(spreek uit als “engine x”) is een vrije, open-source, hoog-performante HTTP server. Nginx staat bekend om zijn stabiliteit, rijke functieset, eenvoudige configuratie, en laag bronverbruik. Deze handleiding laat zien hoe je Nginx kunt installeren op een Ubuntu 18.04 LTS server met ondersteuning voor PHP 7.2 (viaPHP-FPM) en MySQL ondersteuning (LEMP=Linux + nginx (spreek uit als “engine x”)+MySQL+PHP).

Vereisten

  • Ubuntu 18.04 LTS Server
  • Root voorrechten

Wat zullen we doen?

  1. Nginx installeren
  2. Installeer MySQL
  3. Installeer PHP-FPM
  4. Configureer Nginx en PHP-FPM
  5. Installeer PhpMyAdmin
  6. PhpMyAdmin configureren
  7. Testen van

Stap 1 – Installeer Nginx

Nginx of engine x is een krachtige HTTP en proxy server met laag geheugengebruik. De meeste grootschalige websites zoals Netflix, Pinterest, CloudFlare, GitHub gebruiken Nginx.

In deze stap installeren we Nginx webserver uit de Ubuntu repository.

Voer het onderstaande commando uit.

sudo apt install nginx -y

Nadat de installatie voltooid is, start je de Nginx dienst en zet je hem aan om elke keer bij het opstarten van het systeem te starten.

systemctl start nginx
systemctl enable nginx

De Nginx installatie is voltooid.

Configureer de firewall

Het is aan te bevelen de firewall op de server aan te zetten.

Voeg de SSH en HTTP dienstpoort toe aan de firewall configuratie.

Voer het onderstaande UFW commando uit.

ufw allow ssh
ufw allow http

Start nu de UFW firewall en zet hem aan om telkens te starten bij het opstarten van het systeem.

ufw enable

De Nginx webserver is up and running onder de UFW firewall.

UFW Firewall Configuratie

Stap 2 – Installeer MySQL

MySQL is het populairste open source Relational Database Management System (RDBMS) gemaakt door Oracle Corporation. Het is een centraal onderdeel van de LEMP Stack, en we zullen de nieuwste MySQL versie uit de Ubuntu repository installeren.

Installeer MySQL met het apt commando hieronder.

sudo apt install mysql-server mysql-client -y

Nadat de installatie van MySQL voltooid is, start je de MySQL dienst en zet je hem aan om telkens bij het opstarten van het systeem te starten.

systemctl start mysql
systemctl enable mysql

Installeer MySQL databaseserver

En we hebben MySQL 5.7 geïnstalleerd op Ubuntu 18.04 server.

Stap 3 – Installeer PHP-FPM

PHP-FPM of FastCGI Process Manager is een alternatief voor het oudere PHP FastCGI dat extra mogelijkheden en snelheidsverbeteringen biedt. Het is goed geschikt voor kleine tot grote sites die op de programmeertaal PHP gebaseerd zijn.

In deze stap zullen we PHP7.2-FPM installeren met enkele extra uitbreidingen die phpmyadmin nodig heeft.

Installeer PHP-FPM met het onderstaande commando.

sudo apt install php7.2 php7.2-fpm php7.2-cli php7.2-curl php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php-pear -y

Start nu de PHP-FPM dienst en zet hem aan om telkens te starten bij het opstarten van het systeem nadat de installatie voltooid is.

systemctl start php7.2-fpm
systemctl enable php7.2-fpm

PHP7.2-FPM is op Ubuntu 18.04 up and running onder het sock bestand, controleer het met het netstat commando.

netstat -pl | grep php

Installeer en test PHP FPM

Stap 4 – Configureer Nginx en PHP-FPM

In deze stap configureren we de Nginx webserver en PHP-FPM.

Configureer Nginx

Ga naar de ‘/etc/nginx’ configuratiedirectory, en bewerk het ‘nginx.conf’ bestand met vim of nano.

cd /etc/nginx/
vim nginx.conf

Haal het commentaar van de volgende regels weg.

keepalive_timeout 2;
server_tokens off;

Sla het configuratiebestand op en sluit de editor af.

Bewerk nu het standaard Nginx virtual host bestand.

vim sites-available/default

Haal de hieronder getoonde PHP regel weg en verander de regel met het sock bestand.

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
        #
        # # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        # # With php-cgi (or other tcp sockets):
        # fastcgi_pass 127.2.0.1:9000;
        }

Bewaar en sluit af.

Test de Nginx configuratie en controleer of er geen fout optreedt, herstart dan de dienst.

nginx -t
systemctl reload nginx

Start Nginx opnieuw op en test de configuratie

Configureer PHP-FPM

Ga naar de ‘/etc/php/7.2’ directory en bewerk het ‘php.ini’ bestand.

cd /etc/php/7.2/
vim fpm/php.ini

Haal het commentaar weg van de regel ‘cgi.fix_patinfo’ en verander de waarde in ‘0’.

cgi.fix_pathinfo=0

Sla op en sluit af.

Herlaad de PHP-FPM dienst.

systemctl reload php7.2-fpm

En we hebben de configuratie van Nginx webserver en PHP-FPM voltooid.

Stap 5 – Installeer PhpMyAdmin

PhpMyAdmin is een op PHP gebaseerde toepassing om MySQL of MariaDB databases vanuit een web browser te beheren.

In deze stap installeren en configureren we phpmyadmin onder de LEMP (Linux, Nginx, MySQL, en PHP-FPM) stack.

Installeer PHPMyAdmin met het onderstaande apt commando.

sudo apt install phpmyadmin -y

Tijdens de installatie vraagt het je naar de webserver configuratie voor phpmyadmin.

Installeer PHPMyAdmin

Kies geen optie en zet de cursor op ‘OK’.

Kies voor de configuratie van de databank voor phpmyadmin ‘Ja’.

Kies niet om een webserver in te stellen

En typ nieuwe ‘STERKE’ phpmyadmin admin zoals ‘[email protected]#’.

Voer een wachtwoord in

Herhaal het ‘[email protected]#’ wachtwoord.

herhaal het wachtwoord

En de phpmyadmin installatie is voltooid.

Stap 6 – Configureer PhpMyAdmin

Na de phpmyadmin installatie moeten we phpmyadmin configureren om onder de Nginx webserver te draaien en de MySQL gebruiker phpmyadmin toegang te geven.

Configureer PhpMyAdmin met Nginx

Om phpmyadmin onder de Nginx webserver te laten draaien, moeten we de configuratie toevoegen aan het virtuele host configuratiebestand.

Ga naar de ‘/etc/nginx’ configuratie directory, en bewerk het standaard virtuele host bestand.

cd /etc/nginx/
vim sites-available/default

Plak de volgende Nginx configuratie voor phpmyadmin binnen de ‘server {…}’ haakjes.

location /phpmyadmin {
    root /usr/share/;
    index index.php;
    try_files $uri $uri/ =404;

location ~ ^/phpmyadmin/(doc|sql|setup)/ {
    deny all;
    }

location ~ /phpmyadmin/(.+\.php)$ {
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    }
}

Sla op en sluit af.

Test de nginx configuratie en start de nginx dienst opnieuw.

nginx -t
systemctl reload nginx

En we hebben de Nginx configuratie voor phpmyadmin toegevoegd.

Configureer de MySQL gebruiker voor phpMyAdmin

In deze handleiding zullen we een niet-root MySQL gebruiker gebruiken voor phpmyadmin. We zullen een nieuwe gebruiker aanmaken en alle rechten van de databank binnen de server aan de gebruiker toekennen.

Log in op de MySQL shell.

mysql -u root -p

Maak nu een nieuwe gebruiker aan met de onderstaande MySQL query’s.

create user [email protected]'localhost' identified by '[email protected]#';
grant all privileges on *.* to [email protected]'localhost' identified by '[email protected]#';
flush privileges;
exit;

En we hebben een nieuwe gebruiker gemaakt voor toegang tot phpmyadmin.

Configureer een MySQL gebruiker

Stap 7 – Testen

Test de PHP bestanden

Ga naar de web-root directory ‘/var/www/html’ en maak een nieuw phpinfo bestand.

cd /var/www/html/
vim info.php

Plak er het onderstaande phpinfo script in.

<?php
phpinfo();
?>

Sla op en sluit af.

Open nu de webbrowser en typ het server IP adres in zoals hieronder. Vervang het IP door het ip van je server.

http://192.168.33.10/info.php

En hieronder staat alle informatie over de configuratie van de PHP server.

PHP Info resultaat

Test inloggen PhpMyAdmin

Typ in de webbrowser de volgende phpmyadmin URL (vervang het IP door je server IP).

http://192.168.33.10/phpmyadmin/

Op de phpmyadmin inlogpagina typ je de gebruiker ‘hakase’ met wachtwoord ‘[email protected]#’ en klik op de ‘Go’ knop.

PHPMyAdmin login

Nu zien we het phpmyadmin dashboard zoals hieronder.

PHPMyAdmin dashboard

De LEMP Stack en PhpMyAdmin zijn met succes geïnstalleerd op Ubuntu 18.04 LTS.